diff --git a/2/index.html b/2/index.html index b4c9411fc..64132050d 100644 --- a/2/index.html +++ b/2/index.html @@ -1 +1 @@ -Jiaqi's Leadership Blog - Leadership is, at root, about Influencing Others
President John F. Kennedy's Inaugural Address | January 20, 1961
One of the reasons why JFK's words continue to resonate today is because Kennedy was a good editor.
1767 words
|
9 minutes
Cover Image of the Post
John F. Kennedy Address at Rice University on the Space Effort
The great speech that inspired thousands of minds for Space Exploration on Sept. 12, 1962
2933 words
|
15 minutes
Cover Image of the Post
Literate Programming
Shaping a Tech team culture toward literate programming
218 words
|
1 minutes
Cover Image of the Post
박동훈 상무 승인
2024-08-06
"박동훈 상무 승인!" 기나긴 싸움 끝에 상무로 승진한 박동훈
229 words
|
1 minutes
Cover Image of the Post
Infinite Game - Declaration of Independence
A Just Cause means For Something, which should be affirmative and optimistic
546 words
|
3 minutes
Cover Image of the Post
孙子兵法(计篇第一)
道、天、地、将、法。道者,令民与上同意也,故可以与之死,可以与之生,而不畏危也
561 words
|
3 minutes
Cover Image of the Post
Pro Lege Manilia
Quamquam mihi semper frequens conspectus vester multo iucundissimus, hic autem locus ad agendum amplissimus, ad dicendum ornatissimus est visus, Quirites, tamen hoc aditu laudis, qui semper optimo cuique maxime patuit, non mea me voluntas adhuc, sed vitae meae rationes ab ineunte aetate susceptae prohibuerunt. Nam cum antea per aetatem nondum huius auctoritatem loci attingere auderem, statueremque nihil huc nisi perfectum ingenio, elaboratum industria adferri oportere, omne meum tempus amicorum temporibus transmittendum putavi.
6579 words
|
33 minutes
Cover Image of the Post
Πρὸς τὸν ἴδιον υἱὸν αὐτοῦ Ῥωμανὸν
Πρὸς τὸν ἴδιον υἱὸν αὐτοῦ Ῥωμανὸν
126 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
President John F. Kennedy's Inaugural Address | January 20, 1961
One of the reasons why JFK's words continue to resonate today is because Kennedy was a good editor.
1767 words
|
9 minutes
Cover Image of the Post
John F. Kennedy Address at Rice University on the Space Effort
The great speech that inspired thousands of minds for Space Exploration on Sept. 12, 1962
2933 words
|
15 minutes
Cover Image of the Post
Literate Programming
Shaping a Tech team culture toward literate programming
218 words
|
1 minutes
Cover Image of the Post
박동훈 상무 승인
2024-08-06
"박동훈 상무 승인!" 기나긴 싸움 끝에 상무로 승진한 박동훈
229 words
|
1 minutes
Cover Image of the Post
Infinite Game - Declaration of Independence
A Just Cause means For Something, which should be affirmative and optimistic
546 words
|
3 minutes
Cover Image of the Post
孙子兵法(计篇第一)
道、天、地、将、法。道者,令民与上同意也,故可以与之死,可以与之生,而不畏危也
561 words
|
3 minutes
Cover Image of the Post
Pro Lege Manilia
Quamquam mihi semper frequens conspectus vester multo iucundissimus, hic autem locus ad agendum amplissimus, ad dicendum ornatissimus est visus, Quirites, tamen hoc aditu laudis, qui semper optimo cuique maxime patuit, non mea me voluntas adhuc, sed vitae meae rationes ab ineunte aetate susceptae prohibuerunt. Nam cum antea per aetatem nondum huius auctoritatem loci attingere auderem, statueremque nihil huc nisi perfectum ingenio, elaboratum industria adferri oportere, omne meum tempus amicorum temporibus transmittendum putavi.
6579 words
|
33 minutes
Cover Image of the Post
Πρὸς τὸν ἴδιον υἱὸν αὐτοῦ Ῥωμανὸν
Πρὸς τὸν ἴδιον υἱὸν αὐτοῦ Ῥωμανὸν
126 words
|
1 minutes
Cover Image of the Post
\ No newline at end of file diff --git a/3/index.html b/3/index.html index a9797aa3a..fd1b29b99 100644 --- a/3/index.html +++ b/3/index.html @@ -1 +1 @@ -Jiaqi's Leadership Blog - Leadership is, at root, about Influencing Others
Why Good Leaders Make You Feel Safe
What makes a great leader? Management theorist Simon Sinek suggests, it's someone who makes their employees feel secure, who draws staffers into a circle of trust. But creating trust and safety -- especially in an uneven economy -- means taking on big responsibility.
1983 words
|
10 minutes
Cover Image of the Post
드라마 '나의 아저씨'
2024-08-01
회사는 기계들이 다니는 뎁니까? 인간이 다나는 뎁니다!
1043 words
|
5 minutes
Cover Image of the Post
Reading Notes of "Critique of Pure Reason"
A Masterpiece of Idealism of Anti-Idealism - Transcendental Idealism
678 words
|
3 minutes
Cover Image of the Post
Kant's View of the Mind and Consciousness of Self
Kant's View of the Mind and Consciousness of Self
3353 words
|
17 minutes
Cover Image of the Post
Oliver Twist
Pure-hearted leadership
449 words
|
2 minutes
Cover Image of the Post
History of Management
Learning Management from its own
665 words
|
3 minutes
Cover Image of the Post
Managing Tech Assets - Is a Common Library a Good Idea? No
Managing Tech Assets - Is a Common Library a Good Idea? No
1673 words
|
8 minutes
Cover Image of the Post
Continuous Delivery
continuousdelivery.com
5539 words
|
28 minutes
Cover Image of the Post
\ No newline at end of file +Jiaqi's Leadership Blog - Leadership is, at root, about Influencing Others
Why Good Leaders Make You Feel Safe
What makes a great leader? Management theorist Simon Sinek suggests, it's someone who makes their employees feel secure, who draws staffers into a circle of trust. But creating trust and safety -- especially in an uneven economy -- means taking on big responsibility.
1983 words
|
10 minutes
Cover Image of the Post
드라마 '나의 아저씨'
2024-08-01
회사는 기계들이 다니는 뎁니까? 인간이 다나는 뎁니다!
1043 words
|
5 minutes
Cover Image of the Post
Reading Notes of "Critique of Pure Reason"
A Masterpiece of Idealism of Anti-Idealism - Transcendental Idealism
678 words
|
3 minutes
Cover Image of the Post
Kant's View of the Mind and Consciousness of Self
Kant's View of the Mind and Consciousness of Self
3353 words
|
17 minutes
Cover Image of the Post
Oliver Twist
Pure-hearted leadership
449 words
|
2 minutes
Cover Image of the Post
History of Management
Learning Management from its own
665 words
|
3 minutes
Cover Image of the Post
Managing Tech Assets - Is a Common Library a Good Idea? No
Managing Tech Assets - Is a Common Library a Good Idea? No
1673 words
|
8 minutes
Cover Image of the Post
Continuous Delivery
continuousdelivery.com
5539 words
|
28 minutes
Cover Image of the Post
\ No newline at end of file diff --git a/_astro/DisplaySettings.D2Pib6JT.js b/_astro/DisplaySettings.CQXo7PO5.js similarity index 66% rename from _astro/DisplaySettings.D2Pib6JT.js rename to _astro/DisplaySettings.CQXo7PO5.js index ce73e1e53..b7e051264 100644 --- a/_astro/DisplaySettings.D2Pib6JT.js +++ b/_astro/DisplaySettings.CQXo7PO5.js @@ -1 +1 @@ -import{S as L,i as M,s as Q,a as K,c as W,e as _,t as O,b as C,d as v,f as m,g as P,h as T,j as p,k as s,l as H,m as X,n as Y,o as i,p as R,q,u as Z,r as ee,v as te,w as se,x as ae,y as le,z as re,A as oe}from"./translation.BexmyzJD.js";import{I as F}from"./zh_TW.yAw_u0Pg.js";import{g as ne,a as G,s as ie}from"./setting-utils.9Prgb40w.js";const ue=e=>({}),J=e=>({});function ce(e){let a,t,l,r,o,c,n,d,b,f,u,h,g,x,k,y,$,w=K(F.themeColor)+"";const D=e[4]["restore-icon"],I=W(D,e,e[3],J);return{c(){a=_("div"),t=_("div"),l=_("div"),r=O(w),o=C(),c=_("button"),n=_("div"),I&&I.c(),d=C(),b=_("div"),f=_("div"),u=O(e[0]),h=C(),g=_("div"),x=_("input"),this.h()},l(s){a=v(s,"DIV",{id:!0,class:!0});var i=m(a);t=v(i,"DIV",{class:!0});var _=m(t);l=v(_,"DIV",{class:!0});var k=m(l);r=P(k,w),o=T(k),c=v(k,"BUTTON",{"aria-label":!0,class:!0});var y=m(c);n=v(y,"DIV",{class:!0});var $=m(n);I&&I.l($),$.forEach(p),y.forEach(p),k.forEach(p),d=T(_),b=v(_,"DIV",{class:!0});var D=m(b);f=v(D,"DIV",{id:!0,class:!0});var E=m(f);u=P(E,e[0]),E.forEach(p),D.forEach(p),_.forEach(p),h=T(i),g=v(i,"DIV",{class:!0});var V=m(g);x=v(V,"INPUT",{"aria-label":!0,type:!0,min:!0,max:!0,class:!0,id:!0,step:!0,style:!0}),V.forEach(p),i.forEach(p),this.h()},h(){s(n,"class","text-[var(--btn-content)] svelte-3akcb9"),s(c,"aria-label","Reset to Default"),s(c,"class","btn-regular w-7 h-7 rounded-md active:scale-90 svelte-3akcb9"),H(c,"opacity-0",e[0]===e[1]),H(c,"pointer-events-none",e[0]===e[1]),s(l,"class","flex gap-2 font-bold text-lg text-neutral-900 dark:text-neutral-100 transition relative ml-3 before:w-1 before:h-4 before:rounded-md before:bg-[var(--primary)] before:absolute before:-left-3 before:top-[0.33rem] svelte-3akcb9"),s(f,"id","hueValue"),s(f,"class","transition bg-[var(--btn-regular-bg)] w-10 h-7 rounded-md flex justify-center font-bold text-sm items-center text-[var(--btn-content)] svelte-3akcb9"),s(b,"class","flex gap-1 svelte-3akcb9"),s(t,"class","flex flex-row gap-2 mb-3 items-center justify-between svelte-3akcb9"),s(x,"aria-label",K(F.themeColor)),s(x,"type","range"),s(x,"min","0"),s(x,"max","360"),s(x,"class","slider svelte-3akcb9"),s(x,"id","colorSlider"),s(x,"step","5"),X(x,"width","100%"),s(g,"class","w-full h-6 px-1 bg-[oklch(0.80_0.10_0)] dark:bg-[oklch(0.70_0.10_0)] rounded select-none svelte-3akcb9"),s(a,"id","display-setting"),s(a,"class","float-panel float-panel-closed absolute transition-all w-80 right-4 px-4 py-4 svelte-3akcb9")},m(s,v){Y(s,a,v),i(a,t),i(t,l),i(l,r),i(l,o),i(l,c),i(c,n),I&&I.m(n,null),i(t,d),i(t,b),i(b,f),i(f,u),i(a,h),i(a,g),i(g,x),R(x,e[0]),k=!0,y||($=[q(c,"click",e[2]),q(x,"change",e[5]),q(x,"input",e[5])],y=!0)},p(e,[s]){I&&I.p&&(!k||8&s)&&Z(I,D,e,e[3],k?te(D,e[3],s,ue):ee(e[3]),J),(!k||3&s)&&H(c,"opacity-0",e[0]===e[1]),(!k||3&s)&&H(c,"pointer-events-none",e[0]===e[1]),(!k||1&s)&&se(u,e[0]),1&s&&R(x,e[0])},i(e){k||(ae(I,e),k=!0)},o(e){le(I,e),k=!1},d(e){e&&p(a),I&&I.d(e),y=!1,re($)}}}function de(e,s,a){let{$$slots:t={},$$scope:l}=s,r=ne();const i=G();return e.$$set=e=>{"$$scope"in e&&a(3,l=e.$$scope)},e.$$.update=()=>{1&e.$$.dirty&&(r||0===r)&&ie(r)},[r,i,function(){a(0,r=G())},l,t,function(){r=oe(this.value),a(0,r)}]}class be extends L{constructor(e){super(),M(this,e,de,ce,Q,{})}}export{be as default}; \ No newline at end of file +import{S as L,i as M,s as Q,a as K,c as W,e as _,t as O,b as C,d as v,f as m,g as P,h as T,j as p,k as s,l as H,m as X,n as Y,o as i,p as R,q,u as Z,r as ee,v as te,w as se,x as ae,y as le,z as re,A as oe}from"./translation.BIr-2hnc.js";import{I as F}from"./zh_TW.CdORO3r2.js";import{g as ne,a as G,s as ie}from"./setting-utils.9Prgb40w.js";const ue=e=>({}),J=e=>({});function ce(e){let a,t,l,r,o,c,n,d,b,f,u,h,g,x,k,$,y,w=K(F.themeColor)+"";const I=e[4]["restore-icon"],D=W(I,e,e[3],J);return{c(){a=_("div"),t=_("div"),l=_("div"),r=O(w),o=C(),c=_("button"),n=_("div"),D&&D.c(),d=C(),b=_("div"),f=_("div"),u=O(e[0]),h=C(),g=_("div"),x=_("input"),this.h()},l(s){a=v(s,"DIV",{id:!0,class:!0});var i=m(a);t=v(i,"DIV",{class:!0});var k=m(t);l=v(k,"DIV",{class:!0});var _=m(l);r=P(_,w),o=T(_),c=v(_,"BUTTON",{"aria-label":!0,class:!0});var $=m(c);n=v($,"DIV",{class:!0});var y=m(n);D&&D.l(y),y.forEach(p),$.forEach(p),_.forEach(p),d=T(k),b=v(k,"DIV",{class:!0});var I=m(b);f=v(I,"DIV",{id:!0,class:!0});var E=m(f);u=P(E,e[0]),E.forEach(p),I.forEach(p),k.forEach(p),h=T(i),g=v(i,"DIV",{class:!0});var V=m(g);x=v(V,"INPUT",{"aria-label":!0,type:!0,min:!0,max:!0,class:!0,id:!0,step:!0,style:!0}),V.forEach(p),i.forEach(p),this.h()},h(){s(n,"class","text-[var(--btn-content)] svelte-3akcb9"),s(c,"aria-label","Reset to Default"),s(c,"class","btn-regular w-7 h-7 rounded-md active:scale-90 svelte-3akcb9"),H(c,"opacity-0",e[0]===e[1]),H(c,"pointer-events-none",e[0]===e[1]),s(l,"class","flex gap-2 font-bold text-lg text-neutral-900 dark:text-neutral-100 transition relative ml-3 before:w-1 before:h-4 before:rounded-md before:bg-[var(--primary)] before:absolute before:-left-3 before:top-[0.33rem] svelte-3akcb9"),s(f,"id","hueValue"),s(f,"class","transition bg-[var(--btn-regular-bg)] w-10 h-7 rounded-md flex justify-center font-bold text-sm items-center text-[var(--btn-content)] svelte-3akcb9"),s(b,"class","flex gap-1 svelte-3akcb9"),s(t,"class","flex flex-row gap-2 mb-3 items-center justify-between svelte-3akcb9"),s(x,"aria-label",K(F.themeColor)),s(x,"type","range"),s(x,"min","0"),s(x,"max","360"),s(x,"class","slider svelte-3akcb9"),s(x,"id","colorSlider"),s(x,"step","5"),X(x,"width","100%"),s(g,"class","w-full h-6 px-1 bg-[oklch(0.80_0.10_0)] dark:bg-[oklch(0.70_0.10_0)] rounded select-none svelte-3akcb9"),s(a,"id","display-setting"),s(a,"class","float-panel float-panel-closed absolute transition-all w-80 right-4 px-4 py-4 svelte-3akcb9")},m(s,v){Y(s,a,v),i(a,t),i(t,l),i(l,r),i(l,o),i(l,c),i(c,n),D&&D.m(n,null),i(t,d),i(t,b),i(b,f),i(f,u),i(a,h),i(a,g),i(g,x),R(x,e[0]),k=!0,$||(y=[q(c,"click",e[2]),q(x,"change",e[5]),q(x,"input",e[5])],$=!0)},p(e,[s]){D&&D.p&&(!k||8&s)&&Z(D,I,e,e[3],k?te(I,e[3],s,ue):ee(e[3]),J),(!k||3&s)&&H(c,"opacity-0",e[0]===e[1]),(!k||3&s)&&H(c,"pointer-events-none",e[0]===e[1]),(!k||1&s)&&se(u,e[0]),1&s&&R(x,e[0])},i(e){k||(ae(D,e),k=!0)},o(e){le(D,e),k=!1},d(e){e&&p(a),D&&D.d(e),$=!1,re(y)}}}function de(e,s,a){let{$$slots:t={},$$scope:l}=s,r=ne();const i=G();return e.$$set=e=>{"$$scope"in e&&a(3,l=e.$$scope)},e.$$.update=()=>{1&e.$$.dirty&&(r||0===r)&&ie(r)},[r,i,function(){a(0,r=G())},l,t,function(){r=oe(this.value),a(0,r)}]}class be extends L{constructor(e){super(),M(this,e,de,ce,Q,{})}}export{be as default}; \ No newline at end of file diff --git a/_astro/LightDarkSwitch.3zt2vWh4.js b/_astro/LightDarkSwitch.H2rFizgQ.js similarity index 95% rename from _astro/LightDarkSwitch.3zt2vWh4.js rename to _astro/LightDarkSwitch.H2rFizgQ.js index c1cb093d1..be5ed26ea 100644 --- a/_astro/LightDarkSwitch.3zt2vWh4.js +++ b/_astro/LightDarkSwitch.H2rFizgQ.js @@ -1 +1 @@ -import{S as lt,i as at,s as ft,G as ue,n as re,I as He,j as S,D as ut,J as Ct,K as de,L as Qe,e as M,d as L,f as j,M as Ge,N as Ot,H as jt,O as Pt,E as Mt,P as Ke,Q as Lt,a as ve,R as z,b as A,t as xe,T as H,h as N,g as _e,k as I,l as O,o as x,U as Q,q as G,x as K,y as J,V as W,z as Dt}from"./translation.BexmyzJD.js";import{L as Y,D as Z,A as B,b as $t,c as Ft,d as At}from"./setting-utils.9Prgb40w.js";import{I as ke}from"./zh_TW.yAw_u0Pg.js";function dt(t,e){const n={},o={},r={$$scope:1};let i=t.length;for(;i--;){const s=t[i],c=e[i];if(c){for(const t in s)t in c||(o[t]=1);for(const t in c)r[t]||(n[t]=c[t],r[t]=1);t[i]=c}else for(const t in s)r[t]=1}for(const t in o)t in n||(n[t]=void 0);return n}const te=/^[a-z0-9]+(-[a-z0-9]+)*$/,pe=(t,e,n,o="")=>{const r=t.split(":");if("@"===t.slice(0,1)){if(r.length<2||r.length>3)return null;o=r.shift().slice(1)}if(r.length>3||!r.length)return null;if(r.length>1){const t=r.pop(),n=r.pop(),i={provider:r.length>0?r[0]:o,prefix:n,name:t};return e&&!ae(i)?null:i}const i=r[0],s=i.split("-");if(s.length>1){const t={provider:o,prefix:s.shift(),name:s.join("-")};return e&&!ae(t)?null:t}if(n&&""===o){const t={provider:o,prefix:"",name:i};return e&&!ae(t,n)?null:t}return null},ae=(t,e)=>!!t&&!(""!==t.provider&&!t.provider.match(te)||!(e&&""===t.prefix||t.prefix.match(te))||!t.name.match(te)),ht=Object.freeze({left:0,top:0,width:16,height:16}),he=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),me=Object.freeze({...ht,...he}),Te=Object.freeze({...me,body:"",hidden:!1});function Nt(t,e){const n={};!t.hFlip!=!e.hFlip&&(n.hFlip=!0),!t.vFlip!=!e.vFlip&&(n.vFlip=!0);const o=((t.rotate||0)+(e.rotate||0))%4;return o&&(n.rotate=o),n}function Je(t,e){const n=Nt(t,e);for(const o in Te)o in he?o in t&&!(o in n)&&(n[o]=he[o]):o in e?n[o]=e[o]:o in t&&(n[o]=t[o]);return n}function Vt(t,e){const n=t.icons,o=t.aliases||Object.create(null),r=Object.create(null);return Object.keys(n).concat(Object.keys(o)).forEach((function t(e){if(n[e])return r[e]=[];if(!(e in r)){r[e]=null;const n=o[e]&&o[e].parent,i=n&&t(n);i&&(r[e]=[n].concat(i))}return r[e]})),r}function Bt(t,e,n){const o=t.icons,r=t.aliases||Object.create(null);let i={};function s(t){i=Je(o[t]||r[t],i)}return s(e),n.forEach(s),Je(t,i)}function pt(t,e){const n=[];if("object"!=typeof t||"object"!=typeof t.icons)return n;t.not_found instanceof Array&&t.not_found.forEach((t=>{e(t,null),n.push(t)}));const o=Vt(t);for(const r in o){const i=o[r];i&&(e(r,Bt(t,r,i)),n.push(r))}return n}const Rt={provider:"",aliases:{},not_found:{},...ht};function Se(t,e){for(const n in e)if(n in t&&typeof t[n]!=typeof e[n])return!1;return!0}function mt(t){if("object"!=typeof t||null===t)return null;const e=t;if("string"!=typeof e.prefix||!t.icons||"object"!=typeof t.icons||!Se(t,Rt))return null;const n=e.icons;for(const t in n){const e=n[t];if(!t.match(te)||"string"!=typeof e.body||!Se(e,Te))return null}const o=e.aliases||Object.create(null);for(const t in o){const e=o[t],r=e.parent;if(!t.match(te)||"string"!=typeof r||!n[r]&&!o[r]||!Se(e,Te))return null}return e}const We=Object.create(null);function Ut(t,e){return{provider:t,prefix:e,icons:Object.create(null),missing:new Set}}function R(t,e){const n=We[t]||(We[t]=Object.create(null));return n[e]||(n[e]=Ut(t,e))}function Le(t,e){return mt(e)?pt(e,((e,n)=>{n?t.icons[e]=n:t.missing.add(e)})):[]}function qt(t,e,n){try{if("string"==typeof n.body)return t.icons[e]={...n},!0}catch{}return!1}let ne=!1;function gt(t){return"boolean"==typeof t&&(ne=t),ne}function zt(t){const e="string"==typeof t?pe(t,!0,ne):t;if(e){const t=R(e.provider,e.prefix),n=e.name;return t.icons[n]||(t.missing.has(n)?null:void 0)}}function Ht(t,e){const n=pe(t,!0,ne);if(!n)return!1;return qt(R(n.provider,n.prefix),n.name,e)}function Qt(t,e){if("object"!=typeof t)return!1;if("string"!=typeof e&&(e=t.provider||""),ne&&!e&&!t.prefix){let e=!1;return mt(t)&&(t.prefix="",pt(t,((t,n)=>{n&&Ht(t,n)&&(e=!0)}))),e}const n=t.prefix;if(!ae({provider:e,prefix:n,name:"a"}))return!1;return!!Le(R(e,n),t)}const bt=Object.freeze({width:null,height:null}),yt=Object.freeze({...bt,...he}),Gt=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Kt=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function Xe(t,e,n){if(1===e)return t;if(n=n||100,"number"==typeof t)return Math.ceil(t*e*n)/n;if("string"!=typeof t)return t;const o=t.split(Gt);if(null===o||!o.length)return t;const r=[];let i=o.shift(),s=Kt.test(i);for(;;){if(s){const t=parseFloat(i);isNaN(t)?r.push(i):r.push(Math.ceil(t*e*n)/n)}else r.push(i);if(i=o.shift(),void 0===i)return r.join("");s=!s}}function Jt(t,e="defs"){let n="";const o=t.indexOf("<"+e);for(;o>=0;){const r=t.indexOf(">",o),i=t.indexOf("",i);if(-1===s)break;n+=t.slice(r+1,i).trim(),t=t.slice(0,o).trim()+t.slice(s+1)}return{defs:n,content:t}}function Wt(t,e){return t?""+t+""+e:e}function Xt(t,e,n){const o=Jt(t);return Wt(o.defs,e+o.content+n)}const Yt=t=>"unset"===t||"undefined"===t||"none"===t;function Zt(t,e){const n={...me,...t},o={...yt,...e},r={left:n.left,top:n.top,width:n.width,height:n.height};let i=n.body;[n,o].forEach((t=>{const e=[],n=t.hFlip,o=t.vFlip;let s,c=t.rotate;switch(n?o?c+=2:(e.push("translate("+(r.width+r.left).toString()+" "+(0-r.top).toString()+")"),e.push("scale(-1 1)"),r.top=r.left=0):o&&(e.push("translate("+(0-r.left).toString()+" "+(r.height+r.top).toString()+")"),e.push("scale(1 -1)"),r.top=r.left=0),c<0&&(c-=4*Math.floor(c/4)),c%=4,c){case 1:s=r.height/2+r.top,e.unshift("rotate(90 "+s.toString()+" "+s.toString()+")");break;case 2:e.unshift("rotate(180 "+(r.width/2+r.left).toString()+" "+(r.height/2+r.top).toString()+")");break;case 3:s=r.width/2+r.left,e.unshift("rotate(-90 "+s.toString()+" "+s.toString()+")")}c%2==1&&(r.left!==r.top&&(s=r.left,r.left=r.top,r.top=s),r.width!==r.height&&(s=r.width,r.width=r.height,r.height=s)),e.length&&(i=Xt(i,'',""))}));const s=o.width,c=o.height,a=r.width,l=r.height;let f,u;null===s?(u=null===c?"1em":"auto"===c?l:c,f=Xe(u,a/l)):(f="auto"===s?a:s,u=null===c?Xe(f,l/a):"auto"===c?l:c);const d={},p=(t,e)=>{Yt(e)||(d[t]=e.toString())};p("width",f),p("height",u);const h=[r.left,r.top,a,l];return d.viewBox=h.join(" "),{attributes:d,viewBox:h,body:i}}const en=/\sid="(\S+)"/g,tn="IconifyId"+Date.now().toString(16)+(16777216*Math.random()|0).toString(16);let nn=0;function on(t,e=tn){const n=[];let o;for(;o=en.exec(t);)n.push(o[1]);if(!n.length)return t;const r="suffix"+(16777216*Math.random()|Date.now()).toString(16);return n.forEach((n=>{const o="function"==typeof e?e(n):e+(nn++).toString(),i=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+i+')([")]|\\.[a-z])',"g"),"$1"+o+r+"$3")})),t=t.replace(new RegExp(r,"g"),"")}const Ee=Object.create(null);function rn(t,e){Ee[t]=e}function Ce(t){return Ee[t]||Ee[""]}function De(t){let e;if("string"==typeof t.resources)e=[t.resources];else if(e=t.resources,!(e instanceof Array&&e.length))return null;return{resources:e,path:t.path||"/",maxURL:t.maxURL||500,rotate:t.rotate||750,timeout:t.timeout||5e3,random:!0===t.random,index:t.index||0,dataAfterTimeout:!1!==t.dataAfterTimeout}}const $e=Object.create(null),ee=["https://api.simplesvg.com","https://api.unisvg.com"],fe=[];for(;ee.length>0;)1===ee.length||Math.random()>.5?fe.push(ee.shift()):fe.push(ee.pop());function sn(t,e){const n=De(e);return null!==n&&($e[t]=n,!0)}function Fe(t){return $e[t]}$e[""]=De({resources:["https://api.iconify.design"].concat(fe)});const cn=()=>{let t;try{if(t=fetch,"function"==typeof t)return t}catch{}};let Ye=cn();function ln(t,e){const n=Fe(t);if(!n)return 0;let o;if(n.maxURL){let t=0;n.resources.forEach((e=>{t=Math.max(t,e.length)}));const r=e+".json?icons=";o=n.maxURL-t-n.path.length-r.length}else o=0;return o}function an(t){return 404===t}const fn=(t,e,n)=>{const o=[],r=ln(t,e),i="icons";let s={type:i,provider:t,prefix:e,icons:[]},c=0;return n.forEach(((n,a)=>{c+=n.length+1,c>=r&&a>0&&(o.push(s),s={type:i,provider:t,prefix:e,icons:[]},c=n.length),s.icons.push(n)})),o.push(s),o};function un(t){if("string"==typeof t){const e=Fe(t);if(e)return e.path}return"/"}const dn=(t,e,n)=>{if(!Ye)return void n("abort",424);let o=un(e.provider);switch(e.type){case"icons":{const t=e.prefix,n=e.icons.join(",");o+=t+".json?"+new URLSearchParams({icons:n}).toString();break}case"custom":{const t=e.uri;o+="/"===t.slice(0,1)?t.slice(1):t;break}default:return void n("abort",400)}let r=503;Ye(t+o).then((t=>{const e=t.status;if(200===e)return r=501,t.json();setTimeout((()=>{n(an(e)?"abort":"next",e)}))})).then((t=>{"object"==typeof t&&null!==t?setTimeout((()=>{n("success",t)})):setTimeout((()=>{404===t?n("abort",t):n("next",r)}))})).catch((()=>{n("next",r)}))},hn={prepare:fn,send:dn};function pn(t){const e={loaded:[],missing:[],pending:[]},n=Object.create(null);t.sort(((t,e)=>t.provider!==e.provider?t.provider.localeCompare(e.provider):t.prefix!==e.prefix?t.prefix.localeCompare(e.prefix):t.name.localeCompare(e.name)));let o={provider:"",prefix:"",name:""};return t.forEach((t=>{if(o.name===t.name&&o.prefix===t.prefix&&o.provider===t.provider)return;o=t;const r=t.provider,i=t.prefix,s=t.name,c=n[r]||(n[r]=Object.create(null)),a=c[i]||(c[i]=R(r,i));let l;l=s in a.icons?e.loaded:""===i||a.missing.has(s)?e.missing:e.pending;const f={provider:r,prefix:i,name:s};l.push(f)})),e}function wt(t,e){t.forEach((t=>{const n=t.loaderCallbacks;n&&(t.loaderCallbacks=n.filter((t=>t.id!==e)))}))}function mn(t){t.pendingCallbacksFlag||(t.pendingCallbacksFlag=!0,setTimeout((()=>{t.pendingCallbacksFlag=!1;const e=t.loaderCallbacks?t.loaderCallbacks.slice(0):[];if(!e.length)return;let n=!1;const o=t.provider,r=t.prefix;e.forEach((e=>{const i=e.icons,s=i.pending.length;i.pending=i.pending.filter((e=>{if(e.prefix!==r)return!0;const s=e.name;if(t.icons[s])i.loaded.push({provider:o,prefix:r,name:s});else{if(!t.missing.has(s))return n=!0,!0;i.missing.push({provider:o,prefix:r,name:s})}return!1})),i.pending.length!==s&&(n||wt([t],e.id),e.callback(i.loaded.slice(0),i.missing.slice(0),i.pending.slice(0),e.abort))}))})))}let gn=0;function bn(t,e,n){const o=gn++,r=wt.bind(null,n,o);if(!e.pending.length)return r;const i={id:o,icons:e,callback:t,abort:r};return n.forEach((t=>{(t.loaderCallbacks||(t.loaderCallbacks=[])).push(i)})),r}function yn(t,e=!0,n=!1){const o=[];return t.forEach((t=>{const r="string"==typeof t?pe(t,e,n):t;r&&o.push(r)})),o}var wn={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function vn(t,e,n,o){const r=t.resources.length,i=t.random?Math.floor(Math.random()*r):t.index;let s;if(t.random){let e=t.resources.slice(0);for(s=[];e.length>1;){const t=Math.floor(Math.random()*e.length);s.push(e[t]),e=e.slice(0,t).concat(e.slice(t+1))}s=s.concat(e)}else s=t.resources.slice(i).concat(t.resources.slice(0,i));const c=Date.now();let a,l="pending",f=0,u=null,d=[],p=[];function h(){u&&(clearTimeout(u),u=null)}function g(){"pending"===l&&(l="aborted"),h(),d.forEach((t=>{"pending"===t.status&&(t.status="aborted")})),d=[]}function m(t,e){e&&(p=[]),"function"==typeof t&&p.push(t)}function b(){l="failed",p.forEach((t=>{t(void 0,a)}))}function y(){d.forEach((t=>{"pending"===t.status&&(t.status="aborted")})),d=[]}function x(){if("pending"!==l)return;h();const o=s.shift();if(void 0===o)return d.length?void(u=setTimeout((()=>{h(),"pending"===l&&(y(),b())}),t.timeout)):void b();const r={status:"pending",resource:o,callback:(e,n)=>{!function(e,n,o){const r="success"!==n;switch(d=d.filter((t=>t!==e)),l){case"pending":break;case"failed":if(r||!t.dataAfterTimeout)return;break;default:return}if("abort"===n)return a=o,void b();if(r)return a=o,void(d.length||(s.length?x():b()));if(h(),y(),!t.random){const n=t.resources.indexOf(e.resource);-1!==n&&n!==t.index&&(t.index=n)}l="completed",p.forEach((t=>{t(o)}))}(r,e,n)}};d.push(r),f++,u=setTimeout(x,t.rotate),n(o,e,r.callback)}return"function"==typeof o&&p.push(o),setTimeout(x),function(){return{startTime:c,payload:e,status:l,queriesSent:f,queriesPending:d.length,subscribe:m,abort:g}}}function vt(t){const e={...wn,...t};let n=[];function o(){n=n.filter((t=>"pending"===t().status))}return{query:function(t,r,i){const s=vn(e,t,r,((t,e)=>{o(),i&&i(t,e)}));return n.push(s),s},find:function(t){return n.find((e=>t(e)))||null},setIndex:t=>{e.index=t},getIndex:()=>e.index,cleanup:o}}function Ze(){}const Ie=Object.create(null);function xn(t){if(!Ie[t]){const e=Fe(t);if(!e)return;const n={config:e,redundancy:vt(e)};Ie[t]=n}return Ie[t]}function _n(t,e,n){let o,r;if("string"==typeof t){const e=Ce(t);if(!e)return n(void 0,424),Ze;r=e.send;const i=xn(t);i&&(o=i.redundancy)}else{const e=De(t);if(e){o=vt(e);const n=Ce(t.resources?t.resources[0]:"");n&&(r=n.send)}}return o&&r?o.query(e,r,n)().abort:(n(void 0,424),Ze)}const et="iconify2",oe="iconify",xt=oe+"-count",tt=oe+"-version",_t=36e5,kn=168,Sn=50;function Oe(t,e){try{return t.getItem(e)}catch{}}function Ae(t,e,n){try{return t.setItem(e,n),!0}catch{}}function nt(t,e){try{t.removeItem(e)}catch{}}function je(t,e){return Ae(t,xt,e.toString())}function Pe(t){return parseInt(Oe(t,xt))||0}const ge={local:!0,session:!0},kt={local:new Set,session:new Set};let Ne=!1;function In(t){Ne=t}let le=typeof window>"u"?{}:window;function St(t){const e=t+"Storage";try{if(le&&le[e]&&"number"==typeof le[e].length)return le[e]}catch{}ge[t]=!1}function It(t,e){const n=St(t);if(!n)return;const o=Oe(n,tt);if(o!==et){if(o){const t=Pe(n);for(let e=0;e{const o=oe+t.toString(),i=Oe(n,o);if("string"==typeof i){try{const n=JSON.parse(i);if("object"==typeof n&&"number"==typeof n.cached&&n.cached>r&&"string"==typeof n.provider&&"object"==typeof n.data&&"string"==typeof n.data.prefix&&e(n,t))return!0}catch{}nt(n,o)}};let s=Pe(n);for(let e=s-1;e>=0;e--)i(e)||(e===s-1?(s--,je(n,s)):kt[t].add(e))}function Tt(){if(!Ne){In(!0);for(const t in ge)It(t,(t=>{const e=t.data,n=R(t.provider,e.prefix);if(!Le(n,e).length)return!1;const o=e.lastModified||-1;return n.lastModifiedCached=n.lastModifiedCached?Math.min(n.lastModifiedCached,o):o,!0}))}}function Tn(t,e){const n=t.lastModifiedCached;if(n&&n>=e)return n===e;if(t.lastModifiedCached=e,n)for(const n in ge)It(n,(n=>{const o=n.data;return n.provider!==t.provider||o.prefix!==t.prefix||o.lastModified===e}));return!0}function En(t,e){function n(n){let o;if(!ge[n]||!(o=St(n)))return;const r=kt[n];let i;if(r.size)r.delete(i=Array.from(r).shift());else if(i=Pe(o),i>=50||!je(o,i+1))return;const s={cached:Math.floor(Date.now()/_t),provider:t.provider,data:e};return Ae(o,oe+i.toString(),JSON.stringify(s))}Ne||Tt(),e.lastModified&&!Tn(t,e.lastModified)||Object.keys(e.icons).length&&(e.not_found&&delete(e=Object.assign({},e)).not_found,n("local")||n("session"))}function ot(){}function Cn(t){t.iconsLoaderFlag||(t.iconsLoaderFlag=!0,setTimeout((()=>{t.iconsLoaderFlag=!1,mn(t)})))}function On(t,e){t.iconsToLoad?t.iconsToLoad=t.iconsToLoad.concat(e).sort():t.iconsToLoad=e,t.iconsQueueFlag||(t.iconsQueueFlag=!0,setTimeout((()=>{t.iconsQueueFlag=!1;const{provider:e,prefix:n}=t,o=t.iconsToLoad;let r;delete t.iconsToLoad,o&&(r=Ce(e))&&r.prepare(e,n,o).forEach((n=>{_n(e,n,(e=>{if("object"!=typeof e)n.icons.forEach((e=>{t.missing.add(e)}));else try{const n=Le(t,e);if(!n.length)return;const o=t.pendingIcons;o&&n.forEach((t=>{o.delete(t)})),En(t,e)}catch(t){console.error(t)}Cn(t)}))}))})))}const jn=(t,e)=>{const n=pn(yn(t,!0,gt()));if(!n.pending.length){let t=!0;return e&&setTimeout((()=>{t&&e(n.loaded,n.missing,n.pending,ot)})),()=>{t=!1}}const o=Object.create(null),r=[];let i,s;return n.pending.forEach((t=>{const{provider:e,prefix:n}=t;if(n===s&&e===i)return;i=e,s=n,r.push(R(e,n));const c=o[e]||(o[e]=Object.create(null));c[n]||(c[n]=[])})),n.pending.forEach((t=>{const{provider:e,prefix:n,name:r}=t,i=R(e,n),s=i.pendingIcons||(i.pendingIcons=new Set);s.has(r)||(s.add(r),o[e][n].push(r))})),r.forEach((t=>{const{provider:e,prefix:n}=t;o[e][n].length&&On(t,o[e][n])})),e?bn(e,n,r):ot};function Pn(t,e){const n={...t};for(const t in e){const o=e[t],r=typeof o;t in bt?(null===o||o&&("string"===r||"number"===r))&&(n[t]=o):r===typeof n[t]&&(n[t]="rotate"===t?o%4:o)}return n}const Mn=/[\s,]+/;function Ln(t,e){e.split(Mn).forEach((e=>{switch(e.trim()){case"horizontal":t.hFlip=!0;break;case"vertical":t.vFlip=!0}}))}function Dn(t,e=0){const n=t.replace(/^-?[0-9.]*/,"");function o(t){for(;t<0;)t+=4;return t%4}if(""===n){const e=parseInt(t);return isNaN(e)?0:o(e)}if(n!==t){let e=0;switch(n){case"%":e=25;break;case"deg":e=90}if(e){let r=parseFloat(t.slice(0,t.length-n.length));return isNaN(r)?0:(r/=e,r%1==0?o(r):0)}}return e}function $n(t,e){let n=-1===t.indexOf("xlink:")?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const t in e)n+=" "+t+'="'+e[t]+'"';return'"+t+""}function Fn(t){return t.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(//g,"%3E").replace(/\s+/g," ")}function An(t){return"data:image/svg+xml,"+Fn(t)}function Nn(t){return'url("'+An(t)+'")'}const rt={...yt,inline:!1},Vn={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},Bn={display:"inline-block"},Me={"background-color":"currentColor"},Et={"background-color":"transparent"},st={image:"var(--svg)",repeat:"no-repeat",size:"100% 100%"},it={"-webkit-mask":Me,mask:Me,background:Et};for(const t in it){const e=it[t];for(const n in st)e[t+"-"+n]=st[n]}function Rn(t){return t+(t.match(/^[-0-9.]+$/)?"px":"")}function Un(t,e){const n=Pn(rt,e),o=e.mode||"svg",r="svg"===o?{...Vn}:{};-1===t.body.indexOf("xlink:")&&delete r["xmlns:xlink"];let i="string"==typeof e.style?e.style:"";for(let t in e){const o=e[t];if(void 0!==o)switch(t){case"icon":case"style":case"onLoad":case"mode":break;case"inline":case"hFlip":case"vFlip":n[t]=!0===o||"true"===o||1===o;break;case"flip":"string"==typeof o&&Ln(n,o);break;case"color":i=i+(i.length>0&&";"!==i.trim().slice(-1)?";":"")+"color: "+o+"; ";break;case"rotate":"string"==typeof o?n[t]=Dn(o):"number"==typeof o&&(n[t]=o);break;case"ariaHidden":case"aria-hidden":!0!==o&&"true"!==o&&delete r["aria-hidden"];break;default:if("on:"===t.slice(0,3))break;void 0===rt[t]&&(r[t]=o)}}const s=Zt(t,n),c=s.attributes;if(n.inline&&(i="vertical-align: -0.125em; "+i),"svg"===o){Object.assign(r,c),""!==i&&(r.style=i);let t=0,n=e.id;return"string"==typeof n&&(n=n.replace(/-/g,"_")),{svg:!0,attributes:r,body:on(s.body,n?()=>n+"ID"+t++:"iconifySvelte")}}const{body:a,width:l,height:f}=t,u="mask"===o||"bg"!==o&&-1!==a.indexOf("currentColor"),d={"--svg":Nn($n(a,{...c,width:l+"",height:f+""}))},p=t=>{const e=c[t];e&&(d[t]=Rn(e))};p("width"),p("height"),Object.assign(d,Bn,u?Me:Et);let h="";for(const t in d)h+=t+": "+d[t]+";";return r.style=h+i,{svg:!1,attributes:r}}if(gt(!0),rn("",hn),typeof document<"u"&&typeof window<"u"){Tt();const t=window;if(void 0!==t.IconifyPreload){const e=t.IconifyPreload,n="Invalid IconifyPreload syntax.";"object"==typeof e&&null!==e&&(e instanceof Array?e:[e]).forEach((t=>{try{("object"!=typeof t||null===t||t instanceof Array||"object"!=typeof t.icons||"string"!=typeof t.prefix||!Qt(t))&&console.error(n)}catch{console.error(n)}}))}if(void 0!==t.IconifyProviders){const e=t.IconifyProviders;if("object"==typeof e&&null!==e)for(let t in e){const n="IconifyProviders["+t+"] is invalid.";try{const o=e[t];if("object"!=typeof o||!o||void 0===o.resources)continue;sn(t,o)||console.error(n)}catch{console.error(n)}}}}function qn(t,e,n,o,r){function i(){e.loading&&(e.loading.abort(),e.loading=null)}if("object"==typeof t&&null!==t&&"string"==typeof t.body)return e.name="",i(),{data:{...me,...t}};let s;if("string"!=typeof t||null===(s=pe(t,!1,!0)))return i(),null;const c=zt(s);if(!c)return n&&(!e.loading||e.loading.name!==t)&&(i(),e.name="",e.loading={name:t,abort:jn([s],o)}),null;i(),e.name!==t&&(e.name=t,r&&!e.destroyed&&r(t));const a=["iconify"];return""!==s.prefix&&a.push("iconify--"+s.prefix),""!==s.provider&&a.push("iconify--"+s.provider),{data:c,classes:a}}function zn(t,e){return t?Un({...me,...t},e):null}function ct(t){let e;function n(t,e){return t[0].svg?Qn:Hn}let o=n(t),r=o(t);return{c(){r.c(),e=ue()},l(t){r.l(t),e=ue()},m(t,n){r.m(t,n),re(t,e,n)},p(t,i){o===(o=n(t))&&r?r.p(t,i):(r.d(1),r=o(t),r&&(r.c(),r.m(e.parentNode,e)))},d(t){t&&S(e),r.d(t)}}}function Hn(t){let e,n=[t[0].attributes],o={};for(let t=0;t{"function"==typeof e.onLoad&&e.onLoad(t),Lt()("load",{icon:t})};function a(){n(3,s++,s)}return ut((()=>{n(2,i=!0)})),Ct((()=>{n(1,o.destroyed=!0,o),o.loading&&(o.loading.abort(),n(1,o.loading=null,o))})),t.$$set=t=>{n(6,e=de(de({},e),Qe(t)))},t.$$.update=()=>{{const t=qn(e.icon,o,i,a,c);n(0,r=t?zn(t.data,e):null),r&&t.classes&&n(0,r.attributes.class=("string"==typeof e.class?e.class+" ":"")+t.classes.join(" "),r)}},e=Qe(e),[r,o,i,s]}class X extends lt{constructor(t){super(),at(this,t,Kn,Gn,ft,{})}}function Jn(t){let e,n,o,r,i,s,c,a,l,f,u,d,p,h,g,m,b,y,v,w,k,$,E,T,F,C,D,P,R,_,U=ve(ke.lightMode)+"",q=ve(ke.darkMode)+"",V=ve(ke.systemMode)+"";return r=new X({props:{icon:"material-symbols:wb-sunny-outline-rounded",class:"text-[1.25rem]"}}),c=new X({props:{icon:"material-symbols:dark-mode-outline-rounded",class:"text-[1.25rem]"}}),f=new X({props:{icon:"material-symbols:radio-button-partial-outline",class:"text-[1.25rem]"}}),g=new X({props:{icon:"material-symbols:wb-sunny-outline-rounded",class:"text-[1.25rem] mr-3"}}),w=new X({props:{icon:"material-symbols:dark-mode-outline-rounded",class:"text-[1.25rem] mr-3"}}),F=new X({props:{icon:"material-symbols:radio-button-partial-outline",class:"text-[1.25rem] mr-3"}}),{c(){e=M("div"),n=M("button"),o=M("div"),z(r.$$.fragment),i=A(),s=M("div"),z(c.$$.fragment),a=A(),l=M("div"),z(f.$$.fragment),u=A(),d=M("div"),p=M("div"),h=M("button"),z(g.$$.fragment),m=A(),b=xe(U),y=A(),v=M("button"),z(w.$$.fragment),k=A(),$=xe(q),E=A(),T=M("button"),z(F.$$.fragment),C=A(),D=xe(V),this.h()},l(t){e=L(t,"DIV",{class:!0,role:!0,tabindex:!0});var x=j(e);n=L(x,"BUTTON",{"aria-label":!0,role:!0,class:!0,id:!0});var O=j(n);o=L(O,"DIV",{class:!0});var I=j(o);H(r.$$.fragment,I),I.forEach(S),i=N(O),s=L(O,"DIV",{class:!0});var M=j(s);H(c.$$.fragment,M),M.forEach(S),a=N(O),l=L(O,"DIV",{class:!0});var A=j(l);H(f.$$.fragment,A),A.forEach(S),O.forEach(S),u=N(x),d=L(x,"DIV",{id:!0,class:!0});var z=j(d);p=L(z,"DIV",{class:!0});var P=j(p);h=L(P,"BUTTON",{class:!0});var R=j(h);H(g.$$.fragment,R),m=N(R),b=_e(R,U),R.forEach(S),y=N(P),v=L(P,"BUTTON",{class:!0});var B=j(v);H(w.$$.fragment,B),k=N(B),$=_e(B,q),B.forEach(S),E=N(P),T=L(P,"BUTTON",{class:!0});var J=j(T);H(F.$$.fragment,J),C=N(J),D=_e(J,V),J.forEach(S),P.forEach(S),z.forEach(S),x.forEach(S),this.h()},h(){I(o,"class","absolute"),O(o,"opacity-0",t[0]!==Y),I(s,"class","absolute"),O(s,"opacity-0",t[0]!==Z),I(l,"class","absolute"),O(l,"opacity-0",t[0]!==B),I(n,"aria-label","Light/Dark Mode"),I(n,"role","menuitem"),I(n,"class","relative btn-plain scale-animation rounded-lg h-11 w-11 active:scale-90"),I(n,"id","scheme-switch"),I(h,"class","flex transition whitespace-nowrap items-center justify-start w-full btn-plain scale-animation rounded-lg h-9 px-3 font-medium active:scale-95 mb-0.5"),O(h,"current-theme-btn",t[0]===Y),I(v,"class","flex transition whitespace-nowrap items-center justify-start w-full btn-plain scale-animation rounded-lg h-9 px-3 font-medium active:scale-95 mb-0.5"),O(v,"current-theme-btn",t[0]===Z),I(T,"class","flex transition whitespace-nowrap items-center justify-start w-full btn-plain scale-animation rounded-lg h-9 px-3 font-medium active:scale-95"),O(T,"current-theme-btn",t[0]===B),I(p,"class","card-base float-panel p-2"),I(d,"id","light-dark-panel"),I(d,"class","hidden lg:block absolute transition float-panel-closed top-11 -right-2 pt-5"),I(e,"class","relative z-50"),I(e,"role","menu"),I(e,"tabindex","-1")},m(j,O){re(j,e,O),x(e,n),x(n,o),Q(r,o,null),x(n,i),x(n,s),Q(c,s,null),x(n,a),x(n,l),Q(f,l,null),x(e,u),x(e,d),x(d,p),x(p,h),Q(g,h,null),x(h,m),x(h,b),x(p,y),x(p,v),Q(w,v,null),x(v,k),x(v,$),x(p,E),x(p,T),Q(F,T,null),x(T,C),x(T,D),P=!0,R||(_=[G(n,"click",t[2]),G(n,"mouseenter",Wn),G(h,"click",t[3]),G(v,"click",t[4]),G(T,"click",t[5]),G(e,"mouseleave",Xn)],R=!0)},p(t,[e]){(!P||1&e)&&O(o,"opacity-0",t[0]!==Y),(!P||1&e)&&O(s,"opacity-0",t[0]!==Z),(!P||1&e)&&O(l,"opacity-0",t[0]!==B),(!P||1&e)&&O(h,"current-theme-btn",t[0]===Y),(!P||1&e)&&O(v,"current-theme-btn",t[0]===Z),(!P||1&e)&&O(T,"current-theme-btn",t[0]===B)},i(t){P||(K(r.$$.fragment,t),K(c.$$.fragment,t),K(f.$$.fragment,t),K(g.$$.fragment,t),K(w.$$.fragment,t),K(F.$$.fragment,t),P=!0)},o(t){J(r.$$.fragment,t),J(c.$$.fragment,t),J(f.$$.fragment,t),J(g.$$.fragment,t),J(w.$$.fragment,t),J(F.$$.fragment,t),P=!1},d(t){t&&S(e),W(r),W(c),W(f),W(g),W(w),W(F),R=!1,Dt(_)}}}function Wn(){document.querySelector("#light-dark-panel").classList.remove("float-panel-closed")}function Xn(){document.querySelector("#light-dark-panel").classList.add("float-panel-closed")}function Yn(t,e,n){const o=[Y,Z,B];let r=B;function i(t){n(0,r=t),Ft(t)}return ut((()=>{n(0,r=$t());const t=window.matchMedia("(prefers-color-scheme: dark)"),e=t=>{At(r)};return t.addEventListener("change",e),()=>{t.removeEventListener("change",e)}})),[r,i,function(){let t=0;for(;ti(Y),()=>i(Z),()=>i(B)]}class no extends lt{constructor(t){super(),at(this,t,Yn,Jn,ft,{})}}export{no as default}; \ No newline at end of file +import{S as lt,i as at,s as ft,G as ue,n as re,I as He,j as S,D as ut,J as Ct,K as de,L as Qe,e as M,d as L,f as j,M as Ge,N as Ot,H as jt,O as Pt,E as Mt,P as Ke,Q as Lt,a as ve,R as z,b as A,t as xe,T as H,h as N,g as _e,k as I,l as O,o as x,U as Q,q as G,x as K,y as J,V as W,z as Dt}from"./translation.BIr-2hnc.js";import{L as Y,D as Z,A as B,b as $t,c as Ft,d as At}from"./setting-utils.9Prgb40w.js";import{I as ke}from"./zh_TW.CdORO3r2.js";function dt(t,e){const n={},o={},r={$$scope:1};let i=t.length;for(;i--;){const s=t[i],c=e[i];if(c){for(const t in s)t in c||(o[t]=1);for(const t in c)r[t]||(n[t]=c[t],r[t]=1);t[i]=c}else for(const t in s)r[t]=1}for(const t in o)t in n||(n[t]=void 0);return n}const te=/^[a-z0-9]+(-[a-z0-9]+)*$/,pe=(t,e,n,o="")=>{const r=t.split(":");if("@"===t.slice(0,1)){if(r.length<2||r.length>3)return null;o=r.shift().slice(1)}if(r.length>3||!r.length)return null;if(r.length>1){const t=r.pop(),n=r.pop(),i={provider:r.length>0?r[0]:o,prefix:n,name:t};return e&&!ae(i)?null:i}const i=r[0],s=i.split("-");if(s.length>1){const t={provider:o,prefix:s.shift(),name:s.join("-")};return e&&!ae(t)?null:t}if(n&&""===o){const t={provider:o,prefix:"",name:i};return e&&!ae(t,n)?null:t}return null},ae=(t,e)=>!!t&&!(""!==t.provider&&!t.provider.match(te)||!(e&&""===t.prefix||t.prefix.match(te))||!t.name.match(te)),ht=Object.freeze({left:0,top:0,width:16,height:16}),he=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),me=Object.freeze({...ht,...he}),Te=Object.freeze({...me,body:"",hidden:!1});function Nt(t,e){const n={};!t.hFlip!=!e.hFlip&&(n.hFlip=!0),!t.vFlip!=!e.vFlip&&(n.vFlip=!0);const o=((t.rotate||0)+(e.rotate||0))%4;return o&&(n.rotate=o),n}function Je(t,e){const n=Nt(t,e);for(const o in Te)o in he?o in t&&!(o in n)&&(n[o]=he[o]):o in e?n[o]=e[o]:o in t&&(n[o]=t[o]);return n}function Vt(t,e){const n=t.icons,o=t.aliases||Object.create(null),r=Object.create(null);return Object.keys(n).concat(Object.keys(o)).forEach((function t(e){if(n[e])return r[e]=[];if(!(e in r)){r[e]=null;const n=o[e]&&o[e].parent,i=n&&t(n);i&&(r[e]=[n].concat(i))}return r[e]})),r}function Bt(t,e,n){const o=t.icons,r=t.aliases||Object.create(null);let i={};function s(t){i=Je(o[t]||r[t],i)}return s(e),n.forEach(s),Je(t,i)}function pt(t,e){const n=[];if("object"!=typeof t||"object"!=typeof t.icons)return n;t.not_found instanceof Array&&t.not_found.forEach((t=>{e(t,null),n.push(t)}));const o=Vt(t);for(const r in o){const i=o[r];i&&(e(r,Bt(t,r,i)),n.push(r))}return n}const Rt={provider:"",aliases:{},not_found:{},...ht};function Se(t,e){for(const n in e)if(n in t&&typeof t[n]!=typeof e[n])return!1;return!0}function mt(t){if("object"!=typeof t||null===t)return null;const e=t;if("string"!=typeof e.prefix||!t.icons||"object"!=typeof t.icons||!Se(t,Rt))return null;const n=e.icons;for(const t in n){const e=n[t];if(!t.match(te)||"string"!=typeof e.body||!Se(e,Te))return null}const o=e.aliases||Object.create(null);for(const t in o){const e=o[t],r=e.parent;if(!t.match(te)||"string"!=typeof r||!n[r]&&!o[r]||!Se(e,Te))return null}return e}const We=Object.create(null);function Ut(t,e){return{provider:t,prefix:e,icons:Object.create(null),missing:new Set}}function R(t,e){const n=We[t]||(We[t]=Object.create(null));return n[e]||(n[e]=Ut(t,e))}function Le(t,e){return mt(e)?pt(e,((e,n)=>{n?t.icons[e]=n:t.missing.add(e)})):[]}function qt(t,e,n){try{if("string"==typeof n.body)return t.icons[e]={...n},!0}catch{}return!1}let ne=!1;function gt(t){return"boolean"==typeof t&&(ne=t),ne}function zt(t){const e="string"==typeof t?pe(t,!0,ne):t;if(e){const t=R(e.provider,e.prefix),n=e.name;return t.icons[n]||(t.missing.has(n)?null:void 0)}}function Ht(t,e){const n=pe(t,!0,ne);if(!n)return!1;return qt(R(n.provider,n.prefix),n.name,e)}function Qt(t,e){if("object"!=typeof t)return!1;if("string"!=typeof e&&(e=t.provider||""),ne&&!e&&!t.prefix){let e=!1;return mt(t)&&(t.prefix="",pt(t,((t,n)=>{n&&Ht(t,n)&&(e=!0)}))),e}const n=t.prefix;if(!ae({provider:e,prefix:n,name:"a"}))return!1;return!!Le(R(e,n),t)}const bt=Object.freeze({width:null,height:null}),yt=Object.freeze({...bt,...he}),Gt=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Kt=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function Xe(t,e,n){if(1===e)return t;if(n=n||100,"number"==typeof t)return Math.ceil(t*e*n)/n;if("string"!=typeof t)return t;const o=t.split(Gt);if(null===o||!o.length)return t;const r=[];let i=o.shift(),s=Kt.test(i);for(;;){if(s){const t=parseFloat(i);isNaN(t)?r.push(i):r.push(Math.ceil(t*e*n)/n)}else r.push(i);if(i=o.shift(),void 0===i)return r.join("");s=!s}}function Jt(t,e="defs"){let n="";const o=t.indexOf("<"+e);for(;o>=0;){const r=t.indexOf(">",o),i=t.indexOf("",i);if(-1===s)break;n+=t.slice(r+1,i).trim(),t=t.slice(0,o).trim()+t.slice(s+1)}return{defs:n,content:t}}function Wt(t,e){return t?""+t+""+e:e}function Xt(t,e,n){const o=Jt(t);return Wt(o.defs,e+o.content+n)}const Yt=t=>"unset"===t||"undefined"===t||"none"===t;function Zt(t,e){const n={...me,...t},o={...yt,...e},r={left:n.left,top:n.top,width:n.width,height:n.height};let i=n.body;[n,o].forEach((t=>{const e=[],n=t.hFlip,o=t.vFlip;let s,c=t.rotate;switch(n?o?c+=2:(e.push("translate("+(r.width+r.left).toString()+" "+(0-r.top).toString()+")"),e.push("scale(-1 1)"),r.top=r.left=0):o&&(e.push("translate("+(0-r.left).toString()+" "+(r.height+r.top).toString()+")"),e.push("scale(1 -1)"),r.top=r.left=0),c<0&&(c-=4*Math.floor(c/4)),c%=4,c){case 1:s=r.height/2+r.top,e.unshift("rotate(90 "+s.toString()+" "+s.toString()+")");break;case 2:e.unshift("rotate(180 "+(r.width/2+r.left).toString()+" "+(r.height/2+r.top).toString()+")");break;case 3:s=r.width/2+r.left,e.unshift("rotate(-90 "+s.toString()+" "+s.toString()+")")}c%2==1&&(r.left!==r.top&&(s=r.left,r.left=r.top,r.top=s),r.width!==r.height&&(s=r.width,r.width=r.height,r.height=s)),e.length&&(i=Xt(i,'',""))}));const s=o.width,c=o.height,a=r.width,l=r.height;let f,u;null===s?(u=null===c?"1em":"auto"===c?l:c,f=Xe(u,a/l)):(f="auto"===s?a:s,u=null===c?Xe(f,l/a):"auto"===c?l:c);const d={},p=(t,e)=>{Yt(e)||(d[t]=e.toString())};p("width",f),p("height",u);const h=[r.left,r.top,a,l];return d.viewBox=h.join(" "),{attributes:d,viewBox:h,body:i}}const en=/\sid="(\S+)"/g,tn="IconifyId"+Date.now().toString(16)+(16777216*Math.random()|0).toString(16);let nn=0;function on(t,e=tn){const n=[];let o;for(;o=en.exec(t);)n.push(o[1]);if(!n.length)return t;const r="suffix"+(16777216*Math.random()|Date.now()).toString(16);return n.forEach((n=>{const o="function"==typeof e?e(n):e+(nn++).toString(),i=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+i+')([")]|\\.[a-z])',"g"),"$1"+o+r+"$3")})),t=t.replace(new RegExp(r,"g"),"")}const Ee=Object.create(null);function rn(t,e){Ee[t]=e}function Ce(t){return Ee[t]||Ee[""]}function De(t){let e;if("string"==typeof t.resources)e=[t.resources];else if(e=t.resources,!(e instanceof Array&&e.length))return null;return{resources:e,path:t.path||"/",maxURL:t.maxURL||500,rotate:t.rotate||750,timeout:t.timeout||5e3,random:!0===t.random,index:t.index||0,dataAfterTimeout:!1!==t.dataAfterTimeout}}const $e=Object.create(null),ee=["https://api.simplesvg.com","https://api.unisvg.com"],fe=[];for(;ee.length>0;)1===ee.length||Math.random()>.5?fe.push(ee.shift()):fe.push(ee.pop());function sn(t,e){const n=De(e);return null!==n&&($e[t]=n,!0)}function Fe(t){return $e[t]}$e[""]=De({resources:["https://api.iconify.design"].concat(fe)});const cn=()=>{let t;try{if(t=fetch,"function"==typeof t)return t}catch{}};let Ye=cn();function ln(t,e){const n=Fe(t);if(!n)return 0;let o;if(n.maxURL){let t=0;n.resources.forEach((e=>{t=Math.max(t,e.length)}));const r=e+".json?icons=";o=n.maxURL-t-n.path.length-r.length}else o=0;return o}function an(t){return 404===t}const fn=(t,e,n)=>{const o=[],r=ln(t,e),i="icons";let s={type:i,provider:t,prefix:e,icons:[]},c=0;return n.forEach(((n,a)=>{c+=n.length+1,c>=r&&a>0&&(o.push(s),s={type:i,provider:t,prefix:e,icons:[]},c=n.length),s.icons.push(n)})),o.push(s),o};function un(t){if("string"==typeof t){const e=Fe(t);if(e)return e.path}return"/"}const dn=(t,e,n)=>{if(!Ye)return void n("abort",424);let o=un(e.provider);switch(e.type){case"icons":{const t=e.prefix,n=e.icons.join(",");o+=t+".json?"+new URLSearchParams({icons:n}).toString();break}case"custom":{const t=e.uri;o+="/"===t.slice(0,1)?t.slice(1):t;break}default:return void n("abort",400)}let r=503;Ye(t+o).then((t=>{const e=t.status;if(200===e)return r=501,t.json();setTimeout((()=>{n(an(e)?"abort":"next",e)}))})).then((t=>{"object"==typeof t&&null!==t?setTimeout((()=>{n("success",t)})):setTimeout((()=>{404===t?n("abort",t):n("next",r)}))})).catch((()=>{n("next",r)}))},hn={prepare:fn,send:dn};function pn(t){const e={loaded:[],missing:[],pending:[]},n=Object.create(null);t.sort(((t,e)=>t.provider!==e.provider?t.provider.localeCompare(e.provider):t.prefix!==e.prefix?t.prefix.localeCompare(e.prefix):t.name.localeCompare(e.name)));let o={provider:"",prefix:"",name:""};return t.forEach((t=>{if(o.name===t.name&&o.prefix===t.prefix&&o.provider===t.provider)return;o=t;const r=t.provider,i=t.prefix,s=t.name,c=n[r]||(n[r]=Object.create(null)),a=c[i]||(c[i]=R(r,i));let l;l=s in a.icons?e.loaded:""===i||a.missing.has(s)?e.missing:e.pending;const f={provider:r,prefix:i,name:s};l.push(f)})),e}function wt(t,e){t.forEach((t=>{const n=t.loaderCallbacks;n&&(t.loaderCallbacks=n.filter((t=>t.id!==e)))}))}function mn(t){t.pendingCallbacksFlag||(t.pendingCallbacksFlag=!0,setTimeout((()=>{t.pendingCallbacksFlag=!1;const e=t.loaderCallbacks?t.loaderCallbacks.slice(0):[];if(!e.length)return;let n=!1;const o=t.provider,r=t.prefix;e.forEach((e=>{const i=e.icons,s=i.pending.length;i.pending=i.pending.filter((e=>{if(e.prefix!==r)return!0;const s=e.name;if(t.icons[s])i.loaded.push({provider:o,prefix:r,name:s});else{if(!t.missing.has(s))return n=!0,!0;i.missing.push({provider:o,prefix:r,name:s})}return!1})),i.pending.length!==s&&(n||wt([t],e.id),e.callback(i.loaded.slice(0),i.missing.slice(0),i.pending.slice(0),e.abort))}))})))}let gn=0;function bn(t,e,n){const o=gn++,r=wt.bind(null,n,o);if(!e.pending.length)return r;const i={id:o,icons:e,callback:t,abort:r};return n.forEach((t=>{(t.loaderCallbacks||(t.loaderCallbacks=[])).push(i)})),r}function yn(t,e=!0,n=!1){const o=[];return t.forEach((t=>{const r="string"==typeof t?pe(t,e,n):t;r&&o.push(r)})),o}var wn={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function vn(t,e,n,o){const r=t.resources.length,i=t.random?Math.floor(Math.random()*r):t.index;let s;if(t.random){let e=t.resources.slice(0);for(s=[];e.length>1;){const t=Math.floor(Math.random()*e.length);s.push(e[t]),e=e.slice(0,t).concat(e.slice(t+1))}s=s.concat(e)}else s=t.resources.slice(i).concat(t.resources.slice(0,i));const c=Date.now();let a,l="pending",f=0,u=null,d=[],p=[];function h(){u&&(clearTimeout(u),u=null)}function g(){"pending"===l&&(l="aborted"),h(),d.forEach((t=>{"pending"===t.status&&(t.status="aborted")})),d=[]}function m(t,e){e&&(p=[]),"function"==typeof t&&p.push(t)}function b(){l="failed",p.forEach((t=>{t(void 0,a)}))}function y(){d.forEach((t=>{"pending"===t.status&&(t.status="aborted")})),d=[]}function x(){if("pending"!==l)return;h();const o=s.shift();if(void 0===o)return d.length?void(u=setTimeout((()=>{h(),"pending"===l&&(y(),b())}),t.timeout)):void b();const r={status:"pending",resource:o,callback:(e,n)=>{!function(e,n,o){const r="success"!==n;switch(d=d.filter((t=>t!==e)),l){case"pending":break;case"failed":if(r||!t.dataAfterTimeout)return;break;default:return}if("abort"===n)return a=o,void b();if(r)return a=o,void(d.length||(s.length?x():b()));if(h(),y(),!t.random){const n=t.resources.indexOf(e.resource);-1!==n&&n!==t.index&&(t.index=n)}l="completed",p.forEach((t=>{t(o)}))}(r,e,n)}};d.push(r),f++,u=setTimeout(x,t.rotate),n(o,e,r.callback)}return"function"==typeof o&&p.push(o),setTimeout(x),function(){return{startTime:c,payload:e,status:l,queriesSent:f,queriesPending:d.length,subscribe:m,abort:g}}}function vt(t){const e={...wn,...t};let n=[];function o(){n=n.filter((t=>"pending"===t().status))}return{query:function(t,r,i){const s=vn(e,t,r,((t,e)=>{o(),i&&i(t,e)}));return n.push(s),s},find:function(t){return n.find((e=>t(e)))||null},setIndex:t=>{e.index=t},getIndex:()=>e.index,cleanup:o}}function Ze(){}const Ie=Object.create(null);function xn(t){if(!Ie[t]){const e=Fe(t);if(!e)return;const n={config:e,redundancy:vt(e)};Ie[t]=n}return Ie[t]}function _n(t,e,n){let o,r;if("string"==typeof t){const e=Ce(t);if(!e)return n(void 0,424),Ze;r=e.send;const i=xn(t);i&&(o=i.redundancy)}else{const e=De(t);if(e){o=vt(e);const n=Ce(t.resources?t.resources[0]:"");n&&(r=n.send)}}return o&&r?o.query(e,r,n)().abort:(n(void 0,424),Ze)}const et="iconify2",oe="iconify",xt=oe+"-count",tt=oe+"-version",_t=36e5,kn=168,Sn=50;function Oe(t,e){try{return t.getItem(e)}catch{}}function Ae(t,e,n){try{return t.setItem(e,n),!0}catch{}}function nt(t,e){try{t.removeItem(e)}catch{}}function je(t,e){return Ae(t,xt,e.toString())}function Pe(t){return parseInt(Oe(t,xt))||0}const ge={local:!0,session:!0},kt={local:new Set,session:new Set};let Ne=!1;function In(t){Ne=t}let le=typeof window>"u"?{}:window;function St(t){const e=t+"Storage";try{if(le&&le[e]&&"number"==typeof le[e].length)return le[e]}catch{}ge[t]=!1}function It(t,e){const n=St(t);if(!n)return;const o=Oe(n,tt);if(o!==et){if(o){const t=Pe(n);for(let e=0;e{const o=oe+t.toString(),i=Oe(n,o);if("string"==typeof i){try{const n=JSON.parse(i);if("object"==typeof n&&"number"==typeof n.cached&&n.cached>r&&"string"==typeof n.provider&&"object"==typeof n.data&&"string"==typeof n.data.prefix&&e(n,t))return!0}catch{}nt(n,o)}};let s=Pe(n);for(let e=s-1;e>=0;e--)i(e)||(e===s-1?(s--,je(n,s)):kt[t].add(e))}function Tt(){if(!Ne){In(!0);for(const t in ge)It(t,(t=>{const e=t.data,n=R(t.provider,e.prefix);if(!Le(n,e).length)return!1;const o=e.lastModified||-1;return n.lastModifiedCached=n.lastModifiedCached?Math.min(n.lastModifiedCached,o):o,!0}))}}function Tn(t,e){const n=t.lastModifiedCached;if(n&&n>=e)return n===e;if(t.lastModifiedCached=e,n)for(const n in ge)It(n,(n=>{const o=n.data;return n.provider!==t.provider||o.prefix!==t.prefix||o.lastModified===e}));return!0}function En(t,e){function n(n){let o;if(!ge[n]||!(o=St(n)))return;const r=kt[n];let i;if(r.size)r.delete(i=Array.from(r).shift());else if(i=Pe(o),i>=50||!je(o,i+1))return;const s={cached:Math.floor(Date.now()/_t),provider:t.provider,data:e};return Ae(o,oe+i.toString(),JSON.stringify(s))}Ne||Tt(),e.lastModified&&!Tn(t,e.lastModified)||Object.keys(e.icons).length&&(e.not_found&&delete(e=Object.assign({},e)).not_found,n("local")||n("session"))}function ot(){}function Cn(t){t.iconsLoaderFlag||(t.iconsLoaderFlag=!0,setTimeout((()=>{t.iconsLoaderFlag=!1,mn(t)})))}function On(t,e){t.iconsToLoad?t.iconsToLoad=t.iconsToLoad.concat(e).sort():t.iconsToLoad=e,t.iconsQueueFlag||(t.iconsQueueFlag=!0,setTimeout((()=>{t.iconsQueueFlag=!1;const{provider:e,prefix:n}=t,o=t.iconsToLoad;let r;delete t.iconsToLoad,o&&(r=Ce(e))&&r.prepare(e,n,o).forEach((n=>{_n(e,n,(e=>{if("object"!=typeof e)n.icons.forEach((e=>{t.missing.add(e)}));else try{const n=Le(t,e);if(!n.length)return;const o=t.pendingIcons;o&&n.forEach((t=>{o.delete(t)})),En(t,e)}catch(t){console.error(t)}Cn(t)}))}))})))}const jn=(t,e)=>{const n=pn(yn(t,!0,gt()));if(!n.pending.length){let t=!0;return e&&setTimeout((()=>{t&&e(n.loaded,n.missing,n.pending,ot)})),()=>{t=!1}}const o=Object.create(null),r=[];let i,s;return n.pending.forEach((t=>{const{provider:e,prefix:n}=t;if(n===s&&e===i)return;i=e,s=n,r.push(R(e,n));const c=o[e]||(o[e]=Object.create(null));c[n]||(c[n]=[])})),n.pending.forEach((t=>{const{provider:e,prefix:n,name:r}=t,i=R(e,n),s=i.pendingIcons||(i.pendingIcons=new Set);s.has(r)||(s.add(r),o[e][n].push(r))})),r.forEach((t=>{const{provider:e,prefix:n}=t;o[e][n].length&&On(t,o[e][n])})),e?bn(e,n,r):ot};function Pn(t,e){const n={...t};for(const t in e){const o=e[t],r=typeof o;t in bt?(null===o||o&&("string"===r||"number"===r))&&(n[t]=o):r===typeof n[t]&&(n[t]="rotate"===t?o%4:o)}return n}const Mn=/[\s,]+/;function Ln(t,e){e.split(Mn).forEach((e=>{switch(e.trim()){case"horizontal":t.hFlip=!0;break;case"vertical":t.vFlip=!0}}))}function Dn(t,e=0){const n=t.replace(/^-?[0-9.]*/,"");function o(t){for(;t<0;)t+=4;return t%4}if(""===n){const e=parseInt(t);return isNaN(e)?0:o(e)}if(n!==t){let e=0;switch(n){case"%":e=25;break;case"deg":e=90}if(e){let r=parseFloat(t.slice(0,t.length-n.length));return isNaN(r)?0:(r/=e,r%1==0?o(r):0)}}return e}function $n(t,e){let n=-1===t.indexOf("xlink:")?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const t in e)n+=" "+t+'="'+e[t]+'"';return'"+t+""}function Fn(t){return t.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(//g,"%3E").replace(/\s+/g," ")}function An(t){return"data:image/svg+xml,"+Fn(t)}function Nn(t){return'url("'+An(t)+'")'}const rt={...yt,inline:!1},Vn={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},Bn={display:"inline-block"},Me={"background-color":"currentColor"},Et={"background-color":"transparent"},st={image:"var(--svg)",repeat:"no-repeat",size:"100% 100%"},it={"-webkit-mask":Me,mask:Me,background:Et};for(const t in it){const e=it[t];for(const n in st)e[t+"-"+n]=st[n]}function Rn(t){return t+(t.match(/^[-0-9.]+$/)?"px":"")}function Un(t,e){const n=Pn(rt,e),o=e.mode||"svg",r="svg"===o?{...Vn}:{};-1===t.body.indexOf("xlink:")&&delete r["xmlns:xlink"];let i="string"==typeof e.style?e.style:"";for(let t in e){const o=e[t];if(void 0!==o)switch(t){case"icon":case"style":case"onLoad":case"mode":break;case"inline":case"hFlip":case"vFlip":n[t]=!0===o||"true"===o||1===o;break;case"flip":"string"==typeof o&&Ln(n,o);break;case"color":i=i+(i.length>0&&";"!==i.trim().slice(-1)?";":"")+"color: "+o+"; ";break;case"rotate":"string"==typeof o?n[t]=Dn(o):"number"==typeof o&&(n[t]=o);break;case"ariaHidden":case"aria-hidden":!0!==o&&"true"!==o&&delete r["aria-hidden"];break;default:if("on:"===t.slice(0,3))break;void 0===rt[t]&&(r[t]=o)}}const s=Zt(t,n),c=s.attributes;if(n.inline&&(i="vertical-align: -0.125em; "+i),"svg"===o){Object.assign(r,c),""!==i&&(r.style=i);let t=0,n=e.id;return"string"==typeof n&&(n=n.replace(/-/g,"_")),{svg:!0,attributes:r,body:on(s.body,n?()=>n+"ID"+t++:"iconifySvelte")}}const{body:a,width:l,height:f}=t,u="mask"===o||"bg"!==o&&-1!==a.indexOf("currentColor"),d={"--svg":Nn($n(a,{...c,width:l+"",height:f+""}))},p=t=>{const e=c[t];e&&(d[t]=Rn(e))};p("width"),p("height"),Object.assign(d,Bn,u?Me:Et);let h="";for(const t in d)h+=t+": "+d[t]+";";return r.style=h+i,{svg:!1,attributes:r}}if(gt(!0),rn("",hn),typeof document<"u"&&typeof window<"u"){Tt();const t=window;if(void 0!==t.IconifyPreload){const e=t.IconifyPreload,n="Invalid IconifyPreload syntax.";"object"==typeof e&&null!==e&&(e instanceof Array?e:[e]).forEach((t=>{try{("object"!=typeof t||null===t||t instanceof Array||"object"!=typeof t.icons||"string"!=typeof t.prefix||!Qt(t))&&console.error(n)}catch{console.error(n)}}))}if(void 0!==t.IconifyProviders){const e=t.IconifyProviders;if("object"==typeof e&&null!==e)for(let t in e){const n="IconifyProviders["+t+"] is invalid.";try{const o=e[t];if("object"!=typeof o||!o||void 0===o.resources)continue;sn(t,o)||console.error(n)}catch{console.error(n)}}}}function qn(t,e,n,o,r){function i(){e.loading&&(e.loading.abort(),e.loading=null)}if("object"==typeof t&&null!==t&&"string"==typeof t.body)return e.name="",i(),{data:{...me,...t}};let s;if("string"!=typeof t||null===(s=pe(t,!1,!0)))return i(),null;const c=zt(s);if(!c)return n&&(!e.loading||e.loading.name!==t)&&(i(),e.name="",e.loading={name:t,abort:jn([s],o)}),null;i(),e.name!==t&&(e.name=t,r&&!e.destroyed&&r(t));const a=["iconify"];return""!==s.prefix&&a.push("iconify--"+s.prefix),""!==s.provider&&a.push("iconify--"+s.provider),{data:c,classes:a}}function zn(t,e){return t?Un({...me,...t},e):null}function ct(t){let e;function n(t,e){return t[0].svg?Qn:Hn}let o=n(t),r=o(t);return{c(){r.c(),e=ue()},l(t){r.l(t),e=ue()},m(t,n){r.m(t,n),re(t,e,n)},p(t,i){o===(o=n(t))&&r?r.p(t,i):(r.d(1),r=o(t),r&&(r.c(),r.m(e.parentNode,e)))},d(t){t&&S(e),r.d(t)}}}function Hn(t){let e,n=[t[0].attributes],o={};for(let t=0;t{"function"==typeof e.onLoad&&e.onLoad(t),Lt()("load",{icon:t})};function a(){n(3,s++,s)}return ut((()=>{n(2,i=!0)})),Ct((()=>{n(1,o.destroyed=!0,o),o.loading&&(o.loading.abort(),n(1,o.loading=null,o))})),t.$$set=t=>{n(6,e=de(de({},e),Qe(t)))},t.$$.update=()=>{{const t=qn(e.icon,o,i,a,c);n(0,r=t?zn(t.data,e):null),r&&t.classes&&n(0,r.attributes.class=("string"==typeof e.class?e.class+" ":"")+t.classes.join(" "),r)}},e=Qe(e),[r,o,i,s]}class X extends lt{constructor(t){super(),at(this,t,Kn,Gn,ft,{})}}function Jn(t){let e,n,o,r,i,s,c,a,l,f,u,d,p,h,g,m,b,y,v,w,k,$,E,T,F,C,D,R,P,_,U=ve(ke.lightMode)+"",q=ve(ke.darkMode)+"",V=ve(ke.systemMode)+"";return r=new X({props:{icon:"material-symbols:wb-sunny-outline-rounded",class:"text-[1.25rem]"}}),c=new X({props:{icon:"material-symbols:dark-mode-outline-rounded",class:"text-[1.25rem]"}}),f=new X({props:{icon:"material-symbols:radio-button-partial-outline",class:"text-[1.25rem]"}}),g=new X({props:{icon:"material-symbols:wb-sunny-outline-rounded",class:"text-[1.25rem] mr-3"}}),w=new X({props:{icon:"material-symbols:dark-mode-outline-rounded",class:"text-[1.25rem] mr-3"}}),F=new X({props:{icon:"material-symbols:radio-button-partial-outline",class:"text-[1.25rem] mr-3"}}),{c(){e=M("div"),n=M("button"),o=M("div"),z(r.$$.fragment),i=A(),s=M("div"),z(c.$$.fragment),a=A(),l=M("div"),z(f.$$.fragment),u=A(),d=M("div"),p=M("div"),h=M("button"),z(g.$$.fragment),m=A(),b=xe(U),y=A(),v=M("button"),z(w.$$.fragment),k=A(),$=xe(q),E=A(),T=M("button"),z(F.$$.fragment),C=A(),D=xe(V),this.h()},l(t){e=L(t,"DIV",{class:!0,role:!0,tabindex:!0});var x=j(e);n=L(x,"BUTTON",{"aria-label":!0,role:!0,class:!0,id:!0});var O=j(n);o=L(O,"DIV",{class:!0});var I=j(o);H(r.$$.fragment,I),I.forEach(S),i=N(O),s=L(O,"DIV",{class:!0});var M=j(s);H(c.$$.fragment,M),M.forEach(S),a=N(O),l=L(O,"DIV",{class:!0});var A=j(l);H(f.$$.fragment,A),A.forEach(S),O.forEach(S),u=N(x),d=L(x,"DIV",{id:!0,class:!0});var z=j(d);p=L(z,"DIV",{class:!0});var R=j(p);h=L(R,"BUTTON",{class:!0});var B=j(h);H(g.$$.fragment,B),m=N(B),b=_e(B,U),B.forEach(S),y=N(R),v=L(R,"BUTTON",{class:!0});var P=j(v);H(w.$$.fragment,P),k=N(P),$=_e(P,q),P.forEach(S),E=N(R),T=L(R,"BUTTON",{class:!0});var Q=j(T);H(F.$$.fragment,Q),C=N(Q),D=_e(Q,V),Q.forEach(S),R.forEach(S),z.forEach(S),x.forEach(S),this.h()},h(){I(o,"class","absolute"),O(o,"opacity-0",t[0]!==Y),I(s,"class","absolute"),O(s,"opacity-0",t[0]!==Z),I(l,"class","absolute"),O(l,"opacity-0",t[0]!==B),I(n,"aria-label","Light/Dark Mode"),I(n,"role","menuitem"),I(n,"class","relative btn-plain scale-animation rounded-lg h-11 w-11 active:scale-90"),I(n,"id","scheme-switch"),I(h,"class","flex transition whitespace-nowrap items-center justify-start w-full btn-plain scale-animation rounded-lg h-9 px-3 font-medium active:scale-95 mb-0.5"),O(h,"current-theme-btn",t[0]===Y),I(v,"class","flex transition whitespace-nowrap items-center justify-start w-full btn-plain scale-animation rounded-lg h-9 px-3 font-medium active:scale-95 mb-0.5"),O(v,"current-theme-btn",t[0]===Z),I(T,"class","flex transition whitespace-nowrap items-center justify-start w-full btn-plain scale-animation rounded-lg h-9 px-3 font-medium active:scale-95"),O(T,"current-theme-btn",t[0]===B),I(p,"class","card-base float-panel p-2"),I(d,"id","light-dark-panel"),I(d,"class","hidden lg:block absolute transition float-panel-closed top-11 -right-2 pt-5"),I(e,"class","relative z-50"),I(e,"role","menu"),I(e,"tabindex","-1")},m(j,O){re(j,e,O),x(e,n),x(n,o),Q(r,o,null),x(n,i),x(n,s),Q(c,s,null),x(n,a),x(n,l),Q(f,l,null),x(e,u),x(e,d),x(d,p),x(p,h),Q(g,h,null),x(h,m),x(h,b),x(p,y),x(p,v),Q(w,v,null),x(v,k),x(v,$),x(p,E),x(p,T),Q(F,T,null),x(T,C),x(T,D),R=!0,P||(_=[G(n,"click",t[2]),G(n,"mouseenter",Wn),G(h,"click",t[3]),G(v,"click",t[4]),G(T,"click",t[5]),G(e,"mouseleave",Xn)],P=!0)},p(t,[e]){(!R||1&e)&&O(o,"opacity-0",t[0]!==Y),(!R||1&e)&&O(s,"opacity-0",t[0]!==Z),(!R||1&e)&&O(l,"opacity-0",t[0]!==B),(!R||1&e)&&O(h,"current-theme-btn",t[0]===Y),(!R||1&e)&&O(v,"current-theme-btn",t[0]===Z),(!R||1&e)&&O(T,"current-theme-btn",t[0]===B)},i(t){R||(K(r.$$.fragment,t),K(c.$$.fragment,t),K(f.$$.fragment,t),K(g.$$.fragment,t),K(w.$$.fragment,t),K(F.$$.fragment,t),R=!0)},o(t){J(r.$$.fragment,t),J(c.$$.fragment,t),J(f.$$.fragment,t),J(g.$$.fragment,t),J(w.$$.fragment,t),J(F.$$.fragment,t),R=!1},d(t){t&&S(e),W(r),W(c),W(f),W(g),W(w),W(F),P=!1,Dt(_)}}}function Wn(){document.querySelector("#light-dark-panel").classList.remove("float-panel-closed")}function Xn(){document.querySelector("#light-dark-panel").classList.add("float-panel-closed")}function Yn(t,e,n){const o=[Y,Z,B];let r=B;function i(t){n(0,r=t),Ft(t)}return ut((()=>{n(0,r=$t());const t=window.matchMedia("(prefers-color-scheme: dark)"),e=t=>{At(r)};return t.addEventListener("change",e),()=>{t.removeEventListener("change",e)}})),[r,i,function(){let t=0;for(;ti(Y),()=>i(Z),()=>i(B)]}class no extends lt{constructor(t){super(),at(this,t,Yn,Jn,ft,{})}}export{no as default}; \ No newline at end of file diff --git a/_astro/Search.JTX3m-oN.js b/_astro/Search.D6oEhrle.js similarity index 97% rename from _astro/Search.JTX3m-oN.js rename to _astro/Search.D6oEhrle.js index 9d1b9629b..0d0eadfaa 100644 --- a/_astro/Search.JTX3m-oN.js +++ b/_astro/Search.D6oEhrle.js @@ -1 +1 @@ -import{S as te,i as le,s as ae,c as j,e as S,b as H,d as B,f as U,h as N,j as I,k as p,a as se,n as q,o as E,p as F,q as M,u as z,r as K,v as O,x as P,B as ne,y as A,C as re,z as ie,D as oe,t as ce,H as ue,g as he,E as fe,w as _e,F as de}from"./translation.BexmyzJD.js";import{u as Y}from"./url-utils.D8gvTd-e.js";import{I as pe}from"./zh_TW.yAw_u0Pg.js";function G(e){return void 0!==e?.length?e:Array.from(e)}function J(e,t,a){const l=e.slice();return l[11]=t[a],l}const me=e=>({}),Q=e=>({}),ge=e=>({}),X=e=>({}),ve=e=>({}),Z=e=>({}),be=e=>({}),$=e=>({});function x(e){let t,a,l,s,r,n,i,c,o,h=e[11].meta.title+"",d=e[11].excerpt+"";const u=e[6]["arrow-icon"],f=j(u,e,e[5],Q);return{c(){t=S("a"),a=S("div"),l=ce(h),f&&f.c(),s=H(),r=S("div"),n=new ue(!1),i=H(),this.h()},l(e){t=B(e,"A",{href:!0,class:!0});var c=U(t);a=B(c,"DIV",{class:!0});var o=U(a);l=he(o,h),f&&f.l(o),o.forEach(I),s=N(c),r=B(c,"DIV",{class:!0});var d=U(r);n=fe(d,!1),d.forEach(I),i=N(c),c.forEach(I),this.h()},h(){p(a,"class","transition text-90 inline-flex font-bold group-hover:text-[var(--primary)]"),n.a=null,p(r,"class","transition text-sm text-50"),p(t,"href",c=e[11].url),p(t,"class","transition first-of-type:mt-2 lg:first-of-type:mt-0 group block rounded-xl text-lg px-3 py-2 hover:bg-[var(--btn-plain-bg-hover)] active:bg-[var(--btn-plain-bg-active)]")},m(e,c){q(e,t,c),E(t,a),E(a,l),f&&f.m(a,null),E(t,s),E(t,r),n.m(d,r),E(t,i),o=!0},p(e,a){(!o||8&a)&&h!==(h=e[11].meta.title+"")&&_e(l,h),f&&f.p&&(!o||32&a)&&z(f,u,e,e[5],o?O(u,e[5],a,me):K(e[5]),Q),(!o||8&a)&&d!==(d=e[11].excerpt+"")&&n.p(d),(!o||8&a&&c!==(c=e[11].url))&&p(t,"href",c)},i(e){o||(P(f,e),o=!0)},o(e){A(f,e),o=!1},d(e){e&&I(t),f&&f.d(e)}}}function we(e){let t,a,l,s,r,n,i,c,o,h,d,u,f,g;const b=e[6]["search-icon"],v=j(b,e,e[5],$),m=e[6]["search-switch"],w=j(m,e,e[5],Z),k=e[6]["search-icon"],y=j(k,e,e[5],X);let D=G(e[3]),T=[];for(let t=0;tA(T[e],1,1,(()=>{T[e]=null}));return{c(){t=S("div"),v&&v.c(),a=H(),l=S("input"),s=H(),r=S("button"),w&&w.c(),n=H(),i=S("div"),c=S("div"),y&&y.c(),o=H(),h=S("input"),d=H();for(let e=0;e{};oe((()=>{a(2,c=async(e,t)=>{let l=document.getElementById("search-panel");if(!l)return;if(!e&&t)return void l.classList.add("float-panel-closed");let s=[];{const t=await pagefind.search(e);for(const e of t.results)s.push(await e.data())}s.length||!t?(t&&l.classList.remove("float-panel-closed"),a(3,i=s)):l.classList.add("float-panel-closed")})}));return e.$$set=e=>{"$$scope"in e&&a(5,s=e.$$scope)},e.$$.update=()=>{5&e.$$.dirty&&c(r,!0),6&e.$$.dirty&&c(n,!1)},[r,n,c,i,()=>{document.getElementById("search-panel")?.classList.toggle("float-panel-closed")},s,l,function(){r=this.value,a(0,r)},()=>c(r,!0),function(){n=this.value,a(1,n)}]}class Se extends te{constructor(e){super(),le(this,e,ke,we,ae,{})}}export{Se as default}; \ No newline at end of file +import{S as te,i as le,s as ae,c as j,e as S,b as H,d as B,f as U,h as N,j as I,k as p,a as se,n as q,o as E,p as F,q as M,u as z,r as K,v as O,x as P,B as ne,y as A,C as re,z as ie,D as oe,t as ce,H as ue,g as he,E as fe,w as _e,F as de}from"./translation.BIr-2hnc.js";import{u as Y}from"./url-utils.CenNji6B.js";import{I as pe}from"./zh_TW.CdORO3r2.js";function G(e){return void 0!==e?.length?e:Array.from(e)}function J(e,t,a){const l=e.slice();return l[11]=t[a],l}const me=e=>({}),Q=e=>({}),ge=e=>({}),X=e=>({}),ve=e=>({}),Z=e=>({}),be=e=>({}),$=e=>({});function x(e){let t,a,l,s,r,n,i,c,o,h=e[11].meta.title+"",d=e[11].excerpt+"";const u=e[6]["arrow-icon"],f=j(u,e,e[5],Q);return{c(){t=S("a"),a=S("div"),l=ce(h),f&&f.c(),s=H(),r=S("div"),n=new ue(!1),i=H(),this.h()},l(e){t=B(e,"A",{href:!0,class:!0});var c=U(t);a=B(c,"DIV",{class:!0});var o=U(a);l=he(o,h),f&&f.l(o),o.forEach(I),s=N(c),r=B(c,"DIV",{class:!0});var d=U(r);n=fe(d,!1),d.forEach(I),i=N(c),c.forEach(I),this.h()},h(){p(a,"class","transition text-90 inline-flex font-bold group-hover:text-[var(--primary)]"),n.a=null,p(r,"class","transition text-sm text-50"),p(t,"href",c=e[11].url),p(t,"class","transition first-of-type:mt-2 lg:first-of-type:mt-0 group block rounded-xl text-lg px-3 py-2 hover:bg-[var(--btn-plain-bg-hover)] active:bg-[var(--btn-plain-bg-active)]")},m(e,c){q(e,t,c),E(t,a),E(a,l),f&&f.m(a,null),E(t,s),E(t,r),n.m(d,r),E(t,i),o=!0},p(e,a){(!o||8&a)&&h!==(h=e[11].meta.title+"")&&_e(l,h),f&&f.p&&(!o||32&a)&&z(f,u,e,e[5],o?O(u,e[5],a,me):K(e[5]),Q),(!o||8&a)&&d!==(d=e[11].excerpt+"")&&n.p(d),(!o||8&a&&c!==(c=e[11].url))&&p(t,"href",c)},i(e){o||(P(f,e),o=!0)},o(e){A(f,e),o=!1},d(e){e&&I(t),f&&f.d(e)}}}function we(e){let t,a,l,s,r,n,i,c,o,h,d,u,f,g;const b=e[6]["search-icon"],v=j(b,e,e[5],$),m=e[6]["search-switch"],w=j(m,e,e[5],Z),k=e[6]["search-icon"],y=j(k,e,e[5],X);let D=G(e[3]),T=[];for(let t=0;tA(T[e],1,1,(()=>{T[e]=null}));return{c(){t=S("div"),v&&v.c(),a=H(),l=S("input"),s=H(),r=S("button"),w&&w.c(),n=H(),i=S("div"),c=S("div"),y&&y.c(),o=H(),h=S("input"),d=H();for(let e=0;e{};oe((()=>{a(2,c=async(e,t)=>{let l=document.getElementById("search-panel");if(!l)return;if(!e&&t)return void l.classList.add("float-panel-closed");let s=[];{const t=await pagefind.search(e);for(const e of t.results)s.push(await e.data())}s.length||!t?(t&&l.classList.remove("float-panel-closed"),a(3,i=s)):l.classList.add("float-panel-closed")})}));return e.$$set=e=>{"$$scope"in e&&a(5,s=e.$$scope)},e.$$.update=()=>{5&e.$$.dirty&&c(r,!0),6&e.$$.dirty&&c(n,!1)},[r,n,c,i,()=>{document.getElementById("search-panel")?.classList.toggle("float-panel-closed")},s,l,function(){r=this.value,a(0,r)},()=>c(r,!0),function(){n=this.value,a(1,n)}]}class Se extends te{constructor(e){super(),le(this,e,ke,we,ae,{})}}export{Se as default}; \ No newline at end of file diff --git a/_astro/hoisted.C5nAynCN.js b/_astro/hoisted.5xhkXDe0.js similarity index 96% rename from _astro/hoisted.C5nAynCN.js rename to _astro/hoisted.5xhkXDe0.js index d7baaf4b3..4603936e1 100644 --- a/_astro/hoisted.C5nAynCN.js +++ b/_astro/hoisted.5xhkXDe0.js @@ -1 +1 @@ -import{_ as to}from"./preload-helper.CLcXU_4U.js";import{B as eo,b as so,c as no,s as oo,g as io,e as Ge,P as co,M as ro,f as lo}from"./setting-utils.9Prgb40w.js";import{p as ao,u as ho}from"./url-utils.D8gvTd-e.js";import"./zh_TW.yAw_u0Pg.js";const Ke=new MutationObserver(en);function en(){Ke.disconnect();let t=Array.from(document.querySelectorAll("pre"));for(let e of t){if("DIV"===e.parentElement?.nodeName&&e.parentElement?.classList.contains("code-block"))continue;let t=document.createElement("div");t.className="relative code-block";let n=document.createElement("button");n.className="copy-btn btn-regular-dark absolute active:scale-90 h-8 w-8 top-2 right-2 opacity-75 text-sm p-1.5 rounded-lg transition-all ease-in-out",e.setAttribute("tabindex","0"),e.parentNode&&e.parentNode.insertBefore(t,e);let s,i='',o='';n.innerHTML=`
${i} ${o}
\n `,t.appendChild(e),t.appendChild(n),n.addEventListener("click",(async()=>{s&&clearTimeout(s);let t=e?.querySelector("code")?.innerText;void 0!==t&&(await navigator.clipboard.writeText(t),n.classList.add("success"),s=setTimeout((()=>{n.classList.remove("success")}),1e3))}))}Ke.observe(document.body,{childList:!0,subtree:!0})}function Jt(t,e,n){const s=document.createElement(e);return t&&(s.className=t),n&&n.appendChild(s),s}function uo(t,e,n){let s=`translate3d(${t}px,0px,0)`;return void 0!==n&&(s+=` scale3d(${n},${n},1)`),s}function Xe(t,e,n){t.style.width="number"==typeof e?`${e}px`:e,t.style.height="number"==typeof n?`${n}px`:n}Ke.observe(document.body,{childList:!0,subtree:!0}),document.addEventListener("DOMContentLoaded",en);const vt={IDLE:"idle",LOADING:"loading",LOADED:"loaded",ERROR:"error"};function po(t){return"button"in t&&1===t.button||t.ctrlKey||t.metaKey||t.altKey||t.shiftKey}function Qt(t,e,n=document){let s=[];if(t instanceof Element)s=[t];else if(t instanceof NodeList||Array.isArray(t))s=Array.from(t);else{const i="string"==typeof t?t:e;i&&(s=Array.from(n.querySelectorAll(i)))}return s}function fo(t){return"function"==typeof t&&t.prototype&&t.prototype.goTo}function $s(){return!(!navigator.vendor||!navigator.vendor.match(/apple/i))}class mo{constructor(t,e){this.type=t,this.defaultPrevented=!1,e&&Object.assign(this,e)}preventDefault(){this.defaultPrevented=!0}}class go{constructor(){this._listeners={},this._filters={},this.pswp=void 0,this.options=void 0}addFilter(t,e,n=100){var s,i,o;this._filters[t]||(this._filters[t]=[]),null===(s=this._filters[t])||void 0===s||s.push({fn:e,priority:n}),null===(i=this._filters[t])||void 0===i||i.sort(((t,e)=>t.priority-e.priority)),null===(o=this.pswp)||void 0===o||o.addFilter(t,e,n)}removeFilter(t,e){this._filters[t]&&(this._filters[t]=this._filters[t].filter((t=>t.fn!==e))),this.pswp&&this.pswp.removeFilter(t,e)}applyFilters(t,...e){var n;return null===(n=this._filters[t])||void 0===n||n.forEach((t=>{e[0]=t.fn.apply(this,e)})),e[0]}on(t,e){var n,s;this._listeners[t]||(this._listeners[t]=[]),null===(n=this._listeners[t])||void 0===n||n.push(e),null===(s=this.pswp)||void 0===s||s.on(t,e)}off(t,e){var n;this._listeners[t]&&(this._listeners[t]=this._listeners[t].filter((t=>e!==t))),null===(n=this.pswp)||void 0===n||n.off(t,e)}dispatch(t,e){var n;if(this.pswp)return this.pswp.dispatch(t,e);const s=new mo(t,e);return null===(n=this._listeners[t])||void 0===n||n.forEach((t=>{t.call(this,s)})),s}}class yo{constructor(t,e){if(this.element=Jt("pswp__img pswp__img--placeholder",t?"img":"div",e),t){const e=this.element;e.decoding="async",e.alt="",e.src=t,e.setAttribute("role","presentation")}this.element.setAttribute("aria-hidden","true")}setDisplayedSize(t,e){this.element&&("IMG"===this.element.tagName?(Xe(this.element,250,"auto"),this.element.style.transformOrigin="0 0",this.element.style.transform=uo(0,0,t/250)):Xe(this.element,t,e))}destroy(){var t;null!==(t=this.element)&&void 0!==t&&t.parentNode&&this.element.remove(),this.element=null}}class vo{constructor(t,e,n){this.instance=e,this.data=t,this.index=n,this.element=void 0,this.placeholder=void 0,this.slide=void 0,this.displayedImageWidth=0,this.displayedImageHeight=0,this.width=Number(this.data.w)||Number(this.data.width)||0,this.height=Number(this.data.h)||Number(this.data.height)||0,this.isAttached=!1,this.hasSlide=!1,this.isDecoding=!1,this.state=vt.IDLE,this.data.type?this.type=this.data.type:this.data.src?this.type="image":this.type="html",this.instance.dispatch("contentInit",{content:this})}removePlaceholder(){this.placeholder&&!this.keepPlaceholder()&&setTimeout((()=>{this.placeholder&&(this.placeholder.destroy(),this.placeholder=void 0)}),1e3)}load(t,e){if(this.slide&&this.usePlaceholder())if(this.placeholder){const t=this.placeholder.element;t&&!t.parentElement&&this.slide.container.prepend(t)}else{const t=this.instance.applyFilters("placeholderSrc",!(!this.data.msrc||!this.slide.isFirstSlide)&&this.data.msrc,this);this.placeholder=new yo(t,this.slide.container)}this.element&&!e||this.instance.dispatch("contentLoad",{content:this,isLazy:t}).defaultPrevented||(this.isImageContent()?(this.element=Jt("pswp__img","img"),this.displayedImageWidth&&this.loadImage(t)):(this.element=Jt("pswp__content","div"),this.element.innerHTML=this.data.html||""),e&&this.slide&&this.slide.updateContentSize(!0))}loadImage(t){var e,n;if(!this.isImageContent()||!this.element||this.instance.dispatch("contentLoadImage",{content:this,isLazy:t}).defaultPrevented)return;const s=this.element;this.updateSrcsetSizes(),this.data.srcset&&(s.srcset=this.data.srcset),s.src=null!==(e=this.data.src)&&void 0!==e?e:"",s.alt=null!==(n=this.data.alt)&&void 0!==n?n:"",this.state=vt.LOADING,s.complete?this.onLoaded():(s.onload=()=>{this.onLoaded()},s.onerror=()=>{this.onError()})}setSlide(t){this.slide=t,this.hasSlide=!0,this.instance=t.pswp}onLoaded(){this.state=vt.LOADED,this.slide&&this.element&&(this.instance.dispatch("loadComplete",{slide:this.slide,content:this}),this.slide.isActive&&this.slide.heavyAppended&&!this.element.parentNode&&(this.append(),this.slide.updateContentSize(!0)),(this.state===vt.LOADED||this.state===vt.ERROR)&&this.removePlaceholder())}onError(){this.state=vt.ERROR,this.slide&&(this.displayError(),this.instance.dispatch("loadComplete",{slide:this.slide,isError:!0,content:this}),this.instance.dispatch("loadError",{slide:this.slide,content:this}))}isLoading(){return this.instance.applyFilters("isContentLoading",this.state===vt.LOADING,this)}isError(){return this.state===vt.ERROR}isImageContent(){return"image"===this.type}setDisplayedSize(t,e){if(this.element&&(this.placeholder&&this.placeholder.setDisplayedSize(t,e),!this.instance.dispatch("contentResize",{content:this,width:t,height:e}).defaultPrevented&&(Xe(this.element,t,e),this.isImageContent()&&!this.isError()))){const n=!this.displayedImageWidth&&t;this.displayedImageWidth=t,this.displayedImageHeight=e,n?this.loadImage(!1):this.updateSrcsetSizes(),this.slide&&this.instance.dispatch("imageSizeChange",{slide:this.slide,width:t,height:e,content:this})}}isZoomable(){return this.instance.applyFilters("isContentZoomable",this.isImageContent()&&this.state!==vt.ERROR,this)}updateSrcsetSizes(){if(!this.isImageContent()||!this.element||!this.data.srcset)return;const t=this.element,e=this.instance.applyFilters("srcsetSizesWidth",this.displayedImageWidth,this);(!t.dataset.largestUsedSize||e>parseInt(t.dataset.largestUsedSize,10))&&(t.sizes=e+"px",t.dataset.largestUsedSize=String(e))}usePlaceholder(){return this.instance.applyFilters("useContentPlaceholder",this.isImageContent(),this)}lazyLoad(){this.instance.dispatch("contentLazyLoad",{content:this}).defaultPrevented||this.load(!0)}keepPlaceholder(){return this.instance.applyFilters("isKeepingPlaceholder",this.isLoading(),this)}destroy(){this.hasSlide=!1,this.slide=void 0,!this.instance.dispatch("contentDestroy",{content:this}).defaultPrevented&&(this.remove(),this.placeholder&&(this.placeholder.destroy(),this.placeholder=void 0),this.isImageContent()&&this.element&&(this.element.onload=null,this.element.onerror=null,this.element=void 0))}displayError(){if(this.slide){var t,e;let n=Jt("pswp__error-msg","div");n.innerText=null!==(t=null===(e=this.instance.options)||void 0===e?void 0:e.errorMsg)&&void 0!==t?t:"",n=this.instance.applyFilters("contentErrorElement",n,this),this.element=Jt("pswp__content pswp__error-msg-container","div"),this.element.appendChild(n),this.slide.container.innerText="",this.slide.container.appendChild(this.element),this.slide.updateContentSize(!0),this.removePlaceholder()}}append(){if(this.isAttached||!this.element)return;if(this.isAttached=!0,this.state===vt.ERROR)return void this.displayError();if(this.instance.dispatch("contentAppend",{content:this}).defaultPrevented)return;const t="decode"in this.element;this.isImageContent()?t&&this.slide&&(!this.slide.isActive||$s())?(this.isDecoding=!0,this.element.decode().catch((()=>{})).finally((()=>{this.isDecoding=!1,this.appendImage()}))):this.appendImage():this.slide&&!this.element.parentNode&&this.slide.container.appendChild(this.element)}activate(){this.instance.dispatch("contentActivate",{content:this}).defaultPrevented||!this.slide||(this.isImageContent()&&this.isDecoding&&!$s()?this.appendImage():this.isError()&&this.load(!1,!0),this.slide.holderElement&&this.slide.holderElement.setAttribute("aria-hidden","false"))}deactivate(){this.instance.dispatch("contentDeactivate",{content:this}),this.slide&&this.slide.holderElement&&this.slide.holderElement.setAttribute("aria-hidden","true")}remove(){this.isAttached=!1,!this.instance.dispatch("contentRemove",{content:this}).defaultPrevented&&(this.element&&this.element.parentNode&&this.element.remove(),this.placeholder&&this.placeholder.element&&this.placeholder.element.remove())}appendImage(){this.isAttached&&(this.instance.dispatch("contentAppendImage",{content:this}).defaultPrevented||(this.slide&&this.element&&!this.element.parentNode&&this.slide.container.appendChild(this.element),(this.state===vt.LOADED||this.state===vt.ERROR)&&this.removePlaceholder()))}}function wo(t,e){if(t.getViewportSizeFn){const n=t.getViewportSizeFn(t,e);if(n)return n}return{x:document.documentElement.clientWidth,y:window.innerHeight}}function fe(t,e,n,s,i){let o=0;if(e.paddingFn)o=e.paddingFn(n,s,i)[t];else if(e.padding)o=e.padding[t];else{const n="padding"+t[0].toUpperCase()+t.slice(1);e[n]&&(o=e[n])}return Number(o)||0}function bo(t,e,n,s){return{x:e.x-fe("left",t,e,n,s)-fe("right",t,e,n,s),y:e.y-fe("top",t,e,n,s)-fe("bottom",t,e,n,s)}}const Ds=4e3;class So{constructor(t,e,n,s){this.pswp=s,this.options=t,this.itemData=e,this.index=n,this.panAreaSize=null,this.elementSize=null,this.fit=1,this.fill=1,this.vFill=1,this.initial=1,this.secondary=1,this.max=1,this.min=1}update(t,e,n){const s={x:t,y:e};this.elementSize=s,this.panAreaSize=n;const i=n.x/s.x,o=n.y/s.y;this.fit=Math.min(1,io?i:o),this.vFill=Math.min(1,o),this.initial=this._getInitial(),this.secondary=this._getSecondary(),this.max=Math.max(this.initial,this.secondary,this._getMax()),this.min=Math.min(this.fit,this.initial,this.secondary),this.pswp&&this.pswp.dispatch("zoomLevelsUpdate",{zoomLevels:this,slideData:this.itemData})}_parseZoomLevelOption(t){const e=t+"ZoomLevel",n=this.options[e];if(n)return"function"==typeof n?n(this):"fill"===n?this.fill:"fit"===n?this.fit:Number(n)}_getSecondary(){let t=this._parseZoomLevelOption("secondary");return t||(t=Math.min(1,3*this.fit),this.elementSize&&t*this.elementSize.x>Ds&&(t=Ds/this.elementSize.x),t)}_getInitial(){return this._parseZoomLevelOption("initial")||this.fit}_getMax(){return this._parseZoomLevelOption("max")||Math.max(1,4*this.fit)}}function sn(t,e,n){const s=e.createContentFromData(t,n);let i;const{options:o}=e;if(o){let r;i=new So(o,t,-1),r=e.pswp?e.pswp.viewportSize:wo(o,e);const l=bo(o,r,t,n);i.update(s.width,s.height,l)}return s.lazyLoad(),i&&s.setDisplayedSize(Math.ceil(s.width*i.initial),Math.ceil(s.height*i.initial)),s}function Eo(t,e){const n=e.getItemData(t);if(!e.dispatch("lazyLoadSlide",{index:t,itemData:n}).defaultPrevented)return sn(n,e,t)}class xo extends go{getNumItems(){var t;let e=0;const n=null===(t=this.options)||void 0===t?void 0:t.dataSource;n&&"length"in n?e=n.length:n&&"gallery"in n&&(n.items||(n.items=this._getGalleryDOMElements(n.gallery)),n.items&&(e=n.items.length));const s=this.dispatch("numItems",{dataSource:n,numItems:e});return this.applyFilters("numItems",s.numItems,n)}createContentFromData(t,e){return new vo(t,this,e)}getItemData(t){var e;const n=null===(e=this.options)||void 0===e?void 0:e.dataSource;let s={};Array.isArray(n)?s=n[t]:n&&"gallery"in n&&(n.items||(n.items=this._getGalleryDOMElements(n.gallery)),s=n.items[t]);let i=s;i instanceof Element&&(i=this._domElementToItemData(i));const o=this.dispatch("itemData",{itemData:i||{},index:t});return this.applyFilters("itemData",o.itemData,t)}_getGalleryDOMElements(t){var e,n;return null!==(e=this.options)&&void 0!==e&&e.children||null!==(n=this.options)&&void 0!==n&&n.childSelector?Qt(this.options.children,this.options.childSelector,t)||[]:[t]}_domElementToItemData(t){const e={element:t},n="A"===t.tagName?t:t.querySelector("a");if(n){e.src=n.dataset.pswpSrc||n.href,n.dataset.pswpSrcset&&(e.srcset=n.dataset.pswpSrcset),e.width=n.dataset.pswpWidth?parseInt(n.dataset.pswpWidth,10):0,e.height=n.dataset.pswpHeight?parseInt(n.dataset.pswpHeight,10):0,e.w=e.width,e.h=e.height,n.dataset.pswpType&&(e.type=n.dataset.pswpType);const i=t.querySelector("img");var s;if(i)e.msrc=i.currentSrc||i.src,e.alt=null!==(s=i.getAttribute("alt"))&&void 0!==s?s:"";(n.dataset.pswpCropped||n.dataset.cropped)&&(e.thumbCropped=!0)}return this.applyFilters("domItemData",e,t,n)}lazyLoadData(t,e){return sn(t,this,e)}}class _o extends xo{constructor(t){super(),this.options=t||{},this._uid=0,this.shouldOpen=!1,this._preloadedContent=void 0,this.onThumbnailsClick=this.onThumbnailsClick.bind(this)}init(){Qt(this.options.gallery,this.options.gallerySelector).forEach((t=>{t.addEventListener("click",this.onThumbnailsClick,!1)}))}onThumbnailsClick(t){if(po(t)||window.pswp)return;let e={x:t.clientX,y:t.clientY};!e.x&&!e.y&&(e=null);let n=this.getClickedIndex(t);n=this.applyFilters("clickedIndex",n,t,this);const s={gallery:t.currentTarget};n>=0&&(t.preventDefault(),this.loadAndOpen(n,s,e))}getClickedIndex(t){if(this.options.getClickedIndexFn)return this.options.getClickedIndexFn.call(this,t);const e=t.target,n=Qt(this.options.children,this.options.childSelector,t.currentTarget).findIndex((t=>t===e||t.contains(e)));return-1!==n?n:this.options.children||this.options.childSelector?-1:0}loadAndOpen(t,e,n){if(window.pswp||!this.options)return!1;if(!e&&this.options.gallery&&this.options.children){const t=Qt(this.options.gallery);t[0]&&(e={gallery:t[0]})}return this.options.index=t,this.options.initialPointerPos=n,this.shouldOpen=!0,this.preload(t,e),!0}preload(t,e){const{options:n}=this;e&&(n.dataSource=e);const s=[],i=typeof n.pswpModule;if(fo(n.pswpModule))s.push(Promise.resolve(n.pswpModule));else{if("string"===i)throw new Error("pswpModule as string is no longer supported");if("function"!==i)throw new Error("pswpModule is not valid");s.push(n.pswpModule())}"function"==typeof n.openPromise&&s.push(n.openPromise()),!1!==n.preloadFirstSlide&&t>=0&&(this._preloadedContent=Eo(t,this));const o=++this._uid;Promise.all(s).then((t=>{if(this.shouldOpen){const e=t[0];this._openPhotoswipe(e,o)}}))}_openPhotoswipe(t,e){if(e!==this._uid&&this.shouldOpen||(this.shouldOpen=!1,window.pswp))return;const n="object"==typeof t?new t.default(this.options):new t(this.options);this.pswp=n,window.pswp=n,Object.keys(this._listeners).forEach((t=>{var e;null===(e=this._listeners[t])||void 0===e||e.forEach((e=>{n.on(t,e)}))})),Object.keys(this._filters).forEach((t=>{var e;null===(e=this._filters[t])||void 0===e||e.forEach((e=>{n.addFilter(t,e.fn,e.priority)}))})),this._preloadedContent&&(n.contentLoader.addToCache(this._preloadedContent),this._preloadedContent=void 0),n.on("destroy",(()=>{this.pswp=void 0,delete window.pswp})),n.init()}destroy(){var t;null===(t=this.pswp)||void 0===t||t.destroy(),this.shouldOpen=!1,this._listeners={},Qt(this.options.gallery,this.options.gallerySelector).forEach((t=>{t.removeEventListener("click",this.onThumbnailsClick,!1)}))}}let te,Co=to((()=>import("./photoswipe.esm.CKijkUPa.js")),[]);function Hs(){te=new _o({gallery:".custom-md img, #post-cover img",pswpModule:()=>Co,closeSVG:'',zoomSVG:'',padding:{top:20,bottom:20,left:20,right:20},wheelToZoom:!0,arrowPrev:!1,arrowNext:!1,imageClickAction:"close",tapAction:"close",doubleTapAction:"zoom"}),te.addFilter("domItemData",((t,e)=>(e instanceof HTMLImageElement&&(t.src=e.src,t.w=Number(e.naturalWidth||window.innerWidth),t.h=Number(e.naturalHeight||window.innerHeight),t.msrc=e.src),t))),te.init()}const Ps=()=>{te||Hs(),window.swup.hooks.on("page:view",(()=>{Hs()})),window.swup.hooks.on("content:replace",(()=>{te?.destroy?.()}),{before:!0})};window.swup?Ps():document.addEventListener("swup:enable",Ps);const pt=(t,e)=>{const{o:n,i:s,u:i}=t;let o,r=n;const l=(t,e)=>{const n=r,l=t,a=e||(s?!s(n,l):n!==l);return(a||i)&&(r=l,o=n),[r,a,o]};return[e?t=>l(e(r,o),t):l,t=>[r,!!t,o]]},Io=typeof window<"u"&&typeof HTMLElement<"u"&&!!window.document,ut=Io?window:{},nn=Math.max,Lo=Math.min,Ye=Math.round,Se=Math.abs,Ms=Math.sign,on=ut.cancelAnimationFrame,ps=ut.requestAnimationFrame,Ee=ut.setTimeout,Je=ut.clearTimeout,Ae=t=>typeof ut[t]<"u"?ut[t]:void 0,To=Ae("MutationObserver"),ks=Ae("IntersectionObserver"),xe=Ae("ResizeObserver"),ye=Ae("ScrollTimeline"),fs=t=>void 0===t,Oe=t=>null===t,_t=t=>"number"==typeof t,oe=t=>"string"==typeof t,ms=t=>"boolean"==typeof t,wt=t=>"function"==typeof t,Ct=t=>Array.isArray(t),_e=t=>"object"==typeof t&&!Ct(t)&&!Oe(t),gs=t=>{const e=!!t&&t.length,n=_t(e)&&e>-1&&e%1==0;return!!(Ct(t)||!wt(t)&&n)&&(!(e>0&&_e(t))||e-1 in t)},Ce=t=>!!t&&t.constructor===Object,Ie=t=>t instanceof HTMLElement,$e=t=>t instanceof Element;function G(t,e){if(gs(t))for(let n=0;ne(t[n],n,t)));return t}const cn=(t,e)=>t.indexOf(e)>=0,ee=(t,e)=>t.concat(e),tt=(t,e,n)=>(!oe(e)&&gs(e)?Array.prototype.push.apply(t,e):t.push(e),t),Pt=t=>Array.from(t||[]),ys=t=>Ct(t)?t:!oe(t)&&gs(t)?Pt(t):[t],Qe=t=>!!t&&!t.length,ts=t=>Pt(new Set(t)),gt=(t,e,n)=>{G(t,(t=>!t||t.apply(void 0,e||[]))),!n&&(t.length=0)},rn="paddingTop",ln="paddingRight",an="paddingLeft",dn="paddingBottom",hn="marginLeft",un="marginRight",pn="marginBottom",fn="overflowX",mn="overflowY",De="width",He="height",$t="visible",kt="hidden",Wt="scroll",Ao=t=>{const e=String(t||"");return e?e[0].toUpperCase()+e.slice(1):""},Pe=(t,e,n,s)=>{if(t&&e){let s=!0;return G(n,(n=>{t[n]!==e[n]&&(s=!1)})),s}return!1},gn=(t,e)=>Pe(t,e,["w","h"]),ve=(t,e)=>Pe(t,e,["x","y"]),Oo=(t,e)=>Pe(t,e,["t","r","b","l"]),zt=()=>{},O=(t,...e)=>t.bind(0,...e),Ft=t=>{let e;const n=t?Ee:ps,s=t?Je:on;return[i=>{s(e),e=n((()=>i()),wt(t)?t():t)},()=>s(e)]},es=(t,e)=>{const{_:n,v:s,p:i,S:o}=e||{};let r,l,a,c,d=zt;const h=function(e){d(),Je(r),c=r=l=void 0,d=zt,t.apply(this,e)},p=t=>o&&l?o(l,t):t,u=()=>{d!==zt&&h(p(a)||a)},m=function(){const t=Pt(arguments),e=wt(n)?n():n;if(_t(e)&&e>=0){const n=wt(s)?s():s,o=_t(n)&&n>=0,m=e>0?Ee:ps,y=e>0?Je:on,f=p(t)||t,g=h.bind(0,f);let v;d(),i&&!c?(g(),c=!0,v=m((()=>c=void 0),e)):(v=m(g,e),o&&!r&&(r=Ee(u,n))),d=()=>y(v),l=a=f}else h(t)};return m.m=u,m},yn=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),bt=t=>t?Object.keys(t):[],Z=(t,e,n,s,i,o,r)=>{const l=[e,n,s,i,o,r];return("object"!=typeof t||Oe(t))&&!wt(t)&&(t={}),G(l,(e=>{G(e,((n,s)=>{const i=e[s];if(t===i)return!0;const o=Ct(i);if(i&&Ce(i)){const e=t[s];let n=e;o&&!Ct(e)?n=[]:!o&&!Ce(e)&&(n={}),t[s]=Z(n,i)}else t[s]=o?i.slice():i}))})),t},vn=(t,e)=>G(Z({},t),((t,e,n)=>{void 0===t?delete n[e]:t&&Ce(t)&&(n[e]=vn(t))})),vs=t=>!bt(t).length,wn=(t,e,n)=>nn(t,Lo(e,n)),Rt=t=>ts((Ct(t)?t:(t||"").split(" ")).filter((t=>t))),ws=(t,e)=>t&&t.getAttribute(e),zs=(t,e)=>t&&t.hasAttribute(e),Lt=(t,e,n)=>{G(Rt(e),(e=>{t&&t.setAttribute(e,String(n||""))}))},Et=(t,e)=>{G(Rt(e),(e=>t&&t.removeAttribute(e)))},Me=(t,e)=>{const n=Rt(ws(t,e)),s=O(Lt,t,e),i=(t,e)=>{const s=new Set(n);return G(Rt(t),(t=>{s[e](t)})),Pt(s).join(" ")};return{O:t=>s(i(t,"delete")),$:t=>s(i(t,"add")),C:t=>{const e=Rt(t);return e.reduce(((t,e)=>t&&n.includes(e)),e.length>0)}}},bn=(t,e,n)=>(Me(t,e).O(n),O(bs,t,e,n)),bs=(t,e,n)=>(Me(t,e).$(n),O(bn,t,e,n)),Le=(t,e,n,s)=>(s?bs:bn)(t,e,n),Ss=(t,e,n)=>Me(t,e).C(n),Sn=t=>Me(t,"class"),En=(t,e)=>{Sn(t).O(e)},Es=(t,e)=>(Sn(t).$(e),O(En,t,e)),xn=(t,e)=>{const n=e?$e(e)&&e:document;return n?Pt(n.querySelectorAll(t)):[]},$o=(t,e)=>{const n=e?$e(e)&&e:document;return n&&n.querySelector(t)},ss=(t,e)=>$e(t)&&t.matches(e),_n=t=>ss(t,"body"),ns=t=>t?Pt(t.childNodes):[],se=t=>t&&t.parentElement,qt=(t,e)=>$e(t)&&t.closest(e),os=t=>document.activeElement,Do=(t,e,n)=>{const s=qt(t,e),i=t&&$o(n,s),o=qt(i,e)===s;return!(!s||!i)&&(s===t||i===t||o&&qt(qt(t,n),e)!==s)},Zt=t=>{G(ys(t),(t=>{const e=se(t);t&&e&&e.removeChild(t)}))},ft=(t,e)=>O(Zt,t&&e&&G(ys(e),(e=>{e&&t.appendChild(e)}))),Bt=t=>{const e=document.createElement("div");return Lt(e,"class",t),e},Cn=t=>{const e=Bt();return e.innerHTML=t.trim(),G(ns(e),(t=>Zt(t)))},Rs=(t,e)=>t.getPropertyValue(e)||t[e]||"",In=t=>{const e=t||0;return isFinite(e)?e:0},me=t=>In(parseFloat(t||"")),is=t=>Math.round(1e4*t)/1e4,Ln=t=>`${is(In(t))}px`;function ne(t,e){t&&e&&G(e,((e,n)=>{try{const s=t.style,i=Oe(e)||ms(e)?"":_t(e)?Ln(e):e;0===n.indexOf("--")?s.setProperty(n,i):s[n]=i}catch{}}))}function At(t,e,n){const s=oe(e);let i=s?"":{};if(t){const o=ut.getComputedStyle(t,n)||t.style;i=s?Rs(o,e):Pt(e).reduce(((t,e)=>(t[e]=Rs(o,e),t)),i)}return i}const Ns=(t,e,n)=>{const s=e?`${e}-`:"",i=n?`-${n}`:"",o=`${s}top${i}`,r=`${s}right${i}`,l=`${s}bottom${i}`,a=`${s}left${i}`,c=At(t,[o,r,l,a]);return{t:me(c[o]),r:me(c[r]),b:me(c[l]),l:me(c[a])}},Ho=(t,e)=>"translate"+(_e(t)?`(${t.x},${t.y})`:`Y(${t})`),Po=t=>!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length),Mo={w:0,h:0},ke=(t,e)=>e?{w:e[`${t}Width`],h:e[`${t}Height`]}:Mo,ko=t=>ke("inner",t||ut),Vt=O(ke,"offset"),Tn=O(ke,"client"),Te=O(ke,"scroll"),xs=t=>{const e=parseFloat(At(t,De))||0,n=parseFloat(At(t,He))||0;return{w:e-Ye(e),h:n-Ye(n)}},Be=t=>t.getBoundingClientRect(),zo=t=>!!t&&Po(t),cs=t=>!(!t||!t[He]&&!t[De]),An=(t,e)=>{const n=cs(t);return!cs(e)&&n},Fs=(t,e,n,s)=>{G(Rt(e),(e=>{t&&t.removeEventListener(e,n,s)}))},Y=(t,e,n,s)=>{var i;const o=null==(i=s&&s.H)||i,r=s&&s.I||!1,l=s&&s.A||!1,a={passive:o,capture:r};return O(gt,Rt(e).map((e=>{const s=l?i=>{Fs(t,e,s,r),n&&n(i)}:n;return t&&t.addEventListener(e,s,a),O(Fs,t,e,s,r)})))},On=t=>t.stopPropagation(),rs=t=>t.preventDefault(),$n=t=>On(t)||rs(t),xt=(t,e)=>{const{x:n,y:s}=_t(e)?{x:e,y:e}:e||{};_t(n)&&(t.scrollLeft=n),_t(s)&&(t.scrollTop=s)},mt=t=>({x:t.scrollLeft,y:t.scrollTop}),Dn=()=>({D:{x:0,y:0},M:{x:0,y:0}}),Ro=(t,e)=>{const{D:n,M:s}=t,{w:i,h:o}=e,r=(t,e,n)=>{let s=Ms(t)*n,i=Ms(e)*n;if(s===i){const n=Se(t),o=Se(e);i=n>o?0:i,s=n{const n=(t,e)=>0===t&&t<=e;return{x:n(t.x,e.x),y:n(t.y,e.y)}},Bs=({D:t,M:e},n)=>{const s=(t,e,n)=>wn(0,1,(t-n)/(t-e)||0);return{x:s(t.x,e.x,n.x),y:s(t.y,e.y,n.y)}},ls=t=>{t&&t.focus&&t.focus({preventScroll:!0})},Vs=(t,e)=>{G(ys(e),t)},as=t=>{const e=new Map,n=(t,n)=>{if(t){const s=e.get(t);Vs((t=>{s&&s[t?"delete":"clear"](t)}),n)}else e.forEach((t=>{t.clear()})),e.clear()},s=(t,i)=>{if(oe(t)){const s=e.get(t)||new Set;return e.set(t,s),Vs((t=>{wt(t)&&s.add(t)}),i),O(n,t,i)}ms(i)&&i&&n();const o=bt(t),r=[];return G(o,(e=>{const n=t[e];n&&tt(r,s(e,n))})),O(gt,r)};return s(t||{}),[s,n,(t,n)=>{G(Pt(e.get(t)),(t=>{n&&!Qe(n)?t.apply(0,n):t()}))}]},Ws=t=>JSON.stringify(t,((t,e)=>{if(wt(e))throw 0;return e})),Zs=(t,e)=>t?`${e}`.split(".").reduce(((t,e)=>t&&yn(t,e)?t[e]:void 0),t):void 0,No={paddingAbsolute:!1,showNativeOverlaidScrollbars:!1,update:{elementEvents:[["img","load"]],debounce:[0,33],attributes:null,ignoreMutation:null},overflow:{x:"scroll",y:"scroll"},scrollbars:{theme:"os-theme-dark",visibility:"auto",autoHide:"never",autoHideDelay:1300,autoHideSuspend:!1,dragScroll:!0,clickScroll:!1,pointers:["mouse","touch","pen"]}},Hn=(t,e)=>{const n={};return G(ee(bt(e),bt(t)),(s=>{const i=t[s],o=e[s];if(_e(i)&&_e(o))Z(n[s]={},Hn(i,o)),vs(n[s])&&delete n[s];else if(yn(e,s)&&o!==i){let t=!0;if(Ct(i)||Ct(o))try{Ws(i)===Ws(o)&&(t=!1)}catch{}t&&(n[s]=o)}})),n},Us=(t,e,n)=>s=>[Zs(t,s),n||void 0!==Zs(e,s)],jt="data-overlayscrollbars",we="os-environment",ge=`${we}-scrollbar-hidden`,Ve=`${jt}-initialize`,be="noClipping",js=`${jt}-body`,Dt=jt,Fo="host",Tt=`${jt}-viewport`,qo=fn,Bo=mn,Vo="arrange",Pn="measuring",Wo="scrolling",Mn="scrollbarHidden",Zo="noContent",ds=`${jt}-padding`,Gs=`${jt}-content`,_s="os-size-observer",Uo=`${_s}-appear`,jo=`${_s}-listener`,Go="os-trinsic-observer",Ko="os-theme-none",yt="os-scrollbar",Xo=`${yt}-rtl`,Yo=`${yt}-horizontal`,Jo=`${yt}-vertical`,kn=`${yt}-track`,Cs=`${yt}-handle`,Qo=`${yt}-visible`,ti=`${yt}-cornerless`,Ks=`${yt}-interaction`,Xs=`${yt}-unusable`,hs=`${yt}-auto-hide`,Ys=`${hs}-hidden`,Js=`${yt}-wheel`,ei=`${kn}-interactive`,si=`${Cs}-interactive`;let zn;const ni=()=>zn,oi=t=>{zn=t};let We;const ii=()=>{const t=(t,e,n)=>{ft(document.body,t),ft(document.body,t);const s=Tn(t),i=Vt(t),o=xs(e);return n&&Zt(t),{x:i.h-s.h+o.h,y:i.w-s.w+o.w}},e=Cn(`
`)[0],n=e.firstChild,s=e.lastChild,i=ni();i&&(s.nonce=i);const[o,,r]=as(),[l,a]=pt({o:t(e,n),i:ve},O(t,e,n,!0)),[c]=a(),d=(t=>{let e=!1;const n=Es(t,ge);try{e="none"===At(t,"scrollbar-width")||"none"===At(t,"display","::-webkit-scrollbar")}catch{}return n(),e})(e),h={x:0===c.x,y:0===c.y},p={elements:{host:null,padding:!d,viewport:t=>d&&_n(t)&&t,content:!1},scrollbars:{slot:!0},cancel:{nativeScrollbarsOverlaid:!1,body:null}},u=Z({},No),m=O(Z,{},u),y=O(Z,{},p),f={T:c,k:h,R:d,V:!!ye,L:O(o,"r"),U:y,P:t=>Z(p,t)&&y(),N:m,q:t=>Z(u,t)&&m(),B:Z({},p),F:Z({},u)};if(Et(e,"style"),Zt(e),Y(ut,"resize",(()=>{r("r",[])})),wt(ut.matchMedia)&&!d&&(!h.x||!h.y)){const t=e=>{const n=ut.matchMedia(`(resolution: ${ut.devicePixelRatio}dppx)`);Y(n,"change",(()=>{e(),t(e)}),{A:!0})};t((()=>{const[t,e]=l();Z(f.T,t),r("r",[e])}))}return f},It=()=>(We||(We=ii()),We),Rn=(t,e)=>wt(e)?e.apply(0,t):e,ci=(t,e,n,s)=>{const i=fs(s)?n:s;return Rn(t,i)||e.apply(0,t)},Nn=(t,e,n,s)=>{const i=fs(s)?n:s,o=Rn(t,i);return!!o&&(Ie(o)?o:e.apply(0,t))},ri=(t,e)=>{const{nativeScrollbarsOverlaid:n,body:s}=e||{},{k:i,R:o,U:r}=It(),{nativeScrollbarsOverlaid:l,body:a}=r().cancel,c=n??l,d=fs(s)?a:s,h=(i.x||i.y)&&c,p=t&&(Oe(d)?!o:d);return!!h||!!p},Is=new WeakMap,li=(t,e)=>{Is.set(t,e)},ai=t=>{Is.delete(t)},Fn=t=>Is.get(t),di=(t,e,n)=>{let s=!1;const i=!!n&&new WeakMap,o=o=>{if(i&&n){G(n.map((e=>{const[n,s]=e||[];return[s&&n?(o||xn)(n,t):[],s]})),(n=>G(n[0],(o=>{const r=n[1],l=i.get(o)||[];if(t.contains(o)&&r){const t=Y(o,r,(n=>{s?(t(),i.delete(o)):e(n)}));i.set(o,tt(l,t))}else gt(l),i.delete(o)}))))}};return o(),[()=>{s=!0},o]},Qs=(t,e,n,s)=>{let i=!1;const{j:o,X:r,Y:l,W:a,J:c,G:d}=s||{},h=es((()=>i&&n(!0)),{_:33,v:99}),[p,u]=di(t,h,l),m=r||[],y=ee(o||[],m),f=(i,o)=>{if(!Qe(o)){const r=c||zt,l=d||zt,h=[],p=[];let y=!1,f=!1;if(G(o,(n=>{const{attributeName:i,target:o,type:c,oldValue:d,addedNodes:u,removedNodes:g}=n,v="attributes"===c,w="childList"===c,b=t===o,x=v&&i,E=x&&ws(o,i||""),L=oe(E)?E:null,O=x&&d!==L,S=cn(m,i)&&O;if(e&&(w||!b)){const e=v&&O,c=e&&a&&ss(o,a),p=(c?!r(o,i,d,L):!v||e)&&!l(n,!!c,t,s);G(u,(t=>tt(h,t))),G(g,(t=>tt(h,t))),f=f||p}!e&&b&&O&&!r(o,i,d,L)&&(tt(p,i),y=y||S)})),u((t=>ts(h).reduce(((e,n)=>(tt(e,xn(t,n)),ss(n,t)?tt(e,n):e)),[]))),e)return!i&&f&&n(!1),[!1];if(!Qe(p)||y){const t=[ts(p),y];return!i&&n.apply(0,t),t}}},g=new To(O(f,!1));return[()=>(g.observe(t,{attributes:!0,attributeOldValue:!0,attributeFilter:y,subtree:e,childList:e,characterData:e}),i=!0,()=>{i&&(p(),g.disconnect(),i=!1)}),()=>{if(i)return h.m(),f(!0,g.takeRecords())}]},qn={},Bn={},hi=t=>{G(t,(t=>G(t,((e,n)=>{qn[n]=t[n]}))))},Vn=(t,e,n)=>bt(t).map((s=>{const{static:i,instance:o}=t[s],[r,l,a]=n||[],c=n?o:i;if(c){const t=n?c(r,l,e):c(e);return(a||Bn)[s]=t}})),ie=t=>Bn[t],ui="__osOptionsValidationPlugin",pi="__osSizeObserverPlugin",fi=(t,e)=>{const{k:n}=e,[s,i]=t("showNativeOverlaidScrollbars");return[s&&n.x&&n.y,i]},Ut=t=>0===t.indexOf($t),mi=(t,e)=>{const n=(t,e,n,s)=>{const i=t===$t?kt:t.replace(`${$t}-`,""),o=Ut(t),r=Ut(n);return e||s?o&&r?$t:o?e&&s?i:e?$t:kt:e?i:r&&s?$t:kt:kt},s={x:n(e.x,t.x,e.y,t.y),y:n(e.y,t.y,e.x,t.x)};return{K:s,Z:{x:s.x===Wt,y:s.y===Wt}}},Wn="__osScrollbarsHidingPlugin",gi="__osClickScrollPlugin",Zn=(t,e,n)=>{const{dt:s}=n||{},i=ie(pi),[o]=pt({o:!1,u:!0});return()=>{const n=[],r=Cn(`
`)[0],l=r.firstChild,a=t=>{let n=!1,s=!1;if(t instanceof ResizeObserverEntry){const[e,,i]=o(t.contentRect),r=cs(e);s=An(e,i),n=!s&&!r}else s=!0===t;n||e({ft:!0,dt:s})};if(xe){const t=new xe((t=>a(t.pop())));t.observe(l),tt(n,(()=>{t.disconnect()}))}else{if(!i)return zt;{const[t,e]=i(l,a,s);tt(n,ee([Es(r,Uo),Y(r,"animationstart",t)],e))}}return O(gt,tt(n,ft(t,r)))}},yi=(t,e)=>{let n;const s=Bt(Go),[i]=pt({o:!1}),o=(t,n)=>{if(t){const s=i((t=>0===t.h||t.isIntersecting||t.intersectionRatio>0)(t)),[,o]=s;return o&&!n&&e(s)&&[s]}},r=(t,e)=>o(e.pop(),t);return[()=>{const e=[];if(ks)n=new ks(O(r,!1),{root:t}),n.observe(s),tt(e,(()=>{n.disconnect()}));else{const t=()=>{const t=Vt(s);o(t)};tt(e,Zn(s,t)()),t()}return O(gt,tt(e,ft(t,s)))},()=>n&&r(!0,n.takeRecords())]},vi=(t,e,n,s)=>{let i,o,r,l,a,c;const d=`[${Dt}]`,h=`[${Tt}]`,p=["id","class","style","open","wrap","cols","rows"],{vt:u,ht:m,ot:y,gt:f,bt:g,nt:v,wt:w,yt:b,St:x,Ot:E}=t,L=t=>"rtl"===At(t,"direction"),O={$t:!1,ct:L(u)},S=It(),I=ie(Wn),[C]=pt({i:gn,o:{w:0,h:0}},(()=>{const s=I&&I.tt(t,e,O,S,n).ut,i=!(w&&v)&&Ss(m,Dt,be),o=!v&&b(Vo),r=o&&mt(f),l=r&&E(),a=x(Pn,i),c=o&&s&&s()[0],d=Te(y),h=xs(y);return c&&c(),xt(f,r),l&&l(),i&&a(),{w:d.w+h.w,h:d.h+h.h}})),_=es(s,{_:()=>i,v:()=>o,S(t,e){const[n]=t,[s]=e;return[ee(bt(n),bt(s)).reduce(((t,e)=>(t[e]=n[e]||s[e],t)),{})]}}),D=t=>{const e=L(u);Z(t,{Ct:c!==e}),Z(O,{ct:e}),c=e},T=(t,e)=>{const[n,i]=t,o={xt:i};return Z(O,{$t:n}),!e&&s(o),o},$=({ft:t,dt:e})=>{const n=t&&!e||!S.R?s:_,i={ft:t||e,dt:e};D(i),n(i)},A=(t,e)=>{const[,n]=C(),i={Ht:n};return D(i),n&&!e&&(t?s:_)(i),i},k=(t,e,n)=>{const s={Et:e};return D(s),e&&!n&&_(s),s},[M,P]=g?yi(m,T):[],z=!v&&Zn(m,$,{dt:!0}),[H,q]=Qs(m,!1,k,{X:p,j:p}),R=v&&xe&&new xe((t=>{const e=t[t.length-1].contentRect;$({ft:!0,dt:An(e,a)}),a=e})),F=es((()=>{const[,t]=C();s({Ht:t})}),{_:222,p:!0});return[()=>{R&&R.observe(m);const t=z&&z(),e=M&&M(),n=H(),s=S.L((t=>{t?_({zt:t}):F()}));return()=>{R&&R.disconnect(),t&&t(),e&&e(),l&&l(),n(),s()}},({It:t,At:e,Dt:n})=>{const s={},[a]=t("update.ignoreMutation"),[c,u]=t("update.attributes"),[m,f]=t("update.elementEvents"),[w,b]=t("update.debounce"),x=e||n;if(f||u){r&&r(),l&&l();const[t,e]=Qs(g||y,!0,A,{j:ee(p,c||[]),Y:m,W:d,G:(t,e)=>{const{target:n,attributeName:s}=t;return!(e||!s||v)&&Do(n,d,h)||!!qt(n,`.${yt}`)||!!(t=>wt(a)&&a(t))(t)}});l=t(),r=e}if(b)if(_.m(),Ct(w)){const t=w[0],e=w[1];i=_t(t)&&t,o=_t(e)&&e}else _t(w)?(i=w,o=!1):(i=!1,o=!1);if(x){const t=q(),e=P&&P(),n=r&&r();t&&Z(s,k(t[0],t[1],x)),e&&Z(s,T(e[0],x)),n&&Z(s,A(n[0],x))}return D(s),s},O]},wi=(t,e,n,s)=>{const i="--os-viewport-percent",o="--os-scroll-percent",r="--os-scroll-direction",{U:l}=It(),{scrollbars:a}=l(),{slot:c}=a,{vt:d,ht:h,ot:p,Mt:u,gt:m,wt:y,nt:f}=e,{scrollbars:g}=u?{}:t,{slot:v}=g||{},w=[],b=[],x=[],E=Nn([d,h,p],(()=>f&&y?d:h),c,v),L=t=>{if(ye){const e=new ye({source:m,axis:t});return{kt:t=>{const n=t.Tt.animate({clear:["left"],[o]:[0,1]},{timeline:e});return()=>n.cancel()}}}},S={x:L("x"),y:L("y")},I=(t,e,n)=>{const s=n?Es:En;G(t,(t=>{s(t.Tt,e)}))},C=(t,e)=>{G(t,(t=>{const[n,s]=e(t);ne(n,s)}))},_=(t,e,n)=>{const s=ms(n),i=!s||!n;(!s||n)&&I(b,t,e),i&&I(x,t,e)},D=t=>{const e=t?"x":"y",n=Bt(`${yt} ${t?Yo:Jo}`),i=Bt(kn),o=Bt(Cs),r={Tt:n,Ut:i,Pt:o},l=S[e];return tt(t?b:x,r),tt(w,[ft(n,i),ft(i,o),O(Zt,n),l&&l.kt(r),s(r,_,t)]),r},T=O(D,!0),$=O(D,!1);return T(),$(),[{Nt:()=>{const t=(()=>{const{Rt:t,Vt:e}=n,s=(t,e)=>wn(0,1,t/(t+e)||0);return{x:s(e.x,t.x),y:s(e.y,t.y)}})(),e=t=>e=>[e.Tt,{[i]:is(t)+""}];C(b,e(t.x)),C(x,e(t.y))},qt:()=>{if(!ye){const{Lt:t}=n,e=Bs(t,mt(m)),s=t=>e=>[e.Tt,{[o]:is(t)+""}];C(b,s(e.x)),C(x,s(e.y))}},Bt:()=>{const{Lt:t}=n,e=qs(t),s=t=>e=>[e.Tt,{[r]:t?"0":"1"}];C(b,s(e.x)),C(x,s(e.y))},Ft:()=>{if(f&&!y){const{Rt:t,Lt:e}=n,s=qs(e),i=Bs(e,mt(m)),o=e=>{const{Tt:n}=e,o=se(n)===p&&n,r=(t,e,n)=>{const s=e*t;return Ln(n?s:-s)};return[o,o&&{transform:Ho({x:r(i.x,t.x,s.x),y:r(i.y,t.y,s.y)})}]};C(b,o),C(x,o)}},jt:_,Xt:{Yt:b,Wt:T,Jt:O(C,b)},Gt:{Yt:x,Wt:$,Jt:O(C,x)}},()=>(ft(E,b[0].Tt),ft(E,x[0].Tt),O(gt,w))]},bi=(t,e,n,s)=>(i,o,r)=>{const{ht:l,ot:a,nt:c,gt:d,Kt:h,Ot:p}=e,{Tt:u,Ut:m,Pt:y}=i,[f,g]=Ft(333),[v,w]=Ft(444),b=t=>{wt(d.scrollBy)&&d.scrollBy({behavior:"smooth",left:t.x,top:t.y})};let x=!0;return O(gt,[Y(y,"pointermove pointerleave",s),Y(u,"pointerenter",(()=>{o(Ks,!0)})),Y(u,"pointerleave pointercancel",(()=>{o(Ks,!1)})),!c&&Y(u,"mousedown",(()=>{const t=os();(zs(t,Tt)||zs(t,Dt)||t===document.body)&&Ee(O(ls,a),25)})),Y(u,"wheel",(t=>{const{deltaX:e,deltaY:n,deltaMode:s}=t;x&&0===s&&se(u)===l&&b({x:e,y:n}),x=!1,o(Js,!0),f((()=>{x=!0,o(Js)})),rs(t)}),{H:!1,I:!0}),Y(u,"pointerdown",O(Y,h,"click",$n,{A:!0,I:!0,H:!1}),{I:!0}),(()=>{const e="pointerup pointercancel lostpointercapture",s="client"+(r?"X":"Y"),i=r?De:He,o=r?"left":"top",l=r?"w":"h",a=r?"x":"y",c=[];return Y(m,"pointerdown",(r=>{const u=qt(r.target,`.${Cs}`)===y,f=u?y:m,g=t.scrollbars,x=g[u?"dragScroll":"clickScroll"],{button:E,isPrimary:L,pointerType:S}=r,{pointers:I}=g;if(0===E&&L&&x&&(I||[]).includes(S)){gt(c),w();const t=!u&&(r.shiftKey||"instant"===x),g=O(Be,y),E=O(Be,m),L=(t,e)=>(t||g())[o]-(e||E())[o],S=Ye(Be(d)[i])/Vt(d)[l]||1,I=((t,e)=>s=>{const{Rt:i}=n,o=Vt(m)[l]-Vt(y)[l],r=e*s/o*i[a];xt(d,{[a]:t+r})})(mt(d)[a],1/S),C=r[s],_=g(),D=E(),T=_[i],$=L(_,D)+T/2,A=C-D[o],k=u?0:A-$,M=t=>{gt(z),f.releasePointerCapture(t.pointerId)},P=u||t,Z=p(),z=[Y(h,e,M),Y(h,"selectstart",(t=>rs(t)),{H:!1}),Y(m,e,M),P&&Y(m,"pointermove",(t=>I(k+(t[s]-C)))),P&&(()=>{const t=mt(d);Z();const e=mt(d),n={x:e.x-t.x,y:e.y-t.y};(Se(n.x)>3||Se(n.y)>3)&&(p(),xt(d,t),b(n),v(Z))})];if(f.setPointerCapture(r.pointerId),t)I(k);else if(!u){const t=ie(gi);if(t){const e=t(I,k,T,(t=>{t?Z():tt(z,Z)}));tt(z,e),tt(c,O(e,!0))}}}}))})(),g,w])},Si=(t,e,n,s,i,o)=>{let r,l,a,c,d,h=zt,p=0;const u=t=>"mouse"===t.pointerType,[m,y]=Ft(),[f,g]=Ft(100),[v,w]=Ft(100),[b,x]=Ft((()=>p)),[E,L]=wi(t,i,s,bi(e,i,s,(t=>u(t)&&M()))),{ht:S,Qt:I,wt:C}=i,{jt:_,Nt:D,qt:T,Bt:$,Ft:A}=E,k=(t,e)=>{if(x(),t)_(Ys);else{const t=O(_,Ys,!0);p>0&&!e?b(t):t()}},M=()=>{(a?!r:!c)&&(k(!0),f((()=>{k(!1)})))},P=t=>{_(hs,t,!0),_(hs,t,!1)},Z=t=>{u(t)&&(r=a,a&&k(!0))},z=[x,g,w,y,()=>h(),Y(S,"pointerover",Z,{A:!0}),Y(S,"pointerenter",Z),Y(S,"pointerleave",(t=>{u(t)&&(r=!1,a&&k(!1))})),Y(S,"pointermove",(t=>{u(t)&&l&&M()})),Y(I,"scroll",(t=>{m((()=>{T(),M()})),o(t),A()}))];return[()=>O(gt,tt(z,L())),({It:t,Dt:e,Zt:i,tn:o})=>{const{nn:r,sn:u,en:m,cn:y}=o||{},{Ct:f,dt:g}=i||{},{ct:w}=n,{k:b}=It(),{K:x,rn:E}=s,[L,S]=t("showNativeOverlaidScrollbars"),[M,Z]=t("scrollbars.theme"),[z,H]=t("scrollbars.visibility"),[q,R]=t("scrollbars.autoHide"),[F,G]=t("scrollbars.autoHideSuspend"),[B]=t("scrollbars.autoHideDelay"),[N,j]=t("scrollbars.dragScroll"),[W,U]=t("scrollbars.clickScroll"),[V,K]=t("overflow"),J=g&&!e,Q=E.x||E.y,X=r||u||y||f||e,tt=m||H||K,et=L&&b.x&&b.y,nt=(t,e,n)=>{const s=t.includes(Wt)&&(z===$t||"auto"===z&&e===Wt);return _(Qo,s,n),s};if(p=B,J&&(F&&Q?(P(!1),h(),v((()=>{h=Y(I,"scroll",O(P,!0),{A:!0})}))):P(!0)),S&&_(Ko,et),Z&&(_(d),_(M,!0),d=M),G&&!F&&P(!0),R&&(l="move"===q,a="leave"===q,c="never"===q,k(c,!0)),j&&_(si,N),U&&_(ei,!!W),tt){const t=nt(V.x,x.x,!0),e=nt(V.y,x.y,!1);_(ti,!(t&&e))}X&&(T(),D(),A(),y&&$(),_(Xs,!E.x,!0),_(Xs,!E.y,!1),_(Xo,w&&!C))},{},E]},Ei=t=>{const e=It(),{U:n,R:s}=e,{elements:i}=n(),{padding:o,viewport:r,content:l}=i,a=Ie(t),c=a?{}:t,{elements:d}=c,{padding:h,viewport:p,content:u}=d||{},m=a?t:c.target,y=_n(m),f=m.ownerDocument,g=f.documentElement,v=()=>f.defaultView||ut,w=O(ci,[m]),b=O(Nn,[m]),x=O(Bt,""),E=O(w,x,r),L=O(b,x,l),S=E(p),I=S===m,C=I&&y,_=!I&&L(u),D=!I&&S===_,T=C?g:S,$=C?T:m,A=!I&&b(x,o,h),k=!D&&_,M=[k,T,A,$].map((t=>Ie(t)&&!se(t)&&t)),P=t=>t&&cn(M,t),Z=!P(T)&&(t=>{const e=Vt(t),n=Te(t),s=At(t,fn),i=At(t,mn);return n.w-e.w>0&&!Ut(s)||n.h-e.h>0&&!Ut(i)})(T)?T:m,z=C?g:T,H={vt:m,ht:$,ot:T,ln:A,bt:k,gt:z,Qt:C?f:T,an:y?g:Z,Kt:f,wt:y,Mt:a,nt:I,un:v,yt:t=>Ss(T,Tt,t),St:(t,e)=>Le(T,Tt,t,e),Ot:()=>Le(z,Tt,Wo,!0)},{vt:q,ht:R,ln:F,ot:G,bt:B}=H,N=[()=>{Et(R,[Dt,Ve]),Et(q,Ve),y&&Et(g,[Ve,Dt])}];let j=ns([B,G,F,R,q].find((t=>t&&!P(t))));const W=C?q:B||G,U=O(gt,N);return[H,()=>{const t=v(),e=os(),n=t=>{ft(se(t),ns(t)),Zt(t)},i=t=>Y(t,"focusin focusout focus blur",$n,{I:!0,H:!1}),o="tabindex",r=ws(G,o),l=i(e);return Lt(R,Dt,I?"":Fo),Lt(F,ds,""),Lt(G,Tt,""),Lt(B,Gs,""),I||(Lt(G,o,r||"-1"),y&&Lt(g,js,"")),ft(W,j),ft(R,F),ft(F||R,!I&&G),ft(G,B),tt(N,[l,()=>{const t=os(),e=P(G),s=e&&t===G?q:t,l=i(s);Et(F,ds),Et(B,Gs),Et(G,Tt),y&&Et(g,js),r?Lt(G,o,r):Et(G,o),P(B)&&n(B),e&&n(G),P(F)&&n(F),ls(s),l()}]),s&&!I&&(bs(G,Tt,Mn),tt(N,O(Et,G,Tt))),ls(!I&&y&&e===q&&t.top===t?G:e),l(),j=0,U},U]},xi=({bt:t})=>({Zt:e,_n:n,Dt:s})=>{const{xt:i}=e||{},{$t:o}=n;t&&(i||s)&&ne(t,{[He]:o&&"100%"})},_i=({ht:t,ln:e,ot:n,nt:s},i)=>{const[o,r]=pt({i:Oo,o:Ns()},O(Ns,t,"padding",""));return({It:t,Zt:l,_n:a,Dt:c})=>{let[d,h]=r(c);const{R:p}=It(),{ft:u,Ht:m,Ct:y}=l||{},{ct:f}=a,[g,v]=t("paddingAbsolute");(u||h||c||m)&&([d,h]=o(c));const w=!s&&(v||y||h);if(w){const t=!g||!e&&!p,s=d.r+d.l,o=d.t+d.b,r={[un]:t&&!f?-s:0,[pn]:t?-o:0,[hn]:t&&f?-s:0,top:t?-d.t:0,right:t?f?-d.r:"auto":0,left:t?f?"auto":-d.l:0,[De]:t&&`calc(100% + ${s}px)`},l={[rn]:t?d.t:0,[ln]:t?d.r:0,[dn]:t?d.b:0,[an]:t?d.l:0};ne(e||n,r),ne(n,l),Z(i,{ln:d,dn:!t,rt:e?l:Z({},r,l)})}return{fn:w}}},Ci=(t,e)=>{const n=It(),{ht:s,ln:i,ot:o,nt:r,Qt:l,gt:a,wt:c,St:d,un:h}=t,{R:p}=n,u=c&&r,m=O(nn,0),y={display:()=>!1,direction:t=>"ltr"!==t,flexDirection:t=>t.endsWith("-reverse"),writingMode:t=>"horizontal-tb"!==t},f=bt(y),g={i:gn,o:{w:0,h:0}},v={i:ve,o:{}},w=t=>{d(Pn,!u&&t)},[b,x]=pt(g,O(xs,o)),[E,L]=pt(g,O(Te,o)),[S,I]=pt(g),[C]=pt(v),[_,D]=pt(g),[T]=pt(v),[$]=pt({i:(t,e)=>Pe(t,e,f),o:{}},(()=>zo(o)?At(o,f):{})),[A,k]=pt({i:(t,e)=>ve(t.D,e.D)&&ve(t.M,e.M),o:Dn()}),M=ie(Wn),P=(t,e)=>`${e?qo:Bo}${Ao(t)}`;return({It:r,Zt:c,_n:g,Dt:v},{fn:O})=>{const{ft:z,Ht:H,Ct:q,dt:R,zt:F}=c||{},G=M&&M.tt(t,e,g,n,r),{it:B,ut:N,_t:j}=G||{},[W,U]=fi(r,n),[V,K]=r("overflow"),J=Ut(V.x),Q=Ut(V.y);let X=x(v),tt=L(v),et=I(v),nt=D(v);U&&p&&d(Mn,!W);{Ss(s,Dt,be)&&w(!0);const[t]=N?N():[],[e]=X=b(v),[n]=tt=E(v),i=Tn(o),r=u&&ko(h()),l={w:m(n.w+e.w),h:m(n.h+e.h)},a={w:m((r?r.w:i.w+m(i.w-n.w))+e.w),h:m((r?r.h:i.h+m(i.h-n.h))+e.h)};t&&t(),nt=_(a),et=S(((t,e)=>{const n=ut.devicePixelRatio%1!=0?1:0,s={w:m(t.w-e.w),h:m(t.h-e.h)};return{w:s.w>n?s.w:0,h:s.h>n?s.h:0}})(l,a),v)}const[st,it]=nt,[ot,rt]=et,[lt,at]=tt,[ct,dt]=X,[ht,pt]=C({x:ot.w>0,y:ot.h>0}),yt=J&&Q&&(ht.x||ht.y)||J&&ht.x&&!ht.y||Q&&ht.y&&!ht.x,ft=O||q||F||dt||at||it||rt||K||U||!0,gt=mi(ht,V),[vt,wt]=T(gt.K),[Et,Lt]=$(v),Ot=q||R||Lt||pt||v,[St,It]=Ot?A((t=>{if(!f.some((e=>{const n=t[e];return n&&y[e](n)})))return{D:{x:0,y:0},M:{x:1,y:1}};w(!0);const e=mt(a),n=d(Zo,!0),s=Y(l,Wt,(t=>{const n=mt(a);t.isTrusted&&n.x===e.x&&n.y===e.y&&On(t)}),{I:!0,A:!0});xt(a,{x:0,y:0}),n();const i=mt(a),o=Te(a);xt(a,{x:o.w,y:o.h});const r=mt(a);xt(a,{x:r.x-i.x<1&&-o.w,y:r.y-i.y<1&&-o.h});const c=mt(a);return xt(a,e),ps((()=>s())),{D:i,M:c}})(Et),v):k();return ft&&(wt&&(t=>{const e=t=>[$t,kt,Wt].map((e=>P(e,t))),n=e(!0).concat(e()).join(" ");d(n),d(bt(t).map((e=>P(t[e],"x"===e))).join(" "),!0)})(gt.K),j&&B&&ne(o,j(gt,g,B(gt,lt,ct)))),w(!1),Le(s,Dt,be,yt),Le(i,ds,be,yt),Z(e,{K:vt,Vt:{x:st.w,y:st.h},Rt:{x:ot.w,y:ot.h},rn:ht,Lt:Ro(St,ot)}),{en:wt,nn:it,sn:rt,cn:It||rt,vn:Ot}}},Ii=t=>{const[e,n,s]=Ei(t),i={ln:{t:0,r:0,b:0,l:0},dn:!1,rt:{[un]:0,[pn]:0,[hn]:0,[rn]:0,[ln]:0,[dn]:0,[an]:0},Vt:{x:0,y:0},Rt:{x:0,y:0},K:{x:kt,y:kt},rn:{x:!1,y:!1},Lt:Dn()},{vt:o,gt:r,nt:l,Ot:a}=e,{R:c,k:d}=It(),h=!c&&(d.x||d.y),p=[xi(e),_i(e,i),Ci(e,i)];return[n,t=>{const e={},n=h&&mt(r),s=n&&a();return G(p,(n=>{Z(e,n(t,e)||{})})),xt(r,n),s&&s(),!l&&xt(o,0),e},i,e,s]},Li=(t,e,n,s,i)=>{let o=!1;const r=Us(e,{}),[l,a,c,d,h]=Ii(t),[p,u,m]=vi(d,c,r,(t=>{w({},t)})),[y,f,,g]=Si(t,e,m,c,d,i),v=t=>bt(t).some((e=>!!t[e])),w=(t,i)=>{if(n())return!1;const{pn:r,Dt:l,At:c,hn:d}=t,h=r||{},p=!!l||!o,y={It:Us(e,h,p),pn:h,Dt:p};if(d)return f(y),!1;const g=i||u(Z({},y,{At:c})),w=a(Z({},y,{_n:m,Zt:g}));f(Z({},y,{Zt:g,tn:w}));const b=v(g),x=v(w),E=b||x||!vs(h)||p;return o=!0,E&&s(t,{Zt:g,tn:w}),E};return[()=>{const{an:t,gt:e,Ot:n}=d,s=mt(t),i=[p(),l(),y()],o=n();return xt(e,s),o(),O(gt,i)},w,()=>({gn:m,bn:c}),{wn:d,yn:g},h]},Ht=(t,e,n)=>{const{N:s}=It(),i=Ie(t),o=i?t:t.target,r=Fn(o);if(e&&!r){let r=!1;const l=[],a={},c=t=>{const e=vn(t),n=ie(ui);return n?n(e,!0):e},d=Z({},s(),c(e)),[h,p,u]=as(),[m,y,f]=as(n),g=(t,e)=>{f(t,e),u(t,e)},[v,w,b,x,E]=Li(t,d,(()=>r),(({pn:t,Dt:e},{Zt:n,tn:s})=>{const{ft:i,Ct:o,xt:r,Ht:l,Et:a,dt:c}=n,{nn:d,sn:h,en:p,cn:u}=s;g("updated",[S,{updateHints:{sizeChanged:!!i,directionChanged:!!o,heightIntrinsicChanged:!!r,overflowEdgeChanged:!!d,overflowAmountChanged:!!h,overflowStyleChanged:!!p,scrollCoordinatesChanged:!!u,contentMutation:!!l,hostMutation:!!a,appear:!!c},changedOptions:t||{},force:!!e}])}),(t=>g("scroll",[S,t]))),L=t=>{ai(o),gt(l),r=!0,g("destroyed",[S,t]),p(),y()},S={options(t,e){if(t){const n=e?s():{},i=Hn(d,Z(n,c(t)));vs(i)||(Z(d,i),w({pn:i}))}return Z({},d)},on:m,off:(t,e)=>{t&&e&&y(t,e)},state(){const{gn:t,bn:e}=b(),{ct:n}=t,{Vt:s,Rt:i,K:o,rn:l,ln:a,dn:c,Lt:d}=e;return Z({},{overflowEdge:s,overflowAmount:i,overflowStyle:o,hasOverflow:l,scrollCoordinates:{start:d.D,end:d.M},padding:a,paddingAbsolute:c,directionRTL:n,destroyed:r})},elements(){const{vt:t,ht:e,ln:n,ot:s,bt:i,gt:o,Qt:r}=x.wn,{Xt:l,Gt:a}=x.yn,c=t=>{const{Pt:e,Ut:n,Tt:s}=t;return{scrollbar:s,track:n,handle:e}},d=t=>{const{Yt:e,Wt:n}=t,s=c(e[0]);return Z({},s,{clone:()=>{const t=c(n());return w({hn:!0}),t}})};return Z({},{target:t,host:e,padding:n||s,viewport:s,content:i||s,scrollOffsetElement:o,scrollEventElement:r,scrollbarHorizontal:d(l),scrollbarVertical:d(a)})},update:t=>w({Dt:t,At:!0}),destroy:O(L,!1),plugin:t=>a[bt(t)[0]]};return tt(l,[E]),li(o,S),Vn(qn,Ht,[S,h,a]),ri(x.wn.wt,!i&&t.cancel)?(L(!0),S):(tt(l,v()),g("initialized",[S]),S.update(),S)}return r};Ht.plugin=t=>{const e=Ct(t),n=e?t:[t],s=n.map((t=>Vn(t,Ht)[0]));return hi(n),e?s:s[0]},Ht.valid=t=>{const e=t&&t.elements,n=wt(e)&&e();return Ce(n)&&!!Fn(n.target)},Ht.env=()=>{const{T:t,k:e,R:n,V:s,B:i,F:o,U:r,P:l,N:a,q:c}=It();return Z({},{scrollbarsSize:t,scrollbarsOverlaid:e,scrollbarsHiding:n,scrollTimeline:s,staticDefaultInitialization:i,staticDefaultOptions:o,getDefaultInitialization:r,setDefaultInitialization:l,getDefaultOptions:a,setDefaultOptions:c})},Ht.nonce=oi;const us=!!document.getElementById("banner-wrapper");function Ls(t,e){document.addEventListener("click",(n=>{let s=document.getElementById(t),i=n.target;if(i instanceof Node){for(let t of e){let e=document.getElementById(t);if(e==i||e?.contains(i))return}s.classList.add("float-panel-closed")}}))}function Ti(){const t=so();no(t)}function Ai(){oo(io())}function Un(){const t=document.querySelector("body");t&&(Ht({target:t,cancel:{nativeScrollbarsOverlaid:!0}},{scrollbars:{theme:"scrollbar-base scrollbar-auto py-1",autoHide:"move",autoHideDelay:500,autoHideSuspend:!1}}),document.querySelectorAll("pre").forEach((t=>{Ht(t,{scrollbars:{theme:"scrollbar-base scrollbar-dark px-2",autoHide:"leave",autoHideDelay:500,autoHideSuspend:!1}})})))}function Oi(){const t=document.getElementById("banner");t?t.classList.remove("opacity-0","scale-105"):console.error("Failed to find the banner element")}function jn(){Ti(),Ai(),Un(),Oi()}Ls("display-setting",["display-setting","display-settings-switch"]),Ls("nav-menu-panel",["nav-menu-panel","nav-menu-switch"]),Ls("search-panel",["search-panel","search-bar","search-switch"]),jn(),document.addEventListener("astro:after-swap",jn);const tn=()=>{window.swup.hooks.on("link:click",(()=>{if(document.documentElement.style.setProperty("--content-delay","0ms"),!us)return;let t=window.innerHeight*(Ge/100)-72-16,e=document.getElementById("navbar-wrapper");!e||!document.body.classList.contains("lg:is-home")||(document.body.scrollTop>=t||document.documentElement.scrollTop>=t)&&e.classList.add("navbar-hidden")})),window.swup.hooks.on("content:replace",Un),window.swup.hooks.on("visit:start",(t=>{const e=document.querySelector("body");ao(t.to.url,ho("/"))?e.classList.add("lg:is-home"):e.classList.remove("lg:is-home");const n=document.getElementById("page-height-extend");n&&n.classList.remove("hidden");let s=document.getElementById("toc-wrapper");s&&s.classList.add("toc-not-ready")})),window.swup.hooks.on("page:view",(()=>{const t=document.getElementById("page-height-extend");t&&t.classList.remove("hidden")})),window.swup.hooks.on("visit:end",(t=>{setTimeout((()=>{const t=document.getElementById("page-height-extend");t&&t.classList.add("hidden");const e=document.getElementById("toc-wrapper");e&&e.classList.remove("toc-not-ready")}),200)}))};window?.swup?.hooks?tn():document.addEventListener("swup:enable",tn);let Ze=document.getElementById("back-to-top-btn"),Ue=document.getElementById("toc-wrapper"),je=document.getElementById("navbar-wrapper");function $i(){let t=window.innerHeight*(Ge/100);if(Ze&&(document.body.scrollTop>t||document.documentElement.scrollTop>t?Ze.classList.remove("hide"):Ze.classList.add("hide")),us&&Ue&&(document.body.scrollTop>t||document.documentElement.scrollTop>t?Ue.classList.remove("toc-hide"):Ue.classList.add("toc-hide")),us&&je){const t=16*ro;let e=Ge;document.body.classList.contains("lg:is-home")&&window.innerWidth>=1024&&(e=lo);let n=window.innerHeight*(e/100)-72-t-16;document.body.scrollTop>=n||document.documentElement.scrollTop>=n?je.classList.add("navbar-hidden"):je.classList.remove("navbar-hidden")}}function Di(){"dark"===localStorage.theme?(document.documentElement.classList.remove("dark"),localStorage.theme="light"):(document.documentElement.classList.add("dark"),localStorage.theme="dark")}function Gn(){let t=document.getElementById("scheme-switch");t&&t.addEventListener("click",(function(){Di()}));let e=document.getElementById("display-settings-switch");e&&e.addEventListener("click",(function(){let t=document.getElementById("display-setting");t&&t.classList.toggle("float-panel-closed")}));let n=document.getElementById("nav-menu-switch");n&&n.addEventListener("click",(function(){let t=document.getElementById("nav-menu-panel");t&&t.classList.toggle("float-panel-closed")}))}window.onscroll=$i,window.onresize=()=>{let t=Math.floor(window.innerHeight*(eo/100));t-=t%4,document.documentElement.style.setProperty("--banner-height-extend",`${t}px`);const e=parseFloat(getComputedStyle(document.documentElement).fontSize),n=co*e,s=(window.innerWidth-n)/2-e;document.documentElement.style.setProperty("--toc-width",`${s}px`)},Gn(),document.addEventListener("astro:after-swap",(()=>{Gn()}),{once:!1});class Hi extends HTMLElement{constructor(){if(super(),"true"!==this.dataset.isCollapsed)return;const t=this.dataset.id,e=this.querySelector(".expand-btn"),n=this.querySelector(`#${t}`);e.addEventListener("click",(()=>{n.classList.remove("collapsed"),e.classList.add("hidden")}))}}customElements.define("widget-layout",Hi); \ No newline at end of file +import{_ as to}from"./preload-helper.CLcXU_4U.js";import{B as eo,b as so,c as no,s as oo,g as io,e as Ge,P as co,M as ro,f as lo}from"./setting-utils.9Prgb40w.js";import{p as ao,u as ho}from"./url-utils.CenNji6B.js";import"./zh_TW.CdORO3r2.js";const Ke=new MutationObserver(en);function en(){Ke.disconnect();let t=Array.from(document.querySelectorAll("pre"));for(let e of t){if("DIV"===e.parentElement?.nodeName&&e.parentElement?.classList.contains("code-block"))continue;let t=document.createElement("div");t.className="relative code-block";let n=document.createElement("button");n.className="copy-btn btn-regular-dark absolute active:scale-90 h-8 w-8 top-2 right-2 opacity-75 text-sm p-1.5 rounded-lg transition-all ease-in-out",e.setAttribute("tabindex","0"),e.parentNode&&e.parentNode.insertBefore(t,e);let s,i='',o='';n.innerHTML=`
${i} ${o}
\n `,t.appendChild(e),t.appendChild(n),n.addEventListener("click",(async()=>{s&&clearTimeout(s);let t=e?.querySelector("code")?.innerText;void 0!==t&&(await navigator.clipboard.writeText(t),n.classList.add("success"),s=setTimeout((()=>{n.classList.remove("success")}),1e3))}))}Ke.observe(document.body,{childList:!0,subtree:!0})}function Jt(t,e,n){const s=document.createElement(e);return t&&(s.className=t),n&&n.appendChild(s),s}function uo(t,e,n){let s=`translate3d(${t}px,0px,0)`;return void 0!==n&&(s+=` scale3d(${n},${n},1)`),s}function Xe(t,e,n){t.style.width="number"==typeof e?`${e}px`:e,t.style.height="number"==typeof n?`${n}px`:n}Ke.observe(document.body,{childList:!0,subtree:!0}),document.addEventListener("DOMContentLoaded",en);const vt={IDLE:"idle",LOADING:"loading",LOADED:"loaded",ERROR:"error"};function po(t){return"button"in t&&1===t.button||t.ctrlKey||t.metaKey||t.altKey||t.shiftKey}function Qt(t,e,n=document){let s=[];if(t instanceof Element)s=[t];else if(t instanceof NodeList||Array.isArray(t))s=Array.from(t);else{const i="string"==typeof t?t:e;i&&(s=Array.from(n.querySelectorAll(i)))}return s}function fo(t){return"function"==typeof t&&t.prototype&&t.prototype.goTo}function $s(){return!(!navigator.vendor||!navigator.vendor.match(/apple/i))}class mo{constructor(t,e){this.type=t,this.defaultPrevented=!1,e&&Object.assign(this,e)}preventDefault(){this.defaultPrevented=!0}}class go{constructor(){this._listeners={},this._filters={},this.pswp=void 0,this.options=void 0}addFilter(t,e,n=100){var s,i,o;this._filters[t]||(this._filters[t]=[]),null===(s=this._filters[t])||void 0===s||s.push({fn:e,priority:n}),null===(i=this._filters[t])||void 0===i||i.sort(((t,e)=>t.priority-e.priority)),null===(o=this.pswp)||void 0===o||o.addFilter(t,e,n)}removeFilter(t,e){this._filters[t]&&(this._filters[t]=this._filters[t].filter((t=>t.fn!==e))),this.pswp&&this.pswp.removeFilter(t,e)}applyFilters(t,...e){var n;return null===(n=this._filters[t])||void 0===n||n.forEach((t=>{e[0]=t.fn.apply(this,e)})),e[0]}on(t,e){var n,s;this._listeners[t]||(this._listeners[t]=[]),null===(n=this._listeners[t])||void 0===n||n.push(e),null===(s=this.pswp)||void 0===s||s.on(t,e)}off(t,e){var n;this._listeners[t]&&(this._listeners[t]=this._listeners[t].filter((t=>e!==t))),null===(n=this.pswp)||void 0===n||n.off(t,e)}dispatch(t,e){var n;if(this.pswp)return this.pswp.dispatch(t,e);const s=new mo(t,e);return null===(n=this._listeners[t])||void 0===n||n.forEach((t=>{t.call(this,s)})),s}}class yo{constructor(t,e){if(this.element=Jt("pswp__img pswp__img--placeholder",t?"img":"div",e),t){const e=this.element;e.decoding="async",e.alt="",e.src=t,e.setAttribute("role","presentation")}this.element.setAttribute("aria-hidden","true")}setDisplayedSize(t,e){this.element&&("IMG"===this.element.tagName?(Xe(this.element,250,"auto"),this.element.style.transformOrigin="0 0",this.element.style.transform=uo(0,0,t/250)):Xe(this.element,t,e))}destroy(){var t;null!==(t=this.element)&&void 0!==t&&t.parentNode&&this.element.remove(),this.element=null}}class vo{constructor(t,e,n){this.instance=e,this.data=t,this.index=n,this.element=void 0,this.placeholder=void 0,this.slide=void 0,this.displayedImageWidth=0,this.displayedImageHeight=0,this.width=Number(this.data.w)||Number(this.data.width)||0,this.height=Number(this.data.h)||Number(this.data.height)||0,this.isAttached=!1,this.hasSlide=!1,this.isDecoding=!1,this.state=vt.IDLE,this.data.type?this.type=this.data.type:this.data.src?this.type="image":this.type="html",this.instance.dispatch("contentInit",{content:this})}removePlaceholder(){this.placeholder&&!this.keepPlaceholder()&&setTimeout((()=>{this.placeholder&&(this.placeholder.destroy(),this.placeholder=void 0)}),1e3)}load(t,e){if(this.slide&&this.usePlaceholder())if(this.placeholder){const t=this.placeholder.element;t&&!t.parentElement&&this.slide.container.prepend(t)}else{const t=this.instance.applyFilters("placeholderSrc",!(!this.data.msrc||!this.slide.isFirstSlide)&&this.data.msrc,this);this.placeholder=new yo(t,this.slide.container)}this.element&&!e||this.instance.dispatch("contentLoad",{content:this,isLazy:t}).defaultPrevented||(this.isImageContent()?(this.element=Jt("pswp__img","img"),this.displayedImageWidth&&this.loadImage(t)):(this.element=Jt("pswp__content","div"),this.element.innerHTML=this.data.html||""),e&&this.slide&&this.slide.updateContentSize(!0))}loadImage(t){var e,n;if(!this.isImageContent()||!this.element||this.instance.dispatch("contentLoadImage",{content:this,isLazy:t}).defaultPrevented)return;const s=this.element;this.updateSrcsetSizes(),this.data.srcset&&(s.srcset=this.data.srcset),s.src=null!==(e=this.data.src)&&void 0!==e?e:"",s.alt=null!==(n=this.data.alt)&&void 0!==n?n:"",this.state=vt.LOADING,s.complete?this.onLoaded():(s.onload=()=>{this.onLoaded()},s.onerror=()=>{this.onError()})}setSlide(t){this.slide=t,this.hasSlide=!0,this.instance=t.pswp}onLoaded(){this.state=vt.LOADED,this.slide&&this.element&&(this.instance.dispatch("loadComplete",{slide:this.slide,content:this}),this.slide.isActive&&this.slide.heavyAppended&&!this.element.parentNode&&(this.append(),this.slide.updateContentSize(!0)),(this.state===vt.LOADED||this.state===vt.ERROR)&&this.removePlaceholder())}onError(){this.state=vt.ERROR,this.slide&&(this.displayError(),this.instance.dispatch("loadComplete",{slide:this.slide,isError:!0,content:this}),this.instance.dispatch("loadError",{slide:this.slide,content:this}))}isLoading(){return this.instance.applyFilters("isContentLoading",this.state===vt.LOADING,this)}isError(){return this.state===vt.ERROR}isImageContent(){return"image"===this.type}setDisplayedSize(t,e){if(this.element&&(this.placeholder&&this.placeholder.setDisplayedSize(t,e),!this.instance.dispatch("contentResize",{content:this,width:t,height:e}).defaultPrevented&&(Xe(this.element,t,e),this.isImageContent()&&!this.isError()))){const n=!this.displayedImageWidth&&t;this.displayedImageWidth=t,this.displayedImageHeight=e,n?this.loadImage(!1):this.updateSrcsetSizes(),this.slide&&this.instance.dispatch("imageSizeChange",{slide:this.slide,width:t,height:e,content:this})}}isZoomable(){return this.instance.applyFilters("isContentZoomable",this.isImageContent()&&this.state!==vt.ERROR,this)}updateSrcsetSizes(){if(!this.isImageContent()||!this.element||!this.data.srcset)return;const t=this.element,e=this.instance.applyFilters("srcsetSizesWidth",this.displayedImageWidth,this);(!t.dataset.largestUsedSize||e>parseInt(t.dataset.largestUsedSize,10))&&(t.sizes=e+"px",t.dataset.largestUsedSize=String(e))}usePlaceholder(){return this.instance.applyFilters("useContentPlaceholder",this.isImageContent(),this)}lazyLoad(){this.instance.dispatch("contentLazyLoad",{content:this}).defaultPrevented||this.load(!0)}keepPlaceholder(){return this.instance.applyFilters("isKeepingPlaceholder",this.isLoading(),this)}destroy(){this.hasSlide=!1,this.slide=void 0,!this.instance.dispatch("contentDestroy",{content:this}).defaultPrevented&&(this.remove(),this.placeholder&&(this.placeholder.destroy(),this.placeholder=void 0),this.isImageContent()&&this.element&&(this.element.onload=null,this.element.onerror=null,this.element=void 0))}displayError(){if(this.slide){var t,e;let n=Jt("pswp__error-msg","div");n.innerText=null!==(t=null===(e=this.instance.options)||void 0===e?void 0:e.errorMsg)&&void 0!==t?t:"",n=this.instance.applyFilters("contentErrorElement",n,this),this.element=Jt("pswp__content pswp__error-msg-container","div"),this.element.appendChild(n),this.slide.container.innerText="",this.slide.container.appendChild(this.element),this.slide.updateContentSize(!0),this.removePlaceholder()}}append(){if(this.isAttached||!this.element)return;if(this.isAttached=!0,this.state===vt.ERROR)return void this.displayError();if(this.instance.dispatch("contentAppend",{content:this}).defaultPrevented)return;const t="decode"in this.element;this.isImageContent()?t&&this.slide&&(!this.slide.isActive||$s())?(this.isDecoding=!0,this.element.decode().catch((()=>{})).finally((()=>{this.isDecoding=!1,this.appendImage()}))):this.appendImage():this.slide&&!this.element.parentNode&&this.slide.container.appendChild(this.element)}activate(){this.instance.dispatch("contentActivate",{content:this}).defaultPrevented||!this.slide||(this.isImageContent()&&this.isDecoding&&!$s()?this.appendImage():this.isError()&&this.load(!1,!0),this.slide.holderElement&&this.slide.holderElement.setAttribute("aria-hidden","false"))}deactivate(){this.instance.dispatch("contentDeactivate",{content:this}),this.slide&&this.slide.holderElement&&this.slide.holderElement.setAttribute("aria-hidden","true")}remove(){this.isAttached=!1,!this.instance.dispatch("contentRemove",{content:this}).defaultPrevented&&(this.element&&this.element.parentNode&&this.element.remove(),this.placeholder&&this.placeholder.element&&this.placeholder.element.remove())}appendImage(){this.isAttached&&(this.instance.dispatch("contentAppendImage",{content:this}).defaultPrevented||(this.slide&&this.element&&!this.element.parentNode&&this.slide.container.appendChild(this.element),(this.state===vt.LOADED||this.state===vt.ERROR)&&this.removePlaceholder()))}}function wo(t,e){if(t.getViewportSizeFn){const n=t.getViewportSizeFn(t,e);if(n)return n}return{x:document.documentElement.clientWidth,y:window.innerHeight}}function fe(t,e,n,s,i){let o=0;if(e.paddingFn)o=e.paddingFn(n,s,i)[t];else if(e.padding)o=e.padding[t];else{const n="padding"+t[0].toUpperCase()+t.slice(1);e[n]&&(o=e[n])}return Number(o)||0}function bo(t,e,n,s){return{x:e.x-fe("left",t,e,n,s)-fe("right",t,e,n,s),y:e.y-fe("top",t,e,n,s)-fe("bottom",t,e,n,s)}}const Ds=4e3;class So{constructor(t,e,n,s){this.pswp=s,this.options=t,this.itemData=e,this.index=n,this.panAreaSize=null,this.elementSize=null,this.fit=1,this.fill=1,this.vFill=1,this.initial=1,this.secondary=1,this.max=1,this.min=1}update(t,e,n){const s={x:t,y:e};this.elementSize=s,this.panAreaSize=n;const i=n.x/s.x,o=n.y/s.y;this.fit=Math.min(1,io?i:o),this.vFill=Math.min(1,o),this.initial=this._getInitial(),this.secondary=this._getSecondary(),this.max=Math.max(this.initial,this.secondary,this._getMax()),this.min=Math.min(this.fit,this.initial,this.secondary),this.pswp&&this.pswp.dispatch("zoomLevelsUpdate",{zoomLevels:this,slideData:this.itemData})}_parseZoomLevelOption(t){const e=t+"ZoomLevel",n=this.options[e];if(n)return"function"==typeof n?n(this):"fill"===n?this.fill:"fit"===n?this.fit:Number(n)}_getSecondary(){let t=this._parseZoomLevelOption("secondary");return t||(t=Math.min(1,3*this.fit),this.elementSize&&t*this.elementSize.x>Ds&&(t=Ds/this.elementSize.x),t)}_getInitial(){return this._parseZoomLevelOption("initial")||this.fit}_getMax(){return this._parseZoomLevelOption("max")||Math.max(1,4*this.fit)}}function sn(t,e,n){const s=e.createContentFromData(t,n);let i;const{options:o}=e;if(o){let r;i=new So(o,t,-1),r=e.pswp?e.pswp.viewportSize:wo(o,e);const l=bo(o,r,t,n);i.update(s.width,s.height,l)}return s.lazyLoad(),i&&s.setDisplayedSize(Math.ceil(s.width*i.initial),Math.ceil(s.height*i.initial)),s}function Eo(t,e){const n=e.getItemData(t);if(!e.dispatch("lazyLoadSlide",{index:t,itemData:n}).defaultPrevented)return sn(n,e,t)}class xo extends go{getNumItems(){var t;let e=0;const n=null===(t=this.options)||void 0===t?void 0:t.dataSource;n&&"length"in n?e=n.length:n&&"gallery"in n&&(n.items||(n.items=this._getGalleryDOMElements(n.gallery)),n.items&&(e=n.items.length));const s=this.dispatch("numItems",{dataSource:n,numItems:e});return this.applyFilters("numItems",s.numItems,n)}createContentFromData(t,e){return new vo(t,this,e)}getItemData(t){var e;const n=null===(e=this.options)||void 0===e?void 0:e.dataSource;let s={};Array.isArray(n)?s=n[t]:n&&"gallery"in n&&(n.items||(n.items=this._getGalleryDOMElements(n.gallery)),s=n.items[t]);let i=s;i instanceof Element&&(i=this._domElementToItemData(i));const o=this.dispatch("itemData",{itemData:i||{},index:t});return this.applyFilters("itemData",o.itemData,t)}_getGalleryDOMElements(t){var e,n;return null!==(e=this.options)&&void 0!==e&&e.children||null!==(n=this.options)&&void 0!==n&&n.childSelector?Qt(this.options.children,this.options.childSelector,t)||[]:[t]}_domElementToItemData(t){const e={element:t},n="A"===t.tagName?t:t.querySelector("a");if(n){e.src=n.dataset.pswpSrc||n.href,n.dataset.pswpSrcset&&(e.srcset=n.dataset.pswpSrcset),e.width=n.dataset.pswpWidth?parseInt(n.dataset.pswpWidth,10):0,e.height=n.dataset.pswpHeight?parseInt(n.dataset.pswpHeight,10):0,e.w=e.width,e.h=e.height,n.dataset.pswpType&&(e.type=n.dataset.pswpType);const i=t.querySelector("img");var s;if(i)e.msrc=i.currentSrc||i.src,e.alt=null!==(s=i.getAttribute("alt"))&&void 0!==s?s:"";(n.dataset.pswpCropped||n.dataset.cropped)&&(e.thumbCropped=!0)}return this.applyFilters("domItemData",e,t,n)}lazyLoadData(t,e){return sn(t,this,e)}}class _o extends xo{constructor(t){super(),this.options=t||{},this._uid=0,this.shouldOpen=!1,this._preloadedContent=void 0,this.onThumbnailsClick=this.onThumbnailsClick.bind(this)}init(){Qt(this.options.gallery,this.options.gallerySelector).forEach((t=>{t.addEventListener("click",this.onThumbnailsClick,!1)}))}onThumbnailsClick(t){if(po(t)||window.pswp)return;let e={x:t.clientX,y:t.clientY};!e.x&&!e.y&&(e=null);let n=this.getClickedIndex(t);n=this.applyFilters("clickedIndex",n,t,this);const s={gallery:t.currentTarget};n>=0&&(t.preventDefault(),this.loadAndOpen(n,s,e))}getClickedIndex(t){if(this.options.getClickedIndexFn)return this.options.getClickedIndexFn.call(this,t);const e=t.target,n=Qt(this.options.children,this.options.childSelector,t.currentTarget).findIndex((t=>t===e||t.contains(e)));return-1!==n?n:this.options.children||this.options.childSelector?-1:0}loadAndOpen(t,e,n){if(window.pswp||!this.options)return!1;if(!e&&this.options.gallery&&this.options.children){const t=Qt(this.options.gallery);t[0]&&(e={gallery:t[0]})}return this.options.index=t,this.options.initialPointerPos=n,this.shouldOpen=!0,this.preload(t,e),!0}preload(t,e){const{options:n}=this;e&&(n.dataSource=e);const s=[],i=typeof n.pswpModule;if(fo(n.pswpModule))s.push(Promise.resolve(n.pswpModule));else{if("string"===i)throw new Error("pswpModule as string is no longer supported");if("function"!==i)throw new Error("pswpModule is not valid");s.push(n.pswpModule())}"function"==typeof n.openPromise&&s.push(n.openPromise()),!1!==n.preloadFirstSlide&&t>=0&&(this._preloadedContent=Eo(t,this));const o=++this._uid;Promise.all(s).then((t=>{if(this.shouldOpen){const e=t[0];this._openPhotoswipe(e,o)}}))}_openPhotoswipe(t,e){if(e!==this._uid&&this.shouldOpen||(this.shouldOpen=!1,window.pswp))return;const n="object"==typeof t?new t.default(this.options):new t(this.options);this.pswp=n,window.pswp=n,Object.keys(this._listeners).forEach((t=>{var e;null===(e=this._listeners[t])||void 0===e||e.forEach((e=>{n.on(t,e)}))})),Object.keys(this._filters).forEach((t=>{var e;null===(e=this._filters[t])||void 0===e||e.forEach((e=>{n.addFilter(t,e.fn,e.priority)}))})),this._preloadedContent&&(n.contentLoader.addToCache(this._preloadedContent),this._preloadedContent=void 0),n.on("destroy",(()=>{this.pswp=void 0,delete window.pswp})),n.init()}destroy(){var t;null===(t=this.pswp)||void 0===t||t.destroy(),this.shouldOpen=!1,this._listeners={},Qt(this.options.gallery,this.options.gallerySelector).forEach((t=>{t.removeEventListener("click",this.onThumbnailsClick,!1)}))}}let te,Co=to((()=>import("./photoswipe.esm.CKijkUPa.js")),[]);function Hs(){te=new _o({gallery:".custom-md img, #post-cover img",pswpModule:()=>Co,closeSVG:'',zoomSVG:'',padding:{top:20,bottom:20,left:20,right:20},wheelToZoom:!0,arrowPrev:!1,arrowNext:!1,imageClickAction:"close",tapAction:"close",doubleTapAction:"zoom"}),te.addFilter("domItemData",((t,e)=>(e instanceof HTMLImageElement&&(t.src=e.src,t.w=Number(e.naturalWidth||window.innerWidth),t.h=Number(e.naturalHeight||window.innerHeight),t.msrc=e.src),t))),te.init()}const Ps=()=>{te||Hs(),window.swup.hooks.on("page:view",(()=>{Hs()})),window.swup.hooks.on("content:replace",(()=>{te?.destroy?.()}),{before:!0})};window.swup?Ps():document.addEventListener("swup:enable",Ps);const pt=(t,e)=>{const{o:n,i:s,u:i}=t;let o,r=n;const l=(t,e)=>{const n=r,l=t,a=e||(s?!s(n,l):n!==l);return(a||i)&&(r=l,o=n),[r,a,o]};return[e?t=>l(e(r,o),t):l,t=>[r,!!t,o]]},Io=typeof window<"u"&&typeof HTMLElement<"u"&&!!window.document,ut=Io?window:{},nn=Math.max,Lo=Math.min,Ye=Math.round,Se=Math.abs,Ms=Math.sign,on=ut.cancelAnimationFrame,ps=ut.requestAnimationFrame,Ee=ut.setTimeout,Je=ut.clearTimeout,Ae=t=>typeof ut[t]<"u"?ut[t]:void 0,To=Ae("MutationObserver"),ks=Ae("IntersectionObserver"),xe=Ae("ResizeObserver"),ye=Ae("ScrollTimeline"),fs=t=>void 0===t,Oe=t=>null===t,_t=t=>"number"==typeof t,oe=t=>"string"==typeof t,ms=t=>"boolean"==typeof t,wt=t=>"function"==typeof t,Ct=t=>Array.isArray(t),_e=t=>"object"==typeof t&&!Ct(t)&&!Oe(t),gs=t=>{const e=!!t&&t.length,n=_t(e)&&e>-1&&e%1==0;return!!(Ct(t)||!wt(t)&&n)&&(!(e>0&&_e(t))||e-1 in t)},Ce=t=>!!t&&t.constructor===Object,Ie=t=>t instanceof HTMLElement,$e=t=>t instanceof Element;function G(t,e){if(gs(t))for(let n=0;ne(t[n],n,t)));return t}const cn=(t,e)=>t.indexOf(e)>=0,ee=(t,e)=>t.concat(e),tt=(t,e,n)=>(!oe(e)&&gs(e)?Array.prototype.push.apply(t,e):t.push(e),t),Pt=t=>Array.from(t||[]),ys=t=>Ct(t)?t:!oe(t)&&gs(t)?Pt(t):[t],Qe=t=>!!t&&!t.length,ts=t=>Pt(new Set(t)),gt=(t,e,n)=>{G(t,(t=>!t||t.apply(void 0,e||[]))),!n&&(t.length=0)},rn="paddingTop",ln="paddingRight",an="paddingLeft",dn="paddingBottom",hn="marginLeft",un="marginRight",pn="marginBottom",fn="overflowX",mn="overflowY",De="width",He="height",$t="visible",kt="hidden",Wt="scroll",Ao=t=>{const e=String(t||"");return e?e[0].toUpperCase()+e.slice(1):""},Pe=(t,e,n,s)=>{if(t&&e){let s=!0;return G(n,(n=>{t[n]!==e[n]&&(s=!1)})),s}return!1},gn=(t,e)=>Pe(t,e,["w","h"]),ve=(t,e)=>Pe(t,e,["x","y"]),Oo=(t,e)=>Pe(t,e,["t","r","b","l"]),zt=()=>{},O=(t,...e)=>t.bind(0,...e),Ft=t=>{let e;const n=t?Ee:ps,s=t?Je:on;return[i=>{s(e),e=n((()=>i()),wt(t)?t():t)},()=>s(e)]},es=(t,e)=>{const{_:n,v:s,p:i,S:o}=e||{};let r,l,a,c,d=zt;const h=function(e){d(),Je(r),c=r=l=void 0,d=zt,t.apply(this,e)},p=t=>o&&l?o(l,t):t,u=()=>{d!==zt&&h(p(a)||a)},m=function(){const t=Pt(arguments),e=wt(n)?n():n;if(_t(e)&&e>=0){const n=wt(s)?s():s,o=_t(n)&&n>=0,m=e>0?Ee:ps,y=e>0?Je:on,f=p(t)||t,g=h.bind(0,f);let v;d(),i&&!c?(g(),c=!0,v=m((()=>c=void 0),e)):(v=m(g,e),o&&!r&&(r=Ee(u,n))),d=()=>y(v),l=a=f}else h(t)};return m.m=u,m},yn=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),bt=t=>t?Object.keys(t):[],Z=(t,e,n,s,i,o,r)=>{const l=[e,n,s,i,o,r];return("object"!=typeof t||Oe(t))&&!wt(t)&&(t={}),G(l,(e=>{G(e,((n,s)=>{const i=e[s];if(t===i)return!0;const o=Ct(i);if(i&&Ce(i)){const e=t[s];let n=e;o&&!Ct(e)?n=[]:!o&&!Ce(e)&&(n={}),t[s]=Z(n,i)}else t[s]=o?i.slice():i}))})),t},vn=(t,e)=>G(Z({},t),((t,e,n)=>{void 0===t?delete n[e]:t&&Ce(t)&&(n[e]=vn(t))})),vs=t=>!bt(t).length,wn=(t,e,n)=>nn(t,Lo(e,n)),Rt=t=>ts((Ct(t)?t:(t||"").split(" ")).filter((t=>t))),ws=(t,e)=>t&&t.getAttribute(e),zs=(t,e)=>t&&t.hasAttribute(e),Lt=(t,e,n)=>{G(Rt(e),(e=>{t&&t.setAttribute(e,String(n||""))}))},Et=(t,e)=>{G(Rt(e),(e=>t&&t.removeAttribute(e)))},Me=(t,e)=>{const n=Rt(ws(t,e)),s=O(Lt,t,e),i=(t,e)=>{const s=new Set(n);return G(Rt(t),(t=>{s[e](t)})),Pt(s).join(" ")};return{O:t=>s(i(t,"delete")),$:t=>s(i(t,"add")),C:t=>{const e=Rt(t);return e.reduce(((t,e)=>t&&n.includes(e)),e.length>0)}}},bn=(t,e,n)=>(Me(t,e).O(n),O(bs,t,e,n)),bs=(t,e,n)=>(Me(t,e).$(n),O(bn,t,e,n)),Le=(t,e,n,s)=>(s?bs:bn)(t,e,n),Ss=(t,e,n)=>Me(t,e).C(n),Sn=t=>Me(t,"class"),En=(t,e)=>{Sn(t).O(e)},Es=(t,e)=>(Sn(t).$(e),O(En,t,e)),xn=(t,e)=>{const n=e?$e(e)&&e:document;return n?Pt(n.querySelectorAll(t)):[]},$o=(t,e)=>{const n=e?$e(e)&&e:document;return n&&n.querySelector(t)},ss=(t,e)=>$e(t)&&t.matches(e),_n=t=>ss(t,"body"),ns=t=>t?Pt(t.childNodes):[],se=t=>t&&t.parentElement,qt=(t,e)=>$e(t)&&t.closest(e),os=t=>document.activeElement,Do=(t,e,n)=>{const s=qt(t,e),i=t&&$o(n,s),o=qt(i,e)===s;return!(!s||!i)&&(s===t||i===t||o&&qt(qt(t,n),e)!==s)},Zt=t=>{G(ys(t),(t=>{const e=se(t);t&&e&&e.removeChild(t)}))},ft=(t,e)=>O(Zt,t&&e&&G(ys(e),(e=>{e&&t.appendChild(e)}))),Bt=t=>{const e=document.createElement("div");return Lt(e,"class",t),e},Cn=t=>{const e=Bt();return e.innerHTML=t.trim(),G(ns(e),(t=>Zt(t)))},Rs=(t,e)=>t.getPropertyValue(e)||t[e]||"",In=t=>{const e=t||0;return isFinite(e)?e:0},me=t=>In(parseFloat(t||"")),is=t=>Math.round(1e4*t)/1e4,Ln=t=>`${is(In(t))}px`;function ne(t,e){t&&e&&G(e,((e,n)=>{try{const s=t.style,i=Oe(e)||ms(e)?"":_t(e)?Ln(e):e;0===n.indexOf("--")?s.setProperty(n,i):s[n]=i}catch{}}))}function At(t,e,n){const s=oe(e);let i=s?"":{};if(t){const o=ut.getComputedStyle(t,n)||t.style;i=s?Rs(o,e):Pt(e).reduce(((t,e)=>(t[e]=Rs(o,e),t)),i)}return i}const Ns=(t,e,n)=>{const s=e?`${e}-`:"",i=n?`-${n}`:"",o=`${s}top${i}`,r=`${s}right${i}`,l=`${s}bottom${i}`,a=`${s}left${i}`,c=At(t,[o,r,l,a]);return{t:me(c[o]),r:me(c[r]),b:me(c[l]),l:me(c[a])}},Ho=(t,e)=>"translate"+(_e(t)?`(${t.x},${t.y})`:`Y(${t})`),Po=t=>!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length),Mo={w:0,h:0},ke=(t,e)=>e?{w:e[`${t}Width`],h:e[`${t}Height`]}:Mo,ko=t=>ke("inner",t||ut),Vt=O(ke,"offset"),Tn=O(ke,"client"),Te=O(ke,"scroll"),xs=t=>{const e=parseFloat(At(t,De))||0,n=parseFloat(At(t,He))||0;return{w:e-Ye(e),h:n-Ye(n)}},Be=t=>t.getBoundingClientRect(),zo=t=>!!t&&Po(t),cs=t=>!(!t||!t[He]&&!t[De]),An=(t,e)=>{const n=cs(t);return!cs(e)&&n},Fs=(t,e,n,s)=>{G(Rt(e),(e=>{t&&t.removeEventListener(e,n,s)}))},Y=(t,e,n,s)=>{var i;const o=null==(i=s&&s.H)||i,r=s&&s.I||!1,l=s&&s.A||!1,a={passive:o,capture:r};return O(gt,Rt(e).map((e=>{const s=l?i=>{Fs(t,e,s,r),n&&n(i)}:n;return t&&t.addEventListener(e,s,a),O(Fs,t,e,s,r)})))},On=t=>t.stopPropagation(),rs=t=>t.preventDefault(),$n=t=>On(t)||rs(t),xt=(t,e)=>{const{x:n,y:s}=_t(e)?{x:e,y:e}:e||{};_t(n)&&(t.scrollLeft=n),_t(s)&&(t.scrollTop=s)},mt=t=>({x:t.scrollLeft,y:t.scrollTop}),Dn=()=>({D:{x:0,y:0},M:{x:0,y:0}}),Ro=(t,e)=>{const{D:n,M:s}=t,{w:i,h:o}=e,r=(t,e,n)=>{let s=Ms(t)*n,i=Ms(e)*n;if(s===i){const n=Se(t),o=Se(e);i=n>o?0:i,s=n{const n=(t,e)=>0===t&&t<=e;return{x:n(t.x,e.x),y:n(t.y,e.y)}},Bs=({D:t,M:e},n)=>{const s=(t,e,n)=>wn(0,1,(t-n)/(t-e)||0);return{x:s(t.x,e.x,n.x),y:s(t.y,e.y,n.y)}},ls=t=>{t&&t.focus&&t.focus({preventScroll:!0})},Vs=(t,e)=>{G(ys(e),t)},as=t=>{const e=new Map,n=(t,n)=>{if(t){const s=e.get(t);Vs((t=>{s&&s[t?"delete":"clear"](t)}),n)}else e.forEach((t=>{t.clear()})),e.clear()},s=(t,i)=>{if(oe(t)){const s=e.get(t)||new Set;return e.set(t,s),Vs((t=>{wt(t)&&s.add(t)}),i),O(n,t,i)}ms(i)&&i&&n();const o=bt(t),r=[];return G(o,(e=>{const n=t[e];n&&tt(r,s(e,n))})),O(gt,r)};return s(t||{}),[s,n,(t,n)=>{G(Pt(e.get(t)),(t=>{n&&!Qe(n)?t.apply(0,n):t()}))}]},Ws=t=>JSON.stringify(t,((t,e)=>{if(wt(e))throw 0;return e})),Zs=(t,e)=>t?`${e}`.split(".").reduce(((t,e)=>t&&yn(t,e)?t[e]:void 0),t):void 0,No={paddingAbsolute:!1,showNativeOverlaidScrollbars:!1,update:{elementEvents:[["img","load"]],debounce:[0,33],attributes:null,ignoreMutation:null},overflow:{x:"scroll",y:"scroll"},scrollbars:{theme:"os-theme-dark",visibility:"auto",autoHide:"never",autoHideDelay:1300,autoHideSuspend:!1,dragScroll:!0,clickScroll:!1,pointers:["mouse","touch","pen"]}},Hn=(t,e)=>{const n={};return G(ee(bt(e),bt(t)),(s=>{const i=t[s],o=e[s];if(_e(i)&&_e(o))Z(n[s]={},Hn(i,o)),vs(n[s])&&delete n[s];else if(yn(e,s)&&o!==i){let t=!0;if(Ct(i)||Ct(o))try{Ws(i)===Ws(o)&&(t=!1)}catch{}t&&(n[s]=o)}})),n},Us=(t,e,n)=>s=>[Zs(t,s),n||void 0!==Zs(e,s)],jt="data-overlayscrollbars",we="os-environment",ge=`${we}-scrollbar-hidden`,Ve=`${jt}-initialize`,be="noClipping",js=`${jt}-body`,Dt=jt,Fo="host",Tt=`${jt}-viewport`,qo=fn,Bo=mn,Vo="arrange",Pn="measuring",Wo="scrolling",Mn="scrollbarHidden",Zo="noContent",ds=`${jt}-padding`,Gs=`${jt}-content`,_s="os-size-observer",Uo=`${_s}-appear`,jo=`${_s}-listener`,Go="os-trinsic-observer",Ko="os-theme-none",yt="os-scrollbar",Xo=`${yt}-rtl`,Yo=`${yt}-horizontal`,Jo=`${yt}-vertical`,kn=`${yt}-track`,Cs=`${yt}-handle`,Qo=`${yt}-visible`,ti=`${yt}-cornerless`,Ks=`${yt}-interaction`,Xs=`${yt}-unusable`,hs=`${yt}-auto-hide`,Ys=`${hs}-hidden`,Js=`${yt}-wheel`,ei=`${kn}-interactive`,si=`${Cs}-interactive`;let zn;const ni=()=>zn,oi=t=>{zn=t};let We;const ii=()=>{const t=(t,e,n)=>{ft(document.body,t),ft(document.body,t);const s=Tn(t),i=Vt(t),o=xs(e);return n&&Zt(t),{x:i.h-s.h+o.h,y:i.w-s.w+o.w}},e=Cn(`
`)[0],n=e.firstChild,s=e.lastChild,i=ni();i&&(s.nonce=i);const[o,,r]=as(),[l,a]=pt({o:t(e,n),i:ve},O(t,e,n,!0)),[c]=a(),d=(t=>{let e=!1;const n=Es(t,ge);try{e="none"===At(t,"scrollbar-width")||"none"===At(t,"display","::-webkit-scrollbar")}catch{}return n(),e})(e),h={x:0===c.x,y:0===c.y},p={elements:{host:null,padding:!d,viewport:t=>d&&_n(t)&&t,content:!1},scrollbars:{slot:!0},cancel:{nativeScrollbarsOverlaid:!1,body:null}},u=Z({},No),m=O(Z,{},u),y=O(Z,{},p),f={T:c,k:h,R:d,V:!!ye,L:O(o,"r"),U:y,P:t=>Z(p,t)&&y(),N:m,q:t=>Z(u,t)&&m(),B:Z({},p),F:Z({},u)};if(Et(e,"style"),Zt(e),Y(ut,"resize",(()=>{r("r",[])})),wt(ut.matchMedia)&&!d&&(!h.x||!h.y)){const t=e=>{const n=ut.matchMedia(`(resolution: ${ut.devicePixelRatio}dppx)`);Y(n,"change",(()=>{e(),t(e)}),{A:!0})};t((()=>{const[t,e]=l();Z(f.T,t),r("r",[e])}))}return f},It=()=>(We||(We=ii()),We),Rn=(t,e)=>wt(e)?e.apply(0,t):e,ci=(t,e,n,s)=>{const i=fs(s)?n:s;return Rn(t,i)||e.apply(0,t)},Nn=(t,e,n,s)=>{const i=fs(s)?n:s,o=Rn(t,i);return!!o&&(Ie(o)?o:e.apply(0,t))},ri=(t,e)=>{const{nativeScrollbarsOverlaid:n,body:s}=e||{},{k:i,R:o,U:r}=It(),{nativeScrollbarsOverlaid:l,body:a}=r().cancel,c=n??l,d=fs(s)?a:s,h=(i.x||i.y)&&c,p=t&&(Oe(d)?!o:d);return!!h||!!p},Is=new WeakMap,li=(t,e)=>{Is.set(t,e)},ai=t=>{Is.delete(t)},Fn=t=>Is.get(t),di=(t,e,n)=>{let s=!1;const i=!!n&&new WeakMap,o=o=>{if(i&&n){G(n.map((e=>{const[n,s]=e||[];return[s&&n?(o||xn)(n,t):[],s]})),(n=>G(n[0],(o=>{const r=n[1],l=i.get(o)||[];if(t.contains(o)&&r){const t=Y(o,r,(n=>{s?(t(),i.delete(o)):e(n)}));i.set(o,tt(l,t))}else gt(l),i.delete(o)}))))}};return o(),[()=>{s=!0},o]},Qs=(t,e,n,s)=>{let i=!1;const{j:o,X:r,Y:l,W:a,J:c,G:d}=s||{},h=es((()=>i&&n(!0)),{_:33,v:99}),[p,u]=di(t,h,l),m=r||[],y=ee(o||[],m),f=(i,o)=>{if(!Qe(o)){const r=c||zt,l=d||zt,h=[],p=[];let y=!1,f=!1;if(G(o,(n=>{const{attributeName:i,target:o,type:c,oldValue:d,addedNodes:u,removedNodes:g}=n,v="attributes"===c,w="childList"===c,b=t===o,x=v&&i,E=x&&ws(o,i||""),O=oe(E)?E:null,L=x&&d!==O,S=cn(m,i)&&L;if(e&&(w||!b)){const e=v&&L,c=e&&a&&ss(o,a),p=(c?!r(o,i,d,O):!v||e)&&!l(n,!!c,t,s);G(u,(t=>tt(h,t))),G(g,(t=>tt(h,t))),f=f||p}!e&&b&&L&&!r(o,i,d,O)&&(tt(p,i),y=y||S)})),u((t=>ts(h).reduce(((e,n)=>(tt(e,xn(t,n)),ss(n,t)?tt(e,n):e)),[]))),e)return!i&&f&&n(!1),[!1];if(!Qe(p)||y){const t=[ts(p),y];return!i&&n.apply(0,t),t}}},g=new To(O(f,!1));return[()=>(g.observe(t,{attributes:!0,attributeOldValue:!0,attributeFilter:y,subtree:e,childList:e,characterData:e}),i=!0,()=>{i&&(p(),g.disconnect(),i=!1)}),()=>{if(i)return h.m(),f(!0,g.takeRecords())}]},qn={},Bn={},hi=t=>{G(t,(t=>G(t,((e,n)=>{qn[n]=t[n]}))))},Vn=(t,e,n)=>bt(t).map((s=>{const{static:i,instance:o}=t[s],[r,l,a]=n||[],c=n?o:i;if(c){const t=n?c(r,l,e):c(e);return(a||Bn)[s]=t}})),ie=t=>Bn[t],ui="__osOptionsValidationPlugin",pi="__osSizeObserverPlugin",fi=(t,e)=>{const{k:n}=e,[s,i]=t("showNativeOverlaidScrollbars");return[s&&n.x&&n.y,i]},Ut=t=>0===t.indexOf($t),mi=(t,e)=>{const n=(t,e,n,s)=>{const i=t===$t?kt:t.replace(`${$t}-`,""),o=Ut(t),r=Ut(n);return e||s?o&&r?$t:o?e&&s?i:e?$t:kt:e?i:r&&s?$t:kt:kt},s={x:n(e.x,t.x,e.y,t.y),y:n(e.y,t.y,e.x,t.x)};return{K:s,Z:{x:s.x===Wt,y:s.y===Wt}}},Wn="__osScrollbarsHidingPlugin",gi="__osClickScrollPlugin",Zn=(t,e,n)=>{const{dt:s}=n||{},i=ie(pi),[o]=pt({o:!1,u:!0});return()=>{const n=[],r=Cn(`
`)[0],l=r.firstChild,a=t=>{let n=!1,s=!1;if(t instanceof ResizeObserverEntry){const[e,,i]=o(t.contentRect),r=cs(e);s=An(e,i),n=!s&&!r}else s=!0===t;n||e({ft:!0,dt:s})};if(xe){const t=new xe((t=>a(t.pop())));t.observe(l),tt(n,(()=>{t.disconnect()}))}else{if(!i)return zt;{const[t,e]=i(l,a,s);tt(n,ee([Es(r,Uo),Y(r,"animationstart",t)],e))}}return O(gt,tt(n,ft(t,r)))}},yi=(t,e)=>{let n;const s=Bt(Go),[i]=pt({o:!1}),o=(t,n)=>{if(t){const s=i((t=>0===t.h||t.isIntersecting||t.intersectionRatio>0)(t)),[,o]=s;return o&&!n&&e(s)&&[s]}},r=(t,e)=>o(e.pop(),t);return[()=>{const e=[];if(ks)n=new ks(O(r,!1),{root:t}),n.observe(s),tt(e,(()=>{n.disconnect()}));else{const t=()=>{const t=Vt(s);o(t)};tt(e,Zn(s,t)()),t()}return O(gt,tt(e,ft(t,s)))},()=>n&&r(!0,n.takeRecords())]},vi=(t,e,n,s)=>{let i,o,r,l,a,c;const d=`[${Dt}]`,h=`[${Tt}]`,p=["id","class","style","open","wrap","cols","rows"],{vt:u,ht:m,ot:y,gt:f,bt:g,nt:v,wt:w,yt:b,St:x,Ot:E}=t,O=t=>"rtl"===At(t,"direction"),L={$t:!1,ct:O(u)},S=It(),I=ie(Wn),[C]=pt({i:gn,o:{w:0,h:0}},(()=>{const s=I&&I.tt(t,e,L,S,n).ut,i=!(w&&v)&&Ss(m,Dt,be),o=!v&&b(Vo),r=o&&mt(f),l=r&&E(),a=x(Pn,i),c=o&&s&&s()[0],d=Te(y),h=xs(y);return c&&c(),xt(f,r),l&&l(),i&&a(),{w:d.w+h.w,h:d.h+h.h}})),_=es(s,{_:()=>i,v:()=>o,S(t,e){const[n]=t,[s]=e;return[ee(bt(n),bt(s)).reduce(((t,e)=>(t[e]=n[e]||s[e],t)),{})]}}),D=t=>{const e=O(u);Z(t,{Ct:c!==e}),Z(L,{ct:e}),c=e},T=(t,e)=>{const[n,i]=t,o={xt:i};return Z(L,{$t:n}),!e&&s(o),o},$=({ft:t,dt:e})=>{const n=t&&!e||!S.R?s:_,i={ft:t||e,dt:e};D(i),n(i)},A=(t,e)=>{const[,n]=C(),i={Ht:n};return D(i),n&&!e&&(t?s:_)(i),i},k=(t,e,n)=>{const s={Et:e};return D(s),e&&!n&&_(s),s},[M,P]=g?yi(m,T):[],z=!v&&Zn(m,$,{dt:!0}),[H,q]=Qs(m,!1,k,{X:p,j:p}),R=v&&xe&&new xe((t=>{const e=t[t.length-1].contentRect;$({ft:!0,dt:An(e,a)}),a=e})),F=es((()=>{const[,t]=C();s({Ht:t})}),{_:222,p:!0});return[()=>{R&&R.observe(m);const t=z&&z(),e=M&&M(),n=H(),s=S.L((t=>{t?_({zt:t}):F()}));return()=>{R&&R.disconnect(),t&&t(),e&&e(),l&&l(),n(),s()}},({It:t,At:e,Dt:n})=>{const s={},[a]=t("update.ignoreMutation"),[c,u]=t("update.attributes"),[m,f]=t("update.elementEvents"),[w,b]=t("update.debounce"),x=e||n;if(f||u){r&&r(),l&&l();const[t,e]=Qs(g||y,!0,A,{j:ee(p,c||[]),Y:m,W:d,G:(t,e)=>{const{target:n,attributeName:s}=t;return!(e||!s||v)&&Do(n,d,h)||!!qt(n,`.${yt}`)||!!(t=>wt(a)&&a(t))(t)}});l=t(),r=e}if(b)if(_.m(),Ct(w)){const t=w[0],e=w[1];i=_t(t)&&t,o=_t(e)&&e}else _t(w)?(i=w,o=!1):(i=!1,o=!1);if(x){const t=q(),e=P&&P(),n=r&&r();t&&Z(s,k(t[0],t[1],x)),e&&Z(s,T(e[0],x)),n&&Z(s,A(n[0],x))}return D(s),s},L]},wi=(t,e,n,s)=>{const i="--os-viewport-percent",o="--os-scroll-percent",r="--os-scroll-direction",{U:l}=It(),{scrollbars:a}=l(),{slot:c}=a,{vt:d,ht:h,ot:p,Mt:u,gt:m,wt:y,nt:f}=e,{scrollbars:g}=u?{}:t,{slot:v}=g||{},w=[],b=[],x=[],E=Nn([d,h,p],(()=>f&&y?d:h),c,v),L=t=>{if(ye){const e=new ye({source:m,axis:t});return{kt:t=>{const n=t.Tt.animate({clear:["left"],[o]:[0,1]},{timeline:e});return()=>n.cancel()}}}},S={x:L("x"),y:L("y")},I=(t,e,n)=>{const s=n?Es:En;G(t,(t=>{s(t.Tt,e)}))},C=(t,e)=>{G(t,(t=>{const[n,s]=e(t);ne(n,s)}))},_=(t,e,n)=>{const s=ms(n),i=!s||!n;(!s||n)&&I(b,t,e),i&&I(x,t,e)},D=t=>{const e=t?"x":"y",n=Bt(`${yt} ${t?Yo:Jo}`),i=Bt(kn),o=Bt(Cs),r={Tt:n,Ut:i,Pt:o},l=S[e];return tt(t?b:x,r),tt(w,[ft(n,i),ft(i,o),O(Zt,n),l&&l.kt(r),s(r,_,t)]),r},T=O(D,!0),$=O(D,!1);return T(),$(),[{Nt:()=>{const t=(()=>{const{Rt:t,Vt:e}=n,s=(t,e)=>wn(0,1,t/(t+e)||0);return{x:s(e.x,t.x),y:s(e.y,t.y)}})(),e=t=>e=>[e.Tt,{[i]:is(t)+""}];C(b,e(t.x)),C(x,e(t.y))},qt:()=>{if(!ye){const{Lt:t}=n,e=Bs(t,mt(m)),s=t=>e=>[e.Tt,{[o]:is(t)+""}];C(b,s(e.x)),C(x,s(e.y))}},Bt:()=>{const{Lt:t}=n,e=qs(t),s=t=>e=>[e.Tt,{[r]:t?"0":"1"}];C(b,s(e.x)),C(x,s(e.y))},Ft:()=>{if(f&&!y){const{Rt:t,Lt:e}=n,s=qs(e),i=Bs(e,mt(m)),o=e=>{const{Tt:n}=e,o=se(n)===p&&n,r=(t,e,n)=>{const s=e*t;return Ln(n?s:-s)};return[o,o&&{transform:Ho({x:r(i.x,t.x,s.x),y:r(i.y,t.y,s.y)})}]};C(b,o),C(x,o)}},jt:_,Xt:{Yt:b,Wt:T,Jt:O(C,b)},Gt:{Yt:x,Wt:$,Jt:O(C,x)}},()=>(ft(E,b[0].Tt),ft(E,x[0].Tt),O(gt,w))]},bi=(t,e,n,s)=>(i,o,r)=>{const{ht:l,ot:a,nt:c,gt:d,Kt:h,Ot:p}=e,{Tt:u,Ut:m,Pt:y}=i,[f,g]=Ft(333),[v,w]=Ft(444),b=t=>{wt(d.scrollBy)&&d.scrollBy({behavior:"smooth",left:t.x,top:t.y})};let x=!0;return O(gt,[Y(y,"pointermove pointerleave",s),Y(u,"pointerenter",(()=>{o(Ks,!0)})),Y(u,"pointerleave pointercancel",(()=>{o(Ks,!1)})),!c&&Y(u,"mousedown",(()=>{const t=os();(zs(t,Tt)||zs(t,Dt)||t===document.body)&&Ee(O(ls,a),25)})),Y(u,"wheel",(t=>{const{deltaX:e,deltaY:n,deltaMode:s}=t;x&&0===s&&se(u)===l&&b({x:e,y:n}),x=!1,o(Js,!0),f((()=>{x=!0,o(Js)})),rs(t)}),{H:!1,I:!0}),Y(u,"pointerdown",O(Y,h,"click",$n,{A:!0,I:!0,H:!1}),{I:!0}),(()=>{const e="pointerup pointercancel lostpointercapture",s="client"+(r?"X":"Y"),i=r?De:He,o=r?"left":"top",l=r?"w":"h",a=r?"x":"y",c=[];return Y(m,"pointerdown",(r=>{const u=qt(r.target,`.${Cs}`)===y,f=u?y:m,g=t.scrollbars,x=g[u?"dragScroll":"clickScroll"],{button:E,isPrimary:L,pointerType:S}=r,{pointers:I}=g;if(0===E&&L&&x&&(I||[]).includes(S)){gt(c),w();const t=!u&&(r.shiftKey||"instant"===x),g=O(Be,y),E=O(Be,m),L=(t,e)=>(t||g())[o]-(e||E())[o],S=Ye(Be(d)[i])/Vt(d)[l]||1,I=((t,e)=>s=>{const{Rt:i}=n,o=Vt(m)[l]-Vt(y)[l],r=e*s/o*i[a];xt(d,{[a]:t+r})})(mt(d)[a],1/S),C=r[s],_=g(),D=E(),T=_[i],$=L(_,D)+T/2,A=C-D[o],k=u?0:A-$,M=t=>{gt(z),f.releasePointerCapture(t.pointerId)},Z=u||t,P=p(),z=[Y(h,e,M),Y(h,"selectstart",(t=>rs(t)),{H:!1}),Y(m,e,M),Z&&Y(m,"pointermove",(t=>I(k+(t[s]-C)))),Z&&(()=>{const t=mt(d);P();const e=mt(d),n={x:e.x-t.x,y:e.y-t.y};(Se(n.x)>3||Se(n.y)>3)&&(p(),xt(d,t),b(n),v(P))})];if(f.setPointerCapture(r.pointerId),t)I(k);else if(!u){const t=ie(gi);if(t){const e=t(I,k,T,(t=>{t?P():tt(z,P)}));tt(z,e),tt(c,O(e,!0))}}}}))})(),g,w])},Si=(t,e,n,s,i,o)=>{let r,l,a,c,d,h=zt,p=0;const u=t=>"mouse"===t.pointerType,[m,y]=Ft(),[f,g]=Ft(100),[v,w]=Ft(100),[b,x]=Ft((()=>p)),[E,L]=wi(t,i,s,bi(e,i,s,(t=>u(t)&&M()))),{ht:S,Qt:I,wt:C}=i,{jt:_,Nt:D,qt:T,Bt:$,Ft:A}=E,k=(t,e)=>{if(x(),t)_(Ys);else{const t=O(_,Ys,!0);p>0&&!e?b(t):t()}},M=()=>{(a?!r:!c)&&(k(!0),f((()=>{k(!1)})))},Z=t=>{_(hs,t,!0),_(hs,t,!1)},P=t=>{u(t)&&(r=a,a&&k(!0))},z=[x,g,w,y,()=>h(),Y(S,"pointerover",P,{A:!0}),Y(S,"pointerenter",P),Y(S,"pointerleave",(t=>{u(t)&&(r=!1,a&&k(!1))})),Y(S,"pointermove",(t=>{u(t)&&l&&M()})),Y(I,"scroll",(t=>{m((()=>{T(),M()})),o(t),A()}))];return[()=>O(gt,tt(z,L())),({It:t,Dt:e,Zt:i,tn:o})=>{const{nn:r,sn:u,en:m,cn:y}=o||{},{Ct:f,dt:g}=i||{},{ct:w}=n,{k:b}=It(),{K:x,rn:E}=s,[L,S]=t("showNativeOverlaidScrollbars"),[M,P]=t("scrollbars.theme"),[z,H]=t("scrollbars.visibility"),[q,R]=t("scrollbars.autoHide"),[F,G]=t("scrollbars.autoHideSuspend"),[B]=t("scrollbars.autoHideDelay"),[N,j]=t("scrollbars.dragScroll"),[W,U]=t("scrollbars.clickScroll"),[V,K]=t("overflow"),J=g&&!e,Q=E.x||E.y,X=r||u||y||f||e,tt=m||H||K,et=L&&b.x&&b.y,nt=(t,e,n)=>{const s=t.includes(Wt)&&(z===$t||"auto"===z&&e===Wt);return _(Qo,s,n),s};if(p=B,J&&(F&&Q?(Z(!1),h(),v((()=>{h=Y(I,"scroll",O(Z,!0),{A:!0})}))):Z(!0)),S&&_(Ko,et),P&&(_(d),_(M,!0),d=M),G&&!F&&Z(!0),R&&(l="move"===q,a="leave"===q,c="never"===q,k(c,!0)),j&&_(si,N),U&&_(ei,!!W),tt){const t=nt(V.x,x.x,!0),e=nt(V.y,x.y,!1);_(ti,!(t&&e))}X&&(T(),D(),A(),y&&$(),_(Xs,!E.x,!0),_(Xs,!E.y,!1),_(Xo,w&&!C))},{},E]},Ei=t=>{const e=It(),{U:n,R:s}=e,{elements:i}=n(),{padding:o,viewport:r,content:l}=i,a=Ie(t),c=a?{}:t,{elements:d}=c,{padding:h,viewport:p,content:u}=d||{},m=a?t:c.target,y=_n(m),f=m.ownerDocument,g=f.documentElement,v=()=>f.defaultView||ut,w=O(ci,[m]),b=O(Nn,[m]),x=O(Bt,""),E=O(w,x,r),L=O(b,x,l),S=E(p),I=S===m,C=I&&y,_=!I&&L(u),D=!I&&S===_,T=C?g:S,$=C?T:m,A=!I&&b(x,o,h),k=!D&&_,M=[k,T,A,$].map((t=>Ie(t)&&!se(t)&&t)),Z=t=>t&&cn(M,t),P=!Z(T)&&(t=>{const e=Vt(t),n=Te(t),s=At(t,fn),i=At(t,mn);return n.w-e.w>0&&!Ut(s)||n.h-e.h>0&&!Ut(i)})(T)?T:m,z=C?g:T,H={vt:m,ht:$,ot:T,ln:A,bt:k,gt:z,Qt:C?f:T,an:y?g:P,Kt:f,wt:y,Mt:a,nt:I,un:v,yt:t=>Ss(T,Tt,t),St:(t,e)=>Le(T,Tt,t,e),Ot:()=>Le(z,Tt,Wo,!0)},{vt:q,ht:R,ln:F,ot:G,bt:B}=H,N=[()=>{Et(R,[Dt,Ve]),Et(q,Ve),y&&Et(g,[Ve,Dt])}];let j=ns([B,G,F,R,q].find((t=>t&&!Z(t))));const W=C?q:B||G,U=O(gt,N);return[H,()=>{const t=v(),e=os(),n=t=>{ft(se(t),ns(t)),Zt(t)},i=t=>Y(t,"focusin focusout focus blur",$n,{I:!0,H:!1}),o="tabindex",r=ws(G,o),l=i(e);return Lt(R,Dt,I?"":Fo),Lt(F,ds,""),Lt(G,Tt,""),Lt(B,Gs,""),I||(Lt(G,o,r||"-1"),y&&Lt(g,js,"")),ft(W,j),ft(R,F),ft(F||R,!I&&G),ft(G,B),tt(N,[l,()=>{const t=os(),e=Z(G),s=e&&t===G?q:t,l=i(s);Et(F,ds),Et(B,Gs),Et(G,Tt),y&&Et(g,js),r?Lt(G,o,r):Et(G,o),Z(B)&&n(B),e&&n(G),Z(F)&&n(F),ls(s),l()}]),s&&!I&&(bs(G,Tt,Mn),tt(N,O(Et,G,Tt))),ls(!I&&y&&e===q&&t.top===t?G:e),l(),j=0,U},U]},xi=({bt:t})=>({Zt:e,_n:n,Dt:s})=>{const{xt:i}=e||{},{$t:o}=n;t&&(i||s)&&ne(t,{[He]:o&&"100%"})},_i=({ht:t,ln:e,ot:n,nt:s},i)=>{const[o,r]=pt({i:Oo,o:Ns()},O(Ns,t,"padding",""));return({It:t,Zt:l,_n:a,Dt:c})=>{let[d,h]=r(c);const{R:p}=It(),{ft:u,Ht:m,Ct:y}=l||{},{ct:f}=a,[g,v]=t("paddingAbsolute");(u||h||c||m)&&([d,h]=o(c));const w=!s&&(v||y||h);if(w){const t=!g||!e&&!p,s=d.r+d.l,o=d.t+d.b,r={[un]:t&&!f?-s:0,[pn]:t?-o:0,[hn]:t&&f?-s:0,top:t?-d.t:0,right:t?f?-d.r:"auto":0,left:t?f?"auto":-d.l:0,[De]:t&&`calc(100% + ${s}px)`},l={[rn]:t?d.t:0,[ln]:t?d.r:0,[dn]:t?d.b:0,[an]:t?d.l:0};ne(e||n,r),ne(n,l),Z(i,{ln:d,dn:!t,rt:e?l:Z({},r,l)})}return{fn:w}}},Ci=(t,e)=>{const n=It(),{ht:s,ln:i,ot:o,nt:r,Qt:l,gt:a,wt:c,St:d,un:h}=t,{R:p}=n,u=c&&r,m=O(nn,0),y={display:()=>!1,direction:t=>"ltr"!==t,flexDirection:t=>t.endsWith("-reverse"),writingMode:t=>"horizontal-tb"!==t},f=bt(y),g={i:gn,o:{w:0,h:0}},v={i:ve,o:{}},w=t=>{d(Pn,!u&&t)},[b,x]=pt(g,O(xs,o)),[E,L]=pt(g,O(Te,o)),[S,I]=pt(g),[C]=pt(v),[_,D]=pt(g),[T]=pt(v),[$]=pt({i:(t,e)=>Pe(t,e,f),o:{}},(()=>zo(o)?At(o,f):{})),[A,k]=pt({i:(t,e)=>ve(t.D,e.D)&&ve(t.M,e.M),o:Dn()}),M=ie(Wn),P=(t,e)=>`${e?qo:Bo}${Ao(t)}`;return({It:r,Zt:c,_n:g,Dt:v},{fn:O})=>{const{ft:z,Ht:H,Ct:q,dt:R,zt:F}=c||{},G=M&&M.tt(t,e,g,n,r),{it:B,ut:N,_t:j}=G||{},[W,U]=fi(r,n),[V,K]=r("overflow"),J=Ut(V.x),Q=Ut(V.y);let X=x(v),tt=L(v),et=I(v),nt=D(v);U&&p&&d(Mn,!W);{Ss(s,Dt,be)&&w(!0);const[t]=N?N():[],[e]=X=b(v),[n]=tt=E(v),i=Tn(o),r=u&&ko(h()),l={w:m(n.w+e.w),h:m(n.h+e.h)},a={w:m((r?r.w:i.w+m(i.w-n.w))+e.w),h:m((r?r.h:i.h+m(i.h-n.h))+e.h)};t&&t(),nt=_(a),et=S(((t,e)=>{const n=ut.devicePixelRatio%1!=0?1:0,s={w:m(t.w-e.w),h:m(t.h-e.h)};return{w:s.w>n?s.w:0,h:s.h>n?s.h:0}})(l,a),v)}const[st,it]=nt,[ot,rt]=et,[lt,at]=tt,[ct,dt]=X,[ht,pt]=C({x:ot.w>0,y:ot.h>0}),yt=J&&Q&&(ht.x||ht.y)||J&&ht.x&&!ht.y||Q&&ht.y&&!ht.x,ft=O||q||F||dt||at||it||rt||K||U||!0,gt=mi(ht,V),[vt,wt]=T(gt.K),[Et,Ot]=$(v),Lt=q||R||Ot||pt||v,[St,It]=Lt?A((t=>{if(!f.some((e=>{const n=t[e];return n&&y[e](n)})))return{D:{x:0,y:0},M:{x:1,y:1}};w(!0);const e=mt(a),n=d(Zo,!0),s=Y(l,Wt,(t=>{const n=mt(a);t.isTrusted&&n.x===e.x&&n.y===e.y&&On(t)}),{I:!0,A:!0});xt(a,{x:0,y:0}),n();const i=mt(a),o=Te(a);xt(a,{x:o.w,y:o.h});const r=mt(a);xt(a,{x:r.x-i.x<1&&-o.w,y:r.y-i.y<1&&-o.h});const c=mt(a);return xt(a,e),ps((()=>s())),{D:i,M:c}})(Et),v):k();return ft&&(wt&&(t=>{const e=t=>[$t,kt,Wt].map((e=>P(e,t))),n=e(!0).concat(e()).join(" ");d(n),d(bt(t).map((e=>P(t[e],"x"===e))).join(" "),!0)})(gt.K),j&&B&&ne(o,j(gt,g,B(gt,lt,ct)))),w(!1),Le(s,Dt,be,yt),Le(i,ds,be,yt),Z(e,{K:vt,Vt:{x:st.w,y:st.h},Rt:{x:ot.w,y:ot.h},rn:ht,Lt:Ro(St,ot)}),{en:wt,nn:it,sn:rt,cn:It||rt,vn:Lt}}},Ii=t=>{const[e,n,s]=Ei(t),i={ln:{t:0,r:0,b:0,l:0},dn:!1,rt:{[un]:0,[pn]:0,[hn]:0,[rn]:0,[ln]:0,[dn]:0,[an]:0},Vt:{x:0,y:0},Rt:{x:0,y:0},K:{x:kt,y:kt},rn:{x:!1,y:!1},Lt:Dn()},{vt:o,gt:r,nt:l,Ot:a}=e,{R:c,k:d}=It(),h=!c&&(d.x||d.y),p=[xi(e),_i(e,i),Ci(e,i)];return[n,t=>{const e={},n=h&&mt(r),s=n&&a();return G(p,(n=>{Z(e,n(t,e)||{})})),xt(r,n),s&&s(),!l&&xt(o,0),e},i,e,s]},Li=(t,e,n,s,i)=>{let o=!1;const r=Us(e,{}),[l,a,c,d,h]=Ii(t),[p,u,m]=vi(d,c,r,(t=>{w({},t)})),[y,f,,g]=Si(t,e,m,c,d,i),v=t=>bt(t).some((e=>!!t[e])),w=(t,i)=>{if(n())return!1;const{pn:r,Dt:l,At:c,hn:d}=t,h=r||{},p=!!l||!o,y={It:Us(e,h,p),pn:h,Dt:p};if(d)return f(y),!1;const g=i||u(Z({},y,{At:c})),w=a(Z({},y,{_n:m,Zt:g}));f(Z({},y,{Zt:g,tn:w}));const b=v(g),x=v(w),E=b||x||!vs(h)||p;return o=!0,E&&s(t,{Zt:g,tn:w}),E};return[()=>{const{an:t,gt:e,Ot:n}=d,s=mt(t),i=[p(),l(),y()],o=n();return xt(e,s),o(),O(gt,i)},w,()=>({gn:m,bn:c}),{wn:d,yn:g},h]},Ht=(t,e,n)=>{const{N:s}=It(),i=Ie(t),o=i?t:t.target,r=Fn(o);if(e&&!r){let r=!1;const l=[],a={},c=t=>{const e=vn(t),n=ie(ui);return n?n(e,!0):e},d=Z({},s(),c(e)),[h,p,u]=as(),[m,y,f]=as(n),g=(t,e)=>{f(t,e),u(t,e)},[v,w,b,x,E]=Li(t,d,(()=>r),(({pn:t,Dt:e},{Zt:n,tn:s})=>{const{ft:i,Ct:o,xt:r,Ht:l,Et:a,dt:c}=n,{nn:d,sn:h,en:p,cn:u}=s;g("updated",[S,{updateHints:{sizeChanged:!!i,directionChanged:!!o,heightIntrinsicChanged:!!r,overflowEdgeChanged:!!d,overflowAmountChanged:!!h,overflowStyleChanged:!!p,scrollCoordinatesChanged:!!u,contentMutation:!!l,hostMutation:!!a,appear:!!c},changedOptions:t||{},force:!!e}])}),(t=>g("scroll",[S,t]))),L=t=>{ai(o),gt(l),r=!0,g("destroyed",[S,t]),p(),y()},S={options(t,e){if(t){const n=e?s():{},i=Hn(d,Z(n,c(t)));vs(i)||(Z(d,i),w({pn:i}))}return Z({},d)},on:m,off:(t,e)=>{t&&e&&y(t,e)},state(){const{gn:t,bn:e}=b(),{ct:n}=t,{Vt:s,Rt:i,K:o,rn:l,ln:a,dn:c,Lt:d}=e;return Z({},{overflowEdge:s,overflowAmount:i,overflowStyle:o,hasOverflow:l,scrollCoordinates:{start:d.D,end:d.M},padding:a,paddingAbsolute:c,directionRTL:n,destroyed:r})},elements(){const{vt:t,ht:e,ln:n,ot:s,bt:i,gt:o,Qt:r}=x.wn,{Xt:l,Gt:a}=x.yn,c=t=>{const{Pt:e,Ut:n,Tt:s}=t;return{scrollbar:s,track:n,handle:e}},d=t=>{const{Yt:e,Wt:n}=t,s=c(e[0]);return Z({},s,{clone:()=>{const t=c(n());return w({hn:!0}),t}})};return Z({},{target:t,host:e,padding:n||s,viewport:s,content:i||s,scrollOffsetElement:o,scrollEventElement:r,scrollbarHorizontal:d(l),scrollbarVertical:d(a)})},update:t=>w({Dt:t,At:!0}),destroy:O(L,!1),plugin:t=>a[bt(t)[0]]};return tt(l,[E]),li(o,S),Vn(qn,Ht,[S,h,a]),ri(x.wn.wt,!i&&t.cancel)?(L(!0),S):(tt(l,v()),g("initialized",[S]),S.update(),S)}return r};Ht.plugin=t=>{const e=Ct(t),n=e?t:[t],s=n.map((t=>Vn(t,Ht)[0]));return hi(n),e?s:s[0]},Ht.valid=t=>{const e=t&&t.elements,n=wt(e)&&e();return Ce(n)&&!!Fn(n.target)},Ht.env=()=>{const{T:t,k:e,R:n,V:s,B:i,F:o,U:r,P:l,N:a,q:c}=It();return Z({},{scrollbarsSize:t,scrollbarsOverlaid:e,scrollbarsHiding:n,scrollTimeline:s,staticDefaultInitialization:i,staticDefaultOptions:o,getDefaultInitialization:r,setDefaultInitialization:l,getDefaultOptions:a,setDefaultOptions:c})},Ht.nonce=oi;const us=!!document.getElementById("banner-wrapper");function Ls(t,e){document.addEventListener("click",(n=>{let s=document.getElementById(t),i=n.target;if(i instanceof Node){for(let t of e){let e=document.getElementById(t);if(e==i||e?.contains(i))return}s.classList.add("float-panel-closed")}}))}function Ti(){const t=so();no(t)}function Ai(){oo(io())}function Un(){const t=document.querySelector("body");t&&(Ht({target:t,cancel:{nativeScrollbarsOverlaid:!0}},{scrollbars:{theme:"scrollbar-base scrollbar-auto py-1",autoHide:"move",autoHideDelay:500,autoHideSuspend:!1}}),document.querySelectorAll("pre").forEach((t=>{Ht(t,{scrollbars:{theme:"scrollbar-base scrollbar-dark px-2",autoHide:"leave",autoHideDelay:500,autoHideSuspend:!1}})})))}function Oi(){const t=document.getElementById("banner");t?t.classList.remove("opacity-0","scale-105"):console.error("Failed to find the banner element")}function jn(){Ti(),Ai(),Un(),Oi()}Ls("display-setting",["display-setting","display-settings-switch"]),Ls("nav-menu-panel",["nav-menu-panel","nav-menu-switch"]),Ls("search-panel",["search-panel","search-bar","search-switch"]),jn(),document.addEventListener("astro:after-swap",jn);const tn=()=>{window.swup.hooks.on("link:click",(()=>{if(document.documentElement.style.setProperty("--content-delay","0ms"),!us)return;let t=window.innerHeight*(Ge/100)-72-16,e=document.getElementById("navbar-wrapper");!e||!document.body.classList.contains("lg:is-home")||(document.body.scrollTop>=t||document.documentElement.scrollTop>=t)&&e.classList.add("navbar-hidden")})),window.swup.hooks.on("content:replace",Un),window.swup.hooks.on("visit:start",(t=>{const e=document.querySelector("body");ao(t.to.url,ho("/"))?e.classList.add("lg:is-home"):e.classList.remove("lg:is-home");const n=document.getElementById("page-height-extend");n&&n.classList.remove("hidden");let s=document.getElementById("toc-wrapper");s&&s.classList.add("toc-not-ready")})),window.swup.hooks.on("page:view",(()=>{const t=document.getElementById("page-height-extend");t&&t.classList.remove("hidden")})),window.swup.hooks.on("visit:end",(t=>{setTimeout((()=>{const t=document.getElementById("page-height-extend");t&&t.classList.add("hidden");const e=document.getElementById("toc-wrapper");e&&e.classList.remove("toc-not-ready")}),200)}))};window?.swup?.hooks?tn():document.addEventListener("swup:enable",tn);let Ze=document.getElementById("back-to-top-btn"),Ue=document.getElementById("toc-wrapper"),je=document.getElementById("navbar-wrapper");function $i(){let t=window.innerHeight*(Ge/100);if(Ze&&(document.body.scrollTop>t||document.documentElement.scrollTop>t?Ze.classList.remove("hide"):Ze.classList.add("hide")),us&&Ue&&(document.body.scrollTop>t||document.documentElement.scrollTop>t?Ue.classList.remove("toc-hide"):Ue.classList.add("toc-hide")),us&&je){const t=16*ro;let e=Ge;document.body.classList.contains("lg:is-home")&&window.innerWidth>=1024&&(e=lo);let n=window.innerHeight*(e/100)-72-t-16;document.body.scrollTop>=n||document.documentElement.scrollTop>=n?je.classList.add("navbar-hidden"):je.classList.remove("navbar-hidden")}}function Di(){"dark"===localStorage.theme?(document.documentElement.classList.remove("dark"),localStorage.theme="light"):(document.documentElement.classList.add("dark"),localStorage.theme="dark")}function Gn(){let t=document.getElementById("scheme-switch");t&&t.addEventListener("click",(function(){Di()}));let e=document.getElementById("display-settings-switch");e&&e.addEventListener("click",(function(){let t=document.getElementById("display-setting");t&&t.classList.toggle("float-panel-closed")}));let n=document.getElementById("nav-menu-switch");n&&n.addEventListener("click",(function(){let t=document.getElementById("nav-menu-panel");t&&t.classList.toggle("float-panel-closed")}))}window.onscroll=$i,window.onresize=()=>{let t=Math.floor(window.innerHeight*(eo/100));t-=t%4,document.documentElement.style.setProperty("--banner-height-extend",`${t}px`);const e=parseFloat(getComputedStyle(document.documentElement).fontSize),n=co*e,s=(window.innerWidth-n)/2-e;document.documentElement.style.setProperty("--toc-width",`${s}px`)},Gn(),document.addEventListener("astro:after-swap",(()=>{Gn()}),{once:!1});class Hi extends HTMLElement{constructor(){if(super(),"true"!==this.dataset.isCollapsed)return;const t=this.dataset.id,e=this.querySelector(".expand-btn"),n=this.querySelector(`#${t}`);e.addEventListener("click",(()=>{n.classList.remove("collapsed"),e.classList.add("hidden")}))}}customElements.define("widget-layout",Hi); \ No newline at end of file diff --git a/_astro/translation.BexmyzJD.js b/_astro/translation.BIr-2hnc.js similarity index 99% rename from _astro/translation.BexmyzJD.js rename to _astro/translation.BIr-2hnc.js index 8f4e5de0f..aab03738f 100644 --- a/_astro/translation.BexmyzJD.js +++ b/_astro/translation.BIr-2hnc.js @@ -1 +1 @@ -import{e as p,a as K,z as Q,b as X,j as M,k as O,s as Y}from"./zh_TW.yAw_u0Pg.js";function N(){}function Z(t,n){for(const e in n)t[e]=n[e];return t}function D(t){return t()}function P(){return Object.create(null)}function x(t){t.forEach(D)}function I(t){return"function"==typeof t}function Nt(t,n){return t!=t?n==n:t!==n||t&&"object"==typeof t||"function"==typeof t}function tt(t){return 0===Object.keys(t).length}function At(t,n,e,o){if(t){const i=G(t,n,e,o);return t[0](i)}}function G(t,n,e,o){return t[1]&&o?Z(e.ctx.slice(),t[1](o(n))):e.ctx}function kt(t,n,e,o){if(t[2]&&o){const i=t[2](o(e));if(void 0===n.dirty)return i;if("object"==typeof i){const t=[],e=Math.max(n.dirty.length,i.length);for(let o=0;o32){const n=[],e=t.ctx.length/32;for(let t=0;t>1);e(i)<=o?t=i+1:n=i}return t}function st(t){if(t.hydrate_init)return;t.hydrate_init=!0;let n=t.childNodes;if("HEAD"===t.nodeName){const t=[];for(let e=0;e0&&n[e[i]].claim_order<=r?i+1:it(1,i,(t=>n[e[t]].claim_order),r))-1;o[t]=e[c]+1;const s=c+1;e[s]=t,i=Math.max(s,i)}const r=[],c=[];let s=n.length-1;for(let t=e[i]+1;0!=t;t=o[t-1]){for(r.push(n[t-1]);s>=t;s--)c.push(n[s]);s--}for(;s>=0;s--)c.push(n[s]);r.reverse(),c.sort(((t,n)=>t.claim_order-n.claim_order));for(let n=0,e=0;n=r[e].claim_order;)e++;const o=et.removeEventListener(n,e,o)}function F(t,n,e){null==e?t.removeAttribute(n):t.getAttribute(n)!==e&&t.setAttribute(n,e)}const ot=["width","height"];function Ht(t,n){const e=Object.getOwnPropertyDescriptors(t.__proto__);for(const o in n)null==n[o]?t.removeAttribute(o):"style"===o?t.style.cssText=n[o]:"__value"===o?t.value=t[o]=n[o]:e[o]&&e[o].set&&-1===ot.indexOf(o)?t[o]=n[o]:F(t,o,n[o])}function zt(t,n){for(const e in n)F(t,e,n[e])}function Bt(t){return""===t?null:+t}function at(t){return Array.from(t.childNodes)}function U(t){void 0===t.claim_info&&(t.claim_info={last_index:0,total_claimed:0})}function V(t,n,e,o,i=!1){U(t);const r=(()=>{for(let o=t.claim_info.last_index;o=0;o--){const r=t[o];if(n(r)){const n=e(r);return void 0===n?t.splice(o,1):t[o]=n,i?void 0===n&&t.claim_info.last_index--:t.claim_info.last_index=o,r}}return o()})();return r.claim_order=t.claim_info.total_claimed,t.claim_info.total_claimed+=1,r}function W(t,n,e,o){return V(t,(t=>t.nodeName===n),(t=>{const n=[];for(let o=0;ot.removeAttribute(n)))}),(()=>o(n)))}function Dt(t,n,e){return W(t,n,e,R)}function It(t,n,e){return W(t,n,e,q)}function ut(t,n){return V(t,(t=>3===t.nodeType),(t=>{const e=""+n;if(t.data.startsWith(e)){if(t.data.length!==e.length)return t.splitText(e.length)}else t.data=e}),(()=>j(n)),!0)}function Gt(t){return ut(t," ")}function H(t,n,e){for(let o=e;o{const i=t.$$.callbacks[n];if(i){const r=ft(n,e,{cancelable:o});return i.slice().forEach((n=>{n.call(t,r)})),!r.defaultPrevented}return!0}}const h=[],z=[];let m=[];const B=[],dt=Promise.resolve();let A=!1;function ht(){A||(A=!0,dt.then(J))}function k(t){m.push(t)}const T=new Set;let d=0;function J(){if(0!==d)return;const t=y;do{try{for(;d-1===t.indexOf(o)?n.push(o):e.push(o))),e.forEach((t=>t())),m=n}const $=new Set;let _;function Qt(){_={r:0,c:[],p:_}}function Xt(){_.r||x(_.c),_=_.p}function gt(t,n){t&&t.i&&($.delete(t),t.i(n))}function Yt(t,n,e,o){if(t&&t.o){if($.has(t))return;$.add(t),_.c.push((()=>{$.delete(t),o&&(e&&t.d(1),o())})),t.o(n)}else o&&o()}function Zt(t){t&&t.c()}function tn(t,n){t&&t.l(n)}function yt(t,n,e){const{fragment:o,after_update:i}=t.$$;o&&o.m(n,e),k((()=>{const n=t.$$.on_mount.map(D).filter(I);t.$$.on_destroy?t.$$.on_destroy.push(...n):x(n),t.$$.on_mount=[]})),i.forEach(k)}function xt(t,n){const e=t.$$;null!==e.fragment&&(pt(e.after_update),x(e.on_destroy),e.fragment&&e.fragment.d(n),e.on_destroy=e.fragment=null,e.ctx=[])}function wt(t,n){-1===t.$$.dirty[0]&&(h.push(t),ht(),t.$$.dirty.fill(0)),t.$$.dirty[n/31|0]|=1<{const r=o.length?o[0]:e;return l.ctx&&i(l.ctx[n],l.ctx[n]=r)&&(!l.skip_bound&&l.bound[n]&&l.bound[n](r),u&&wt(t,n)),e})):[],l.update(),u=!0,x(l.before_update),l.fragment=!!o&&o(l.ctx),n.target){if(n.hydrate){nt();const t=at(n.target);l.fragment&&l.fragment.l(t),t.forEach(v)}else l.fragment&&l.fragment.c();n.intro&>(t.$$.fragment),yt(t,n.target,n.anchor),et(),J()}g(a)}class en{$$=void 0;$$set=void 0;$destroy(){xt(this,1),this.$destroy=N}$on(t,n){if(!I(n))return N;const e=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return e.push(n),()=>{const t=e.indexOf(n);-1!==t&&e.splice(t,1)}}$set(t){this.$$set&&!tt(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}const $t="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add($t);const vt=p,bt={es:K,en:p,en_us:p,en_gb:p,en_au:p,zh_cn:Q,zh_tw:X,ja:M,ja_jp:M,ko:O,ko_kr:O};function Et(t){return bt[t.toLowerCase()]||vt}function sn(t){return Et(Y.lang)[t]}export{Bt as A,Xt as B,Ct as C,Wt as D,Rt as E,Qt as F,Ot as G,E as H,N as I,Jt as J,Z as K,St as L,Ht as M,q as N,It as O,zt as P,Kt as Q,Zt as R,en as S,tn as T,yt as U,xt as V,sn as a,Mt as b,At as c,Dt as d,R as e,at as f,ut as g,Gt as h,nn as i,v as j,F as k,Vt as l,Ut as m,ct as n,rt as o,Ft as p,Pt as q,Lt as r,Nt as s,j as t,jt as u,kt as v,qt as w,gt as x,Yt as y,x as z}; \ No newline at end of file +import{e as p,a as K,z as Q,b as X,j as M,k as O,s as Y}from"./zh_TW.CdORO3r2.js";function N(){}function Z(t,n){for(const e in n)t[e]=n[e];return t}function D(t){return t()}function P(){return Object.create(null)}function x(t){t.forEach(D)}function I(t){return"function"==typeof t}function Nt(t,n){return t!=t?n==n:t!==n||t&&"object"==typeof t||"function"==typeof t}function tt(t){return 0===Object.keys(t).length}function At(t,n,e,o){if(t){const i=G(t,n,e,o);return t[0](i)}}function G(t,n,e,o){return t[1]&&o?Z(e.ctx.slice(),t[1](o(n))):e.ctx}function kt(t,n,e,o){if(t[2]&&o){const i=t[2](o(e));if(void 0===n.dirty)return i;if("object"==typeof i){const t=[],e=Math.max(n.dirty.length,i.length);for(let o=0;o32){const n=[],e=t.ctx.length/32;for(let t=0;t>1);e(i)<=o?t=i+1:n=i}return t}function st(t){if(t.hydrate_init)return;t.hydrate_init=!0;let n=t.childNodes;if("HEAD"===t.nodeName){const t=[];for(let e=0;e0&&n[e[i]].claim_order<=r?i+1:it(1,i,(t=>n[e[t]].claim_order),r))-1;o[t]=e[c]+1;const s=c+1;e[s]=t,i=Math.max(s,i)}const r=[],c=[];let s=n.length-1;for(let t=e[i]+1;0!=t;t=o[t-1]){for(r.push(n[t-1]);s>=t;s--)c.push(n[s]);s--}for(;s>=0;s--)c.push(n[s]);r.reverse(),c.sort(((t,n)=>t.claim_order-n.claim_order));for(let n=0,e=0;n=r[e].claim_order;)e++;const o=et.removeEventListener(n,e,o)}function F(t,n,e){null==e?t.removeAttribute(n):t.getAttribute(n)!==e&&t.setAttribute(n,e)}const ot=["width","height"];function Ht(t,n){const e=Object.getOwnPropertyDescriptors(t.__proto__);for(const o in n)null==n[o]?t.removeAttribute(o):"style"===o?t.style.cssText=n[o]:"__value"===o?t.value=t[o]=n[o]:e[o]&&e[o].set&&-1===ot.indexOf(o)?t[o]=n[o]:F(t,o,n[o])}function zt(t,n){for(const e in n)F(t,e,n[e])}function Bt(t){return""===t?null:+t}function at(t){return Array.from(t.childNodes)}function U(t){void 0===t.claim_info&&(t.claim_info={last_index:0,total_claimed:0})}function V(t,n,e,o,i=!1){U(t);const r=(()=>{for(let o=t.claim_info.last_index;o=0;o--){const r=t[o];if(n(r)){const n=e(r);return void 0===n?t.splice(o,1):t[o]=n,i?void 0===n&&t.claim_info.last_index--:t.claim_info.last_index=o,r}}return o()})();return r.claim_order=t.claim_info.total_claimed,t.claim_info.total_claimed+=1,r}function W(t,n,e,o){return V(t,(t=>t.nodeName===n),(t=>{const n=[];for(let o=0;ot.removeAttribute(n)))}),(()=>o(n)))}function Dt(t,n,e){return W(t,n,e,R)}function It(t,n,e){return W(t,n,e,q)}function ut(t,n){return V(t,(t=>3===t.nodeType),(t=>{const e=""+n;if(t.data.startsWith(e)){if(t.data.length!==e.length)return t.splitText(e.length)}else t.data=e}),(()=>j(n)),!0)}function Gt(t){return ut(t," ")}function H(t,n,e){for(let o=e;o{const i=t.$$.callbacks[n];if(i){const r=ft(n,e,{cancelable:o});return i.slice().forEach((n=>{n.call(t,r)})),!r.defaultPrevented}return!0}}const h=[],z=[];let m=[];const B=[],dt=Promise.resolve();let A=!1;function ht(){A||(A=!0,dt.then(J))}function k(t){m.push(t)}const T=new Set;let d=0;function J(){if(0!==d)return;const t=y;do{try{for(;d-1===t.indexOf(o)?n.push(o):e.push(o))),e.forEach((t=>t())),m=n}const $=new Set;let _;function Qt(){_={r:0,c:[],p:_}}function Xt(){_.r||x(_.c),_=_.p}function gt(t,n){t&&t.i&&($.delete(t),t.i(n))}function Yt(t,n,e,o){if(t&&t.o){if($.has(t))return;$.add(t),_.c.push((()=>{$.delete(t),o&&(e&&t.d(1),o())})),t.o(n)}else o&&o()}function Zt(t){t&&t.c()}function tn(t,n){t&&t.l(n)}function yt(t,n,e){const{fragment:o,after_update:i}=t.$$;o&&o.m(n,e),k((()=>{const n=t.$$.on_mount.map(D).filter(I);t.$$.on_destroy?t.$$.on_destroy.push(...n):x(n),t.$$.on_mount=[]})),i.forEach(k)}function xt(t,n){const e=t.$$;null!==e.fragment&&(pt(e.after_update),x(e.on_destroy),e.fragment&&e.fragment.d(n),e.on_destroy=e.fragment=null,e.ctx=[])}function wt(t,n){-1===t.$$.dirty[0]&&(h.push(t),ht(),t.$$.dirty.fill(0)),t.$$.dirty[n/31|0]|=1<{const r=o.length?o[0]:e;return l.ctx&&i(l.ctx[n],l.ctx[n]=r)&&(!l.skip_bound&&l.bound[n]&&l.bound[n](r),u&&wt(t,n)),e})):[],l.update(),u=!0,x(l.before_update),l.fragment=!!o&&o(l.ctx),n.target){if(n.hydrate){nt();const t=at(n.target);l.fragment&&l.fragment.l(t),t.forEach(v)}else l.fragment&&l.fragment.c();n.intro&>(t.$$.fragment),yt(t,n.target,n.anchor),et(),J()}g(a)}class en{$$=void 0;$$set=void 0;$destroy(){xt(this,1),this.$destroy=N}$on(t,n){if(!I(n))return N;const e=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return e.push(n),()=>{const t=e.indexOf(n);-1!==t&&e.splice(t,1)}}$set(t){this.$$set&&!tt(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}const $t="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add($t);const vt=p,bt={es:K,en:p,en_us:p,en_gb:p,en_au:p,zh_cn:Q,zh_tw:X,ja:M,ja_jp:M,ko:O,ko_kr:O};function Et(t){return bt[t.toLowerCase()]||vt}function sn(t){return Et(Y.lang)[t]}export{Bt as A,Xt as B,Ct as C,Wt as D,Rt as E,Qt as F,Ot as G,E as H,N as I,Jt as J,Z as K,St as L,Ht as M,q as N,It as O,zt as P,Kt as Q,Zt as R,en as S,tn as T,yt as U,xt as V,sn as a,Mt as b,At as c,Dt as d,R as e,at as f,ut as g,Gt as h,nn as i,v as j,F as k,Vt as l,Ut as m,ct as n,rt as o,Ft as p,Pt as q,Lt as r,Nt as s,j as t,jt as u,kt as v,qt as w,gt as x,Yt as y,x as z}; \ No newline at end of file diff --git a/_astro/url-utils.D8gvTd-e.js b/_astro/url-utils.CenNji6B.js similarity index 73% rename from _astro/url-utils.D8gvTd-e.js rename to _astro/url-utils.CenNji6B.js index 6f48d9586..6221de20f 100644 --- a/_astro/url-utils.D8gvTd-e.js +++ b/_astro/url-utils.CenNji6B.js @@ -1 +1 @@ -import"./zh_TW.yAw_u0Pg.js";function i(e,r){return e.replace(/^\/|\/$/g,"").toLowerCase()===r.replace(/^\/|\/$/g,"").toLowerCase()}function t(...e){return e.join("/").replace(/\/+/g,"/")}function c(e){return t("","/",e)}export{i as p,c as u}; \ No newline at end of file +import"./zh_TW.CdORO3r2.js";function i(e,r){return e.replace(/^\/|\/$/g,"").toLowerCase()===r.replace(/^\/|\/$/g,"").toLowerCase()}function t(...e){return e.join("/").replace(/\/+/g,"/")}function c(e){return t("","/",e)}export{i as p,c as u}; \ No newline at end of file diff --git a/_astro/zh_TW.CdORO3r2.js b/_astro/zh_TW.CdORO3r2.js new file mode 100644 index 000000000..87d6af463 --- /dev/null +++ b/_astro/zh_TW.CdORO3r2.js @@ -0,0 +1 @@ +var t=(t=>(t.home="home",t.about="about",t.archive="archive",t.search="search",t.tags="tags",t.categories="categories",t.recentPosts="recentPosts",t.comments="comments",t.untitled="untitled",t.uncategorized="uncategorized",t.noTags="noTags",t.wordCount="wordCount",t.wordsCount="wordsCount",t.minuteCount="minuteCount",t.minutesCount="minutesCount",t.postCount="postCount",t.postsCount="postsCount",t.themeColor="themeColor",t.lightMode="lightMode",t.darkMode="darkMode",t.systemMode="systemMode",t.more="more",t.author="author",t.publishedAt="publishedAt",t.license="license",t))(t||{}),e=(t=>(t[t.Home=0]="Home",t[t.Archive=1]="Archive",t[t.About=2]="About",t))(e||{});const s={title:"Jiaqi's Leadership Blog",subtitle:"Leadership is, at root, about Influencing Others",lang:"en",themeColor:{hue:250,fixed:!1},banner:{enable:!0,src:"assets/images/banner-4.png",position:"center",credit:{enable:!0,text:"Ardeth Bay (Mummy Returns)",url:"https://youtu.be/DtKDPBqMu3o"}},toc:{enable:!0,depth:3},favicon:[]};e.Home,e.Archive,e.About;const u={[t.home]:"Home",[t.about]:"About",[t.archive]:"Archive",[t.search]:"Search",[t.tags]:"Tags",[t.categories]:"Languages",[t.recentPosts]:"Recent Posts",[t.comments]:"Comments",[t.untitled]:"Untitled",[t.uncategorized]:"Uncategorized",[t.noTags]:"No Tags",[t.wordCount]:"word",[t.wordsCount]:"words",[t.minuteCount]:"minute",[t.minutesCount]:"minutes",[t.postCount]:"post",[t.postsCount]:"posts",[t.themeColor]:"Theme Color",[t.lightMode]:"Light",[t.darkMode]:"Dark",[t.systemMode]:"System",[t.more]:"More",[t.author]:"Author",[t.publishedAt]:"Published at",[t.license]:"License"},r={[t.home]:"Inicio",[t.about]:"Sobre mí",[t.archive]:"Archivo",[t.search]:"Buscar",[t.tags]:"Etiquetas",[t.categories]:"Categorías",[t.recentPosts]:"Publicaciones recientes",[t.comments]:"Comentarios",[t.untitled]:"Sin título",[t.uncategorized]:"Sin categoría",[t.noTags]:"Sin etiquetas",[t.wordCount]:"palabra",[t.wordsCount]:"palabras",[t.minuteCount]:"minuto",[t.minutesCount]:"minutos",[t.postCount]:"publicación",[t.postsCount]:"publicaciones",[t.themeColor]:"Color del tema",[t.lightMode]:"Claro",[t.darkMode]:"Oscuro",[t.systemMode]:"Sistema",[t.more]:"Más",[t.author]:"Autor",[t.publishedAt]:"Publicado el",[t.license]:"Licencia"},n={[t.home]:"Home",[t.about]:"About",[t.archive]:"Archive",[t.search]:"検索",[t.tags]:"タグ",[t.categories]:"カテゴリ",[t.recentPosts]:"最近の投稿",[t.comments]:"コメント",[t.untitled]:"タイトルなし",[t.uncategorized]:"カテゴリなし",[t.noTags]:"タグなし",[t.wordCount]:"文字",[t.wordsCount]:"文字",[t.minuteCount]:"分",[t.minutesCount]:"分",[t.postCount]:"件の投稿",[t.postsCount]:"件の投稿",[t.themeColor]:"テーマカラー",[t.lightMode]:"ライト",[t.darkMode]:"ダーク",[t.systemMode]:"システム",[t.more]:"もっと",[t.author]:"作者",[t.publishedAt]:"公開日",[t.license]:"ライセンス"},a={[t.home]:"홈",[t.about]:"소개",[t.archive]:"아카이브",[t.search]:"검색",[t.tags]:"태그",[t.categories]:"카테고리",[t.recentPosts]:"최근 게시물",[t.comments]:"댓글",[t.untitled]:"제목 없음",[t.uncategorized]:"분류되지 않음",[t.noTags]:"태그 없음",[t.wordCount]:"단어",[t.wordsCount]:"단어",[t.minuteCount]:"분",[t.minutesCount]:"분",[t.postCount]:"게시물",[t.postsCount]:"게시물",[t.themeColor]:"테마 색상",[t.lightMode]:"밝은 모드",[t.darkMode]:"어두운 모드",[t.systemMode]:"시스템 모드",[t.more]:"더 보기",[t.author]:"저자",[t.publishedAt]:"게시일",[t.license]:"라이선스"},i={[t.home]:"主页",[t.about]:"关于",[t.archive]:"归档",[t.search]:"搜索",[t.tags]:"标签",[t.categories]:"分类",[t.recentPosts]:"最新文章",[t.comments]:"评论",[t.untitled]:"无标题",[t.uncategorized]:"未分类",[t.noTags]:"无标签",[t.wordCount]:"字",[t.wordsCount]:"字",[t.minuteCount]:"分钟",[t.minutesCount]:"分钟",[t.postCount]:"篇文章",[t.postsCount]:"篇文章",[t.themeColor]:"主题色",[t.lightMode]:"亮色",[t.darkMode]:"暗色",[t.systemMode]:"跟随系统",[t.more]:"更多",[t.author]:"作者",[t.publishedAt]:"发布于",[t.license]:"许可协议"},c={[t.home]:"首頁",[t.about]:"關於",[t.archive]:"彙整",[t.search]:"搜尋",[t.tags]:"標籤",[t.categories]:"分類",[t.recentPosts]:"最新文章",[t.comments]:"評論",[t.untitled]:"無標題",[t.uncategorized]:"未分類",[t.noTags]:"無標籤",[t.wordCount]:"字",[t.wordsCount]:"字",[t.minuteCount]:"分鐘",[t.minutesCount]:"分鐘",[t.postCount]:"篇文章",[t.postsCount]:"篇文章",[t.themeColor]:"主題色",[t.lightMode]:"亮色",[t.darkMode]:"暗色",[t.systemMode]:"跟隨系統",[t.more]:"更多",[t.author]:"作者",[t.publishedAt]:"發佈於",[t.license]:"許可協議"};export{t as I,r as a,c as b,u as e,n as j,a as k,s,i as z}; \ No newline at end of file diff --git a/_astro/zh_TW.yAw_u0Pg.js b/_astro/zh_TW.yAw_u0Pg.js deleted file mode 100644 index 29bf4959f..000000000 --- a/_astro/zh_TW.yAw_u0Pg.js +++ /dev/null @@ -1 +0,0 @@ -var t=(t=>(t.home="home",t.about="about",t.archive="archive",t.search="search",t.tags="tags",t.categories="categories",t.recentPosts="recentPosts",t.comments="comments",t.untitled="untitled",t.uncategorized="uncategorized",t.noTags="noTags",t.wordCount="wordCount",t.wordsCount="wordsCount",t.minuteCount="minuteCount",t.minutesCount="minutesCount",t.postCount="postCount",t.postsCount="postsCount",t.themeColor="themeColor",t.lightMode="lightMode",t.darkMode="darkMode",t.systemMode="systemMode",t.more="more",t.author="author",t.publishedAt="publishedAt",t.license="license",t))(t||{}),e=(t=>(t[t.Home=0]="Home",t[t.Archive=1]="Archive",t[t.About=2]="About",t))(e||{});const s={title:"Jiaqi's Leadership Blog",subtitle:"Leadership is, at root, about Influencing Others",lang:"en",themeColor:{hue:250,fixed:!1},banner:{enable:!0,src:"assets/images/banner-4.png",position:"center",credit:{enable:!0,text:"Mummy Returns",url:"https://www.bilibili.com/video/BV1M6421f7Q2"}},toc:{enable:!0,depth:3},favicon:[]};e.Home,e.Archive,e.About;const u={[t.home]:"Home",[t.about]:"About",[t.archive]:"Archive",[t.search]:"Search",[t.tags]:"Tags",[t.categories]:"Languages",[t.recentPosts]:"Recent Posts",[t.comments]:"Comments",[t.untitled]:"Untitled",[t.uncategorized]:"Uncategorized",[t.noTags]:"No Tags",[t.wordCount]:"word",[t.wordsCount]:"words",[t.minuteCount]:"minute",[t.minutesCount]:"minutes",[t.postCount]:"post",[t.postsCount]:"posts",[t.themeColor]:"Theme Color",[t.lightMode]:"Light",[t.darkMode]:"Dark",[t.systemMode]:"System",[t.more]:"More",[t.author]:"Author",[t.publishedAt]:"Published at",[t.license]:"License"},n={[t.home]:"Inicio",[t.about]:"Sobre mí",[t.archive]:"Archivo",[t.search]:"Buscar",[t.tags]:"Etiquetas",[t.categories]:"Categorías",[t.recentPosts]:"Publicaciones recientes",[t.comments]:"Comentarios",[t.untitled]:"Sin título",[t.uncategorized]:"Sin categoría",[t.noTags]:"Sin etiquetas",[t.wordCount]:"palabra",[t.wordsCount]:"palabras",[t.minuteCount]:"minuto",[t.minutesCount]:"minutos",[t.postCount]:"publicación",[t.postsCount]:"publicaciones",[t.themeColor]:"Color del tema",[t.lightMode]:"Claro",[t.darkMode]:"Oscuro",[t.systemMode]:"Sistema",[t.more]:"Más",[t.author]:"Autor",[t.publishedAt]:"Publicado el",[t.license]:"Licencia"},r={[t.home]:"Home",[t.about]:"About",[t.archive]:"Archive",[t.search]:"検索",[t.tags]:"タグ",[t.categories]:"カテゴリ",[t.recentPosts]:"最近の投稿",[t.comments]:"コメント",[t.untitled]:"タイトルなし",[t.uncategorized]:"カテゴリなし",[t.noTags]:"タグなし",[t.wordCount]:"文字",[t.wordsCount]:"文字",[t.minuteCount]:"分",[t.minutesCount]:"分",[t.postCount]:"件の投稿",[t.postsCount]:"件の投稿",[t.themeColor]:"テーマカラー",[t.lightMode]:"ライト",[t.darkMode]:"ダーク",[t.systemMode]:"システム",[t.more]:"もっと",[t.author]:"作者",[t.publishedAt]:"公開日",[t.license]:"ライセンス"},a={[t.home]:"홈",[t.about]:"소개",[t.archive]:"아카이브",[t.search]:"검색",[t.tags]:"태그",[t.categories]:"카테고리",[t.recentPosts]:"최근 게시물",[t.comments]:"댓글",[t.untitled]:"제목 없음",[t.uncategorized]:"분류되지 않음",[t.noTags]:"태그 없음",[t.wordCount]:"단어",[t.wordsCount]:"단어",[t.minuteCount]:"분",[t.minutesCount]:"분",[t.postCount]:"게시물",[t.postsCount]:"게시물",[t.themeColor]:"테마 색상",[t.lightMode]:"밝은 모드",[t.darkMode]:"어두운 모드",[t.systemMode]:"시스템 모드",[t.more]:"더 보기",[t.author]:"저자",[t.publishedAt]:"게시일",[t.license]:"라이선스"},i={[t.home]:"主页",[t.about]:"关于",[t.archive]:"归档",[t.search]:"搜索",[t.tags]:"标签",[t.categories]:"分类",[t.recentPosts]:"最新文章",[t.comments]:"评论",[t.untitled]:"无标题",[t.uncategorized]:"未分类",[t.noTags]:"无标签",[t.wordCount]:"字",[t.wordsCount]:"字",[t.minuteCount]:"分钟",[t.minutesCount]:"分钟",[t.postCount]:"篇文章",[t.postsCount]:"篇文章",[t.themeColor]:"主题色",[t.lightMode]:"亮色",[t.darkMode]:"暗色",[t.systemMode]:"跟随系统",[t.more]:"更多",[t.author]:"作者",[t.publishedAt]:"发布于",[t.license]:"许可协议"},c={[t.home]:"首頁",[t.about]:"關於",[t.archive]:"彙整",[t.search]:"搜尋",[t.tags]:"標籤",[t.categories]:"分類",[t.recentPosts]:"最新文章",[t.comments]:"評論",[t.untitled]:"無標題",[t.uncategorized]:"未分類",[t.noTags]:"無標籤",[t.wordCount]:"字",[t.wordsCount]:"字",[t.minuteCount]:"分鐘",[t.minutesCount]:"分鐘",[t.postCount]:"篇文章",[t.postsCount]:"篇文章",[t.themeColor]:"主題色",[t.lightMode]:"亮色",[t.darkMode]:"暗色",[t.systemMode]:"跟隨系統",[t.more]:"更多",[t.author]:"作者",[t.publishedAt]:"發佈於",[t.license]:"許可協議"};export{t as I,n as a,c as b,u as e,r as j,a as k,s,i as z}; \ No newline at end of file diff --git a/about/index.html b/about/index.html index a4500c76e..0ecdb2ff4 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/archive/category/Ancient Greek/index.html b/archive/category/Ancient Greek/index.html index afc27dfee..b6b97f06d 100644 --- a/archive/category/Ancient Greek/index.html +++ b/archive/category/Ancient Greek/index.html @@ -1 +1 @@ -Archive - Jiaqi's Leadership Blog
\ No newline at end of file +Archive - Jiaqi's Leadership Blog
\ No newline at end of file diff --git a/archive/category/Chinese/index.html b/archive/category/Chinese/index.html index 9fad3d0a3..587a64f10 100644 --- a/archive/category/Chinese/index.html +++ b/archive/category/Chinese/index.html @@ -1 +1 @@ -Archive - Jiaqi's Leadership Blog
\ No newline at end of file +Archive - Jiaqi's Leadership Blog
\ No newline at end of file diff --git a/archive/category/English/index.html b/archive/category/English/index.html index f4668fa45..3a75f4be4 100644 --- a/archive/category/English/index.html +++ b/archive/category/English/index.html @@ -1 +1 @@ -Archive - Jiaqi's Leadership Blog
\ No newline at end of file +Archive - Jiaqi's Leadership Blog
\ No newline at end of file diff --git a/archive/category/German/index.html b/archive/category/German/index.html index d85e5c009..934a6bce9 100644 --- a/archive/category/German/index.html +++ b/archive/category/German/index.html @@ -1 +1 @@ -Archive - Jiaqi's Leadership Blog
\ No newline at end of file +Archive - Jiaqi's Leadership Blog
\ No newline at end of file diff --git a/archive/category/Korean/index.html b/archive/category/Korean/index.html index a5f843233..ef0e04656 100644 --- a/archive/category/Korean/index.html +++ b/archive/category/Korean/index.html @@ -1 +1 @@ -Archive - Jiaqi's Leadership Blog
\ No newline at end of file +Archive - Jiaqi's Leadership Blog
\ No newline at end of file diff --git a/archive/category/Latin/index.html b/archive/category/Latin/index.html index 35b77a97d..b9d20d15a 100644 --- a/archive/category/Latin/index.html +++ b/archive/category/Latin/index.html @@ -1 +1 @@ -Archive - Jiaqi's Leadership Blog
\ No newline at end of file +Archive - Jiaqi's Leadership Blog
\ No newline at end of file diff --git a/archive/category/uncategorized/index.html b/archive/category/uncategorized/index.html index d5fc6fc5a..49d627bfb 100644 --- a/archive/category/uncategorized/index.html +++ b/archive/category/uncategorized/index.html @@ -1 +1 @@ -Archive - Jiaqi's Leadership Blog
\ No newline at end of file +Archive - Jiaqi's Leadership Blog
\ No newline at end of file diff --git a/archive/index.html b/archive/index.html index c8c37f56a..9a525d385 100644 --- a/archive/index.html +++ b/archive/index.html @@ -1 +1 @@ -Archive - Jiaqi's Leadership Blog
\ No newline at end of file +Archive - Jiaqi's Leadership Blog
\ No newline at end of file diff --git a/archive/tag/Leadership/index.html b/archive/tag/Leadership/index.html index 4e27c0c5b..e37020683 100644 --- a/archive/tag/Leadership/index.html +++ b/archive/tag/Leadership/index.html @@ -1 +1 @@ -Archive - Jiaqi's Leadership Blog
\ No newline at end of file +Archive - Jiaqi's Leadership Blog
\ No newline at end of file diff --git a/archive/tag/Management/index.html b/archive/tag/Management/index.html index e2e878f90..2594656b9 100644 --- a/archive/tag/Management/index.html +++ b/archive/tag/Management/index.html @@ -1 +1 @@ -Archive - Jiaqi's Leadership Blog
\ No newline at end of file +Archive - Jiaqi's Leadership Blog
\ No newline at end of file diff --git a/archive/tag/Philosophy/index.html b/archive/tag/Philosophy/index.html index c1802918f..20182638f 100644 --- a/archive/tag/Philosophy/index.html +++ b/archive/tag/Philosophy/index.html @@ -1 +1 @@ -Archive - Jiaqi's Leadership Blog
\ No newline at end of file +Archive - Jiaqi's Leadership Blog
\ No newline at end of file diff --git a/archive/tag/Psychology/index.html b/archive/tag/Psychology/index.html index 8d790cef9..00bc66d2f 100644 --- a/archive/tag/Psychology/index.html +++ b/archive/tag/Psychology/index.html @@ -1 +1 @@ -Archive - Jiaqi's Leadership Blog
\ No newline at end of file +Archive - Jiaqi's Leadership Blog
\ No newline at end of file diff --git a/archive/tag/Public Speech/index.html b/archive/tag/Public Speech/index.html index 220d366b7..cec9fcdac 100644 --- a/archive/tag/Public Speech/index.html +++ b/archive/tag/Public Speech/index.html @@ -1 +1 @@ -Archive - Jiaqi's Leadership Blog
\ No newline at end of file +Archive - Jiaqi's Leadership Blog
\ No newline at end of file diff --git a/archive/tag/Technology/index.html b/archive/tag/Technology/index.html index b8c08fe9d..413084638 100644 --- a/archive/tag/Technology/index.html +++ b/archive/tag/Technology/index.html @@ -1 +1 @@ -Archive - Jiaqi's Leadership Blog
\ No newline at end of file +Archive - Jiaqi's Leadership Blog
\ No newline at end of file diff --git a/index.html b/index.html index 9fcea4af7..91632cbf8 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
521 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
521 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_1111615.pf_fragment b/pagefind/fragment/en_1111615.pf_fragment deleted file mode 100644 index 0763c850a..000000000 Binary files a/pagefind/fragment/en_1111615.pf_fragment and /dev/null differ 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_113561b.pf_fragment b/pagefind/fragment/en_113561b.pf_fragment deleted file mode 100644 index 5f5e40282..000000000 Binary files a/pagefind/fragment/en_113561b.pf_fragment and /dev/null 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_a2f521b.pf_fragment b/pagefind/fragment/en_196445b.pf_fragment similarity index 96% rename from pagefind/fragment/en_a2f521b.pf_fragment rename to pagefind/fragment/en_196445b.pf_fragment index 133ddb4a2..6e540a9c2 100644 Binary files a/pagefind/fragment/en_a2f521b.pf_fragment and b/pagefind/fragment/en_196445b.pf_fragment differ diff --git a/pagefind/fragment/en_19fce2d.pf_fragment b/pagefind/fragment/en_19fce2d.pf_fragment new file mode 100644 index 000000000..a5cd2b06c Binary files /dev/null and b/pagefind/fragment/en_19fce2d.pf_fragment differ diff --git a/pagefind/fragment/en_1a1397f.pf_fragment b/pagefind/fragment/en_1a1397f.pf_fragment deleted file mode 100644 index 2171381b8..000000000 Binary files a/pagefind/fragment/en_1a1397f.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_8d27de7.pf_fragment b/pagefind/fragment/en_21d6ebc.pf_fragment similarity index 95% rename from pagefind/fragment/en_8d27de7.pf_fragment rename to pagefind/fragment/en_21d6ebc.pf_fragment index a198e72ef..18b37efa8 100644 Binary files a/pagefind/fragment/en_8d27de7.pf_fragment and b/pagefind/fragment/en_21d6ebc.pf_fragment differ diff --git a/pagefind/fragment/en_6e532c2.pf_fragment b/pagefind/fragment/en_229ca4f.pf_fragment similarity index 91% rename from pagefind/fragment/en_6e532c2.pf_fragment rename to pagefind/fragment/en_229ca4f.pf_fragment index e1e95f0fe..f42a7e15a 100644 Binary files a/pagefind/fragment/en_6e532c2.pf_fragment and b/pagefind/fragment/en_229ca4f.pf_fragment differ diff --git a/pagefind/fragment/en_23ab807.pf_fragment b/pagefind/fragment/en_23ab807.pf_fragment deleted file mode 100644 index 96ccda3b6..000000000 Binary files a/pagefind/fragment/en_23ab807.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_2e55eb5.pf_fragment b/pagefind/fragment/en_2e55eb5.pf_fragment deleted file mode 100644 index c14408be0..000000000 Binary files a/pagefind/fragment/en_2e55eb5.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_3624160.pf_fragment b/pagefind/fragment/en_3624160.pf_fragment new file mode 100644 index 000000000..5f6bc300a Binary files /dev/null and b/pagefind/fragment/en_3624160.pf_fragment differ diff --git a/pagefind/fragment/en_428d071.pf_fragment b/pagefind/fragment/en_428d071.pf_fragment new file mode 100644 index 000000000..1e80ed521 Binary files /dev/null and b/pagefind/fragment/en_428d071.pf_fragment 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_c382716.pf_fragment b/pagefind/fragment/en_51bd224.pf_fragment similarity index 97% rename from pagefind/fragment/en_c382716.pf_fragment rename to pagefind/fragment/en_51bd224.pf_fragment index 8c6eb12dc..5c0233d84 100644 Binary files a/pagefind/fragment/en_c382716.pf_fragment and b/pagefind/fragment/en_51bd224.pf_fragment differ diff --git a/pagefind/fragment/en_54da2fb.pf_fragment b/pagefind/fragment/en_54da2fb.pf_fragment deleted file mode 100644 index c219fb8b7..000000000 Binary files a/pagefind/fragment/en_54da2fb.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_587a7b1.pf_fragment b/pagefind/fragment/en_587a7b1.pf_fragment new file mode 100644 index 000000000..a566cbb9e Binary files /dev/null and b/pagefind/fragment/en_587a7b1.pf_fragment differ diff --git a/pagefind/fragment/en_5ee79ec.pf_fragment b/pagefind/fragment/en_5ee79ec.pf_fragment deleted file mode 100644 index 2d6454b80..000000000 Binary files a/pagefind/fragment/en_5ee79ec.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_95cde76.pf_fragment b/pagefind/fragment/en_66d6d49.pf_fragment similarity index 87% rename from pagefind/fragment/en_95cde76.pf_fragment rename to pagefind/fragment/en_66d6d49.pf_fragment index 23fb00e5b..661c05727 100644 Binary files a/pagefind/fragment/en_95cde76.pf_fragment 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_7c75e55.pf_fragment b/pagefind/fragment/en_7c75e55.pf_fragment new file mode 100644 index 000000000..7e941c7a5 Binary files /dev/null and b/pagefind/fragment/en_7c75e55.pf_fragment differ diff --git a/pagefind/fragment/en_855ab55.pf_fragment b/pagefind/fragment/en_855ab55.pf_fragment new file mode 100644 index 000000000..e5c602945 Binary files /dev/null and b/pagefind/fragment/en_855ab55.pf_fragment differ diff --git a/pagefind/fragment/en_78d3309.pf_fragment b/pagefind/fragment/en_876d944.pf_fragment similarity index 99% rename from pagefind/fragment/en_78d3309.pf_fragment rename to pagefind/fragment/en_876d944.pf_fragment index 5a5aae514..3dbe32fcb 100644 Binary files a/pagefind/fragment/en_78d3309.pf_fragment and b/pagefind/fragment/en_876d944.pf_fragment differ diff --git a/pagefind/fragment/en_81cb22f.pf_fragment b/pagefind/fragment/en_90505e2.pf_fragment similarity index 92% rename from pagefind/fragment/en_81cb22f.pf_fragment rename to pagefind/fragment/en_90505e2.pf_fragment index 555072ef4..156377ed2 100644 Binary files a/pagefind/fragment/en_81cb22f.pf_fragment and b/pagefind/fragment/en_90505e2.pf_fragment 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_966afa7.pf_fragment b/pagefind/fragment/en_966afa7.pf_fragment deleted file mode 100644 index c9be15376..000000000 Binary files a/pagefind/fragment/en_966afa7.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_a2565a6.pf_fragment b/pagefind/fragment/en_a2565a6.pf_fragment deleted file mode 100644 index 10ca9d286..000000000 Binary files a/pagefind/fragment/en_a2565a6.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_a7a0d39.pf_fragment b/pagefind/fragment/en_a7a0d39.pf_fragment deleted file mode 100644 index a6aac1ca3..000000000 Binary files a/pagefind/fragment/en_a7a0d39.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_a95095b.pf_fragment b/pagefind/fragment/en_a95095b.pf_fragment deleted file mode 100644 index 4914459d5..000000000 Binary files a/pagefind/fragment/en_a95095b.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_c411a76.pf_fragment b/pagefind/fragment/en_c411a76.pf_fragment deleted file mode 100644 index 0b8115b7b..000000000 Binary files a/pagefind/fragment/en_c411a76.pf_fragment and /dev/null 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_d695366.pf_fragment b/pagefind/fragment/en_d695366.pf_fragment deleted file mode 100644 index cfcf17600..000000000 Binary files a/pagefind/fragment/en_d695366.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_cf4db12.pf_fragment b/pagefind/fragment/en_dd3c8a6.pf_fragment similarity index 92% rename from pagefind/fragment/en_cf4db12.pf_fragment rename to pagefind/fragment/en_dd3c8a6.pf_fragment index fa323e655..94d1d0c76 100644 Binary files a/pagefind/fragment/en_cf4db12.pf_fragment and b/pagefind/fragment/en_dd3c8a6.pf_fragment differ diff --git a/pagefind/fragment/en_df454cc.pf_fragment b/pagefind/fragment/en_df454cc.pf_fragment deleted file mode 100644 index 6883940fd..000000000 Binary files a/pagefind/fragment/en_df454cc.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_e710708.pf_fragment b/pagefind/fragment/en_e710708.pf_fragment new file mode 100644 index 000000000..37c80a323 Binary files /dev/null and b/pagefind/fragment/en_e710708.pf_fragment differ diff --git a/pagefind/fragment/en_f0ab2ff.pf_fragment b/pagefind/fragment/en_f0ab2ff.pf_fragment deleted file mode 100644 index d4d50fd58..000000000 Binary files a/pagefind/fragment/en_f0ab2ff.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_f28925d.pf_fragment b/pagefind/fragment/en_f28925d.pf_fragment deleted file mode 100644 index 944f3a03a..000000000 Binary files a/pagefind/fragment/en_f28925d.pf_fragment and /dev/null differ diff --git a/pagefind/fragment/en_fa33293.pf_fragment b/pagefind/fragment/en_fa33293.pf_fragment deleted file mode 100644 index 0682b6d90..000000000 Binary files a/pagefind/fragment/en_fa33293.pf_fragment and /dev/null differ diff --git a/pagefind/pagefind-entry.json b/pagefind/pagefind-entry.json index fa734a4bd..a04157b65 100644 --- a/pagefind/pagefind-entry.json +++ b/pagefind/pagefind-entry.json @@ -1 +1 @@ -{"version":"1.1.1","languages":{"en":{"hash":"en_e75f070d65","wasm":"en","page_count":25}}} \ No newline at end of file +{"version":"1.1.1","languages":{"en":{"hash":"en_30b5ad9ff3","wasm":"en","page_count":25}}} \ No newline at end of file diff --git a/pagefind/pagefind.en_30b5ad9ff3.pf_meta b/pagefind/pagefind.en_30b5ad9ff3.pf_meta new file mode 100644 index 000000000..dcd67f824 Binary files /dev/null and b/pagefind/pagefind.en_30b5ad9ff3.pf_meta differ diff --git a/pagefind/pagefind.en_e75f070d65.pf_meta b/pagefind/pagefind.en_e75f070d65.pf_meta deleted file mode 100644 index 4f2a7e1a1..000000000 Binary files a/pagefind/pagefind.en_e75f070d65.pf_meta and /dev/null differ diff --git "a/posts/bande-der-br\303\274der/index.html" "b/posts/bande-der-br\303\274der/index.html" index 8e987651c..8b357f6e3 100644 --- "a/posts/bande-der-br\303\274der/index.html" +++ "b/posts/bande-der-br\303\274der/index.html" @@ -1 +1 @@ -Band of Brothers, Ep. 10, Deutscher General spricht zu seinen Männern - Jiaqi's Leadership Blog
137 words
1 minutes
Band of Brothers, Ep. 10, Deutscher General spricht zu seinen Männern

Ursprüngliche Rede#

Transkript

Männer, es war ein langer Krieg, es war ein harter Krieg. Ihr habt tapfer und stolz für Euer Vaterland gekämpft. Ihr seid eine spezielle Gruppe, die ineinander einen Zusammenhalt gefunden habt, wie er nur im Kampf existiert.

…unter Brüdern, die Fuchshöhlen geteilt haben, die sich in schrechklichen Momenten gegenseitig gehalten, die den Tod zusammen gesehen und miteinander gelitten haben. Ich bin stolz mit Euch gedient zu haben. Sie verdienen ein glückliches und langes Leben.

Einer nach dem anderen beginnen die fünf Amerikaner, diese Worte zu hören Sie werden auch mit ihnen gesprochen. Als solche erleben sie einige der gleichen Gefühle wie die besiegten Truppen vor ihnen, die von der Rede ihres Kommandanten sicherlich berührt sind.

Band of Brothers, Ep. 10, Deutscher General spricht zu seinen Männern
https://leadership.qubitpi.org/posts/bande-der-brüder/
Author
【烬火】胡桃
Published at
2024-08-13
\ No newline at end of file +Band of Brothers, Ep. 10, Deutscher General spricht zu seinen Männern - Jiaqi's Leadership Blog
137 words
1 minutes
Band of Brothers, Ep. 10, Deutscher General spricht zu seinen Männern

Ursprüngliche Rede#

Transkript

Männer, es war ein langer Krieg, es war ein harter Krieg. Ihr habt tapfer und stolz für Euer Vaterland gekämpft. Ihr seid eine spezielle Gruppe, die ineinander einen Zusammenhalt gefunden habt, wie er nur im Kampf existiert.

…unter Brüdern, die Fuchshöhlen geteilt haben, die sich in schrechklichen Momenten gegenseitig gehalten, die den Tod zusammen gesehen und miteinander gelitten haben. Ich bin stolz mit Euch gedient zu haben. Sie verdienen ein glückliches und langes Leben.

Einer nach dem anderen beginnen die fünf Amerikaner, diese Worte zu hören Sie werden auch mit ihnen gesprochen. Als solche erleben sie einige der gleichen Gefühle wie die besiegten Truppen vor ihnen, die von der Rede ihres Kommandanten sicherlich berührt sind.

Band of Brothers, Ep. 10, Deutscher General spricht zu seinen Männern
https://leadership.qubitpi.org/posts/bande-der-brüder/
Author
【烬火】胡桃
Published at
2024-08-13
\ No newline at end of file diff --git a/posts/continuous-delivery/index.html b/posts/continuous-delivery/index.html index c562f8629..5b40db565 100644 --- a/posts/continuous-delivery/index.html +++ b/posts/continuous-delivery/index.html @@ -1 +1 @@ -Continuous Delivery - Jiaqi's Leadership Blog
5539 words
28 minutes
Continuous Delivery

Continuous delivery is an approach where teams release quality products frequently and predictably from source code repository to production in an automated fashion.

What is Continuous Delivery#

Continuous Delivery is the ability to get changes of all types - including new features, configuration changes, bug fixes and experiments - into production, or into the hands of users, safely and quickly in a sustainable way.

The goal of continuous delivery is to make deployments - whether of a large-scale distributed system, a complex production environment, an embedded system, or an app - predictable, routine affairs that can be performed on demand.

We achieve all this by ensuring our code is always in a deployable state, even in the face of teams of thousands of developers making changes on a daily basis. We thus completely eliminate the integration, testing and hardening phases that traditionally followed “dev complete”, as well as code freezes.

Why Continuous Delivery#

It is often assumed that if we want to deploy software more frequently, we must accept lower levels of stability and reliability in our systems. In fact, peer-reviewed research shows that this is not the case. High performance teams consistently deliver services faster and more reliably than their low performing competition. This is true even in highly regulated domains such as financial services and government. This capability provides an incredible competitive advantage for organizations that are willing to invest the effort to pursue it.

NOTE
  • Firms with high-performing IT organizations were twice as likely to exceed their profitability, market share and productivity goals.
  • High performers achieved higher levels of both throughput and stability.
  • The use of continuous delivery practices including version control, continuous integration, and test automation predicts higher IT performance.
  • Culture is measurable and predicts job satisfaction and organizational performance.
  • Continuous Delivery measurably reduces both deployment pain and team burnout.

The practices at the heart of continuous delivery help us achieve several important benefits:

  • Low risk releases. The primary goal of continuous delivery is to make software deployments painless, low-risk events that can be performed at any time, on demand. By applying patterns such as blue-green deployments it is relatively straightforward to achieve zero-downtime deployments that are undetectable to users.

    Blue-green Deployment

    Error loading blue-green-deployments.png

    One of the challenges with automating deployment is the cut-over itself, taking software from the final stage of testing to live production. We usually need to do this quickly in order to minimize downtime. The blue-green deployment approach does this by ensuring we have two production environments, as identical as possible. At any time one of them, let’s say blue for the example, is live. As we prepare a new release of our software we do our final stage of testing in the green environment. Once the software is working in the green environment, we switch the router so that all incoming requests go to the green environment - the blue one is now idle.

    Blue-green deployment also gives us a rapid way to rollback - if anything goes wrong we switch the router back to our blue environment. There’s still the issue of dealing with missed transactions while the green environment was live, but depending on our design we may be able to feed transactions to both environments in such a way as to keep the blue environment as a backup when the green is live. Or we may be able to put the application in read-only mode before cut-over, run it for a while in read-only mode, and then switch it to read-write mode. That may be enough to flush out many outstanding issues.

    The two environments need to be different but as identical as possible. In some situations they can be different pieces of hardware, or they can be different virtual machines running on the same (or different) hardware. They can also be a single operating environment partitioned into separate zones with separate IP addresses for the two slices.

    Once we’ve put our green environment live and we’re happy with its stability, we then use the blue environment as our staging environment for the final testing step for our next deployment. When we are ready for our next release, we switch from green to blue in the same way that we did from blue to green earlier. That way both green and blue environments are regularly cycling between live, previous version (for rollback) and staging the next version.

    An advantage of this approach is that it’s the same basic mechanism as we need to get a hot-standby working. Hence this allows us to test our disaster-recovery procedure on every release.

    The fundamental idea is to have two easily switchable environments to switch between, there are plenty of ways to vary the details. One project did the switch by bouncing the web server rather than working on the router. Another variation would be to use the same database, making the blue-green switches for web and domain layers.

    Databases can often be a challenge with this technique, particularly when we need to change the schema to support a new version of the software. The trick is to separate the deployment of schema changes from application upgrades. So first apply a database refactoring to change the schema to support both the new and old version of the application, deploy that, check everything is working fine so we have a rollback point, then deploy the new version of the application. (And when the upgrade has bedded down remove the database support for the old version.)

  • Faster time to market. It’s common for the integration and test/fix phase of the traditional phased software delivery lifecycle to consume weeks to even months. When teams work together to automate the build and deployment, environment provisioning, and regression testing process, developers can incorporate integration and regression testing into their daily work and completely remove these phases. We also avoid the large amount of re-work that plague the phased approach.

  • Higher quality and Better products. When developers have automated tools that discover regressions within minutes, teams are freed to focus their effort on user research and higher level testing activities such as exploratory testing, usability testing, and performance and security testing. By building a deployment pipeline, these activities can be performed continuously throughout the delivery process, ensuring quality is built into products and services from the beginning. Continuous delivery makes it economic to work in small batches. This means we can get feedback from users throughout the delivery lifecycle based on working software.

  • Lower costs. Any successful software product or service will evolve significantly over the course of its lifetime. By investing in build, test, deployment and environment automation, we substantially reduce the cost of making and delivering incremental changes to software by eliminating many of the fixed costs associated with the release process.

  • Happier teams. Continuous Delivery makes releases less painful and reduces team burnout. Furthermore, when we release more frequently, software delivery teams can engage more actively with users, learn which ideas work and which don’t, and see first-hand then outcomes of the work they have done. By removing low-value painful activities accociated with software delivery, we can fodus on what we care about most - continuous delighting our users.

Continuous delivery is about continuous, daily improvement - the constant discipline of pursuing higher performance by following the heuristic “if it hurts, do it more often, and bring the pain forward.”

Principles#

There are five principles at the heart of continuous delivery:

  1. Build quality in
  2. Work in small batches
  3. Computers perform repetitive tasks, people solve problems
  4. Relentlessly pursue continuous improvement
  5. Everyone is responsible

It’s easy to get bogged down in the details of implementing continuous delivery - tools, architecture, practices, politics - if you find yourself lost, try revisiting these principles and you may find it helps you refocus on what’s important.

Build Quality In#

W. Edwards Deming, a key figure in the history of the Lean movement, offered 14 key principles for management. Principle three states, “Cease dependence on inspection to achieve quality. Eliminate the need for inspection on a mass basis by building quality into the product in the first place”.

It’s much cheaper to fix problems and defects if we find them immediately - ideally before they are ever checked into version control, by running automated tests locally. Finding defects downstream through inspection (such as manual testing) is time-consuming, requiring significant triage. Then we must fix the defect, trying to recall what we were thinking when we introduced the problem days or perhaps even weeks ago.

Creating and evolving feedback loops to detect problems as early as possible is essential and never-ending work in continuous delivery. If we find a problem in our exploratory testing, we must not only fix it, but then ask: How could we have caught the problem with an automated acceptance test? When an acceptance test fails, we should ask: Could we have written a unit test to catch this problem?

Work in Small Batches#

In traditional phased approaches to software development, handoffs from dev to test or test to IT operations consist of whole releases: months worth of work by teams consisting of tens or hundreds of people.

In continuous delivery, we take the opposite approach, and try and get every change in version control as far towards release as we can, getting comprehensive feedback as rapidly as possible.

Working in small batches has many benefits. It reduces the time it takes to get feedback on our work, makes it easier to triage and remediate problems, increases efficiency and motivation, and prevents us from succumbing to the sunk cost fallacy.

The reason we work in large batches is because of the large fixed cost of handing off changes. A key goal of continuous delivery is to change the economics of the software delivery process to make it economically viable to work in small batches so we can obtain the many benefits of this approach.

NOTE

A key goal of continuous delivery is to change the economics of the software delivery process to make it economically viable to work in small batches so we can obtain the many benefits of this approach

Relentlessly Pursue Continuous Improvement#

Continuous improvement, or kaizen in Japanese, is another key idea from the Lean movement. Taiichi Ohno, a key figure in the history of the Toyota company, once said,

“Kaizen opportunitites are infinite. Don’t think you have made things better than before and be at ease… This would be like the student who becomes proud because they bested their master two times out of three in fencing. Once you pick up the sprouts of kaizen ideas, it is important to have the attitude in our daily work that just underneath one kaizen idea is yet another one”.

Don’t treat transformation as a project to be embarked on and then completed so we can return to business as usual. The best organizations are those where everybody treats improvement work as an essential part of their daily work, and where nobody is satisfied with the status quo.

Everyone is Responsible#

In high performing organizations, nothing is “somebody else’s problem.” Developers are responsible for the quality and stability of the software they build. Operations teams are responsible for helping developers build quality in. Everyone works together to achieve the organizational level goals, rather than optimizing for what’s best for their team or department.

When people make local optimizations that reduce the overall performance of the organization, it’s often due to systemic problems such as poor management systems such as annual budgeting cycles, or incentives that reward the wrong behaviors. A classic example is rewarding developers for increasing their velocity or writing more code, and rewarding testers based on the number of bugs they find.

Most people want to do the right thing, but they will adapt their behaviour based on how they are rewarded. Therefore, it is very important to create fast feedback loops from the things that really matter: how customers react to what we build for them, and the impact on our organization.

Foundations - Prerequisites for Continuous Delivery#

Configuration Management#

Automation plays a vital role in ensuring we can release software repeatably and reliably. One key goal is to take repetitive manual processes like build, deployment, regression testing and infrastructure provisioning, and automate them. In order to achieve this, we need to version control everything required to perform these processes, including source code, test and deployment scripts, infrastructure and application configuration information, and the many libraries and packages we depend upon. We also want to make it straightforward to query the current -and historical - state of our environments.

We have two overriding goals:

  1. Reproducibility: We should be able to provision any environment in a fully automated fashion, and know that any new environment reproduced from the same configuration is identical.
  2. Traceability: We should be able to pick any environment and be able to determine quickly and precisely the versions of every dependency used to create that environment. We also want to be able to compare previous versions of an environment and see what has changed between them.

These capabilities give us several very important benefits:

  1. Disaster recovery: When something goes wrong with one of our environments, for example a hardware failure or a security breach, we need to be able to reproduce that environment in a deterministic amount of time in order to be able to restore service.
  2. Auditability: In order to demonstrate the integrity of the delivery process, we need to be able to show the path backwards from every deployment to the elements it came from, including their version. Comprehensive configuration management, combined with deployment pipelines, enable this.
  3. Higher quality: The software delivery process is often subject to long delays waiting for development, testing and production environments to be prepared. When this can be done automatically from version control, we can get feedback on the impact of our changes much more rapidly, enabling us to build quality in to our software.
  4. Capacity management: When we want to add more capacity to our environments, the ability to create new reproductions of existing servers is essential. This capability, using OpenStack for example, enables the horizontal scaling of modern cloud-based distributed systems.
  5. Response to defects: When we discover a critical defect, or a vulnerability in some component of our system, we want to get a new version of our software released as quickly as possible. Many organizations have an emergency process for this type of change which goes faster by bypassing some of the testing and auditing. This presents an especially serious dilemma in safety-critical systems. Our goal should be to be able to use our normal release process for emergency fixes - which is precisely what continuous delivery enables, on the basis of comprehensive configuration management.

As environments become more complex and heterogeneous, it becomes progressively harder to achieve these goals. Achieving perfect reproducibility and traceability to the last byte for a complex enterprise system is impossible (apart from anything else, every real system has state). Thus a key part of configuration management is working to simplify our architecture, environments and processes to reduce the investment required to achieve the desired benefits.

Configuration Management Learning Resources#

Continuous Integration#

Combining the work of multiple developers is hard. Software systems are complex, and an apparently simple, self-contained change to a single file can easily have unintended consequences which compromise the correctness of the system. As a result, some teams have developers work isolated from each other on their own branches, both to keep trunk/master stable, and to prevent them treading on each other’s toes.

However, over time these branches diverge from each other. While merging a single one of these branches into mainline is not usually troublesome, the work required to integrate multiple long-lived branches into mainline is usually painful, requiring significant amounts of re-work as conflicting assumptions of developers are revealed and must be resolved.

Teams using long-lived branches often require code freezes, or even integration and stabilization phases, as they work to integrate these branches prior to a release. Despite modern tooling, this process is still expensive and unpredictable. On teams larger than a few developers, the integration of multiple branches requires multiple rounds of regression testing and bug fixing to validate that the system will work as expected following these merges. This problem becomes exponentially more severe as team sizes grow, and as branches become more long-lived.

The practice of continuous integration was invented to address these problems. CI (continuous integration) follows the XP (extreme programming) principle that if something is painful, we should do it more often, and bring the pain forward. Thus in CI developers integrate all their work into trunk (also known as mainline or master) on a regular basis (at least daily). A set of automated tests is run both before and after the merge to validate that no regressions are introduced. If these automated tests fail, the team stops what they are doing and someone fixes the problem immediately.

Thus we ensure that the software is always in a working state, and that developer branches do not diverge significantly from trunk. The benefits of continuous integration are very significant - higher levels of throughput, more stable systems, and higher quality software. However the practice is still controversial, for two main reasons.

First, it requires developers to break up large features and other changes into smaller, more incremental steps that can be integrated into trunk/master. This is a paradigm shift for developers who are not used to working in this way. It also takes longer to get large features completed. However in general we don’t want to optimize for the speed at which developers can declare their work “dev complete” on a branch. Rather, we want to be able to get changes reviewed, integrated, tested and deployed as fast as possible - and this process is an order of magnitude faster and cheaper when the changes are small and self-contained, and the branches they live on are short-lived. Working in small batches also ensures developers get regular feedback on the impact of their work on the system as a whole - from other developers, testers, customers, and automated performance and security tests—which in turn makes any problems easier to detect, triage, and fix.

Second, continuous integration requires a fast-running set of comprehensive automated unit tests. These tests should be comprehensive enough to give a good level of confidence that the software will work as expected, while also running in a few minutes or less. If the automated unit tests take longer to run, developers will not want to run them frequently, and they will become harder to maintain. Creating maintainable suites of automated unit tests is complex and is best done through test-driven development (TDD), in which developers write failing automated tests before they implement the code that makes the tests pass. TDD has several benefits, the most important of which is that it ensures developers write code that is modular and easy to test, reducing the maintenance cost of the resulting automated test suites. But TDD is still not sufficiently widely practiced.

Despite these barriers, helping software development teams implement continuous integration should be the number one priority for any organization wanting to start the journey to continuous delivery. By creating rapid feedback loops and ensuring developers work in small batches, CI enables teams to build quality into their software, thus reducing the cost of ongoing software development, and increasing both the productivity of teams and the quality of the work they produce.

Continuous Integration Learning Resources#

Continuous Testing#

The key to building quality into our software is making sure we can get fast feedback on the impact of changes. Traditionally, extensive use was made of manual inspection of code changes and manual testing (testers following documentation describing the steps required to test the various functions of the system) in order to demonstrate the correctness of the system. This type of testing was normally done in a phase following “dev complete”. However this strategy have several drawbacks:

  • Manual regression testing takes a long time and is relatively expensive to perform, creating a bottleneck that prevents us releasing software more frequently, and getting feedback to developers weeks (and sometimes months) after they wrote the code being tested.
  • Manual tests and inspections are not very reliable, since people are notoriously poor at performing repetitive tasks such as regression testing manually, and it is extremely hard to predict the impact of a set of changes on a complex software system through inspection.
  • When systems are evolving over time, as is the case in modern software products and services, we have to spend considerable effort updating test documentation to keep it up-to-date.

In order to build quality in to software, we need to adopt a different approach.

The more features and improvements go into our code, the more we’ll need to test to make sure that all our system works properly. And then for each bug we fix, it would be wise to check that they don’t get back in newer releases. Automation is key to make this possible and writing tests sooner rather than later will become part of our development workflow.

Once we have continuous integration and test automation in place, we create a deployment pipeline. In the deployment pipeline pattern, every change runs a build that

  • creates packages that can be deployed to any environment and
  • runs unit tests (and possibly other tasks such as static analysis), giving feedback to developers in the space of a few minutes.

Packages that pass this set of tests have more comprehensive automated acceptance tests run against them. Once we have packages that pass all the automated tests, they are available for deplyment to other environments.

In the deployment pipeline, every change is effectively a release candidate. The job of the deployment pipeline is to catch known issues. If we can’t detect any known problems, we should feel totally comfortable releasing any packages that have gone through it. If we aren’t, or if we discover defects later, it means we need to improve our pipeline, perhaps adding or updating some tests.

Our goal should be to find problems as soon as possible, and make the lead time from check-in to release as short as possible. Thus we want to parallelize the activities in the deployment pipeline, not have many stages executing in series. If we discover a defect in the acceptance tests, we should be looking to improve our unit tests (most of our defects should be discovered through unit testing).

Different Types of Software Testing#

Unit Tests#

Unit tests are very low level and close to the source of an application. They consist in testing individual methods and functions of the classes, components, or modules used by our software. Unit tests are generally quite cheap to automate and can run very quickly by a continuous integration server.

Integration Tests#

Integration tests verify that different modules or services used by our application work well together. For example, it can be testing the interaction with the database or making sure that microservices work together as expected. These types of tests are more expensive to run as they require multiple parts of the application to be up and running.

Functional Tests#

Functional tests focus on the business requirements of an application. They only verify the output of an action and do not check the intermediate states of the system when performing that action.

There is sometimes a confusion between integration tests and functional tests as they both require multiple components to interact with each other. The difference is that an integration test may simply verify that we can query the database while a functional test would expect to get a specific value from the database as defined by the product requirements.

End-to-End Tests#

End-to-end testing replicates a user behavior with the software in a complete application environment. It verifies that various user flows work as expected and can be as simple as loading a web page or logging in or much more complex scenarios verifying email notifications, online payments, etc…

End-to-end tests are very useful, but they’re expensive to perform and can be hard to maintain when they’re automated. It is recommended to have a few key end-to-end tests and rely more on lower level types of testing (unit and integration tests) to be able to quickly identify breaking changes.

Acceptance Tests#

Acceptance tests are formal tests that verify if a system satisfies business requirements. They require the entire application to be running while testing and focus on replicating user behaviors. But they can also go further and measure the performance of the system and reject changes if certain goals are not met.

Performance Tests#

Performance tests evaluate how a system performs under a particular workload. These tests help to measure the reliability, speed, scalability, and responsiveness of an application. For instance, a performance test can observe response times when executing a high number of requests, or determine how a system behaves with a significant amount of data. It can determine if an application meets performance requirements, locate bottlenecks, measure stability during peak traffic, and more.

Smoke Tests#

Smoke tests are basic tests that check the basic functionality of an application. They are meant to be quick to execute, and their goal is to give us the assurance that the major features of our system are working as expected.

Smoke tests can be useful right after a new build is made to decide whether or not we can run more expensive tests, or right after a deployment to make sure that they application is running properly in the newly deployed environment.

Implementing Continuous Delivery#

Organizations attempting to deploy continuous delivery tend to make two common mistakes. The first is to treat continuous delivery as an end-state, a goal in itself. The second is to spend a lot of time and energy worrying about what products to use.

Evolutionary Architecture#

In the context of enterprise architecture there are typically multiple attributes we are concerned about, for example availability, security, performance, usability and so forth. In continuous delivery, we introduce two new architectural attributes:

  1. testability
  2. deployability

In a testable architecture, we design our software such that most defects can (in principle, at least) be discovered by developers by running automated tests on their workstations. We shouldn’t need to depend on complex, integrated environments in order to do the majority of our acceptance and regression testing.

In a deployable architecture, deployments of a particular product or service can be performed independently and in a fully automated fashion, without the need for significant levels of orchestration. Deployable systems can typically be upgraded or reconfigured with zero or minimal downtime.

Where testability and deployability are not prioritized, we find that much testing requires the use of complex, integrated environments, and deployments are “big bang” events that require that many services are released at the same time due to complex interdependencies. These “big bang” deployments require many teams to work together in a carefully orchestrated fashion with many hand-offs, and dependencies between hundreds or thousands of tasks. Such deployments typically take many hours or even days, and require scheduling significant downtime.

Designing for testability and deployability starts with ensuring our products and services are composed of loosely-coupled, well-encapsulated components or modules

We can define a well-designed modular architecture as one in which it is possible to test or deploy a single component or service on its own, with any dependencies replaced by a suitable test double, which could be in the form of a virtual machine, a stub, or a mock. Each component or service should be deployable in a fully automated fashion on developer workstations, test environments, or in production. In a well-designed architecture, it is possible to get a high level of confidence the component is operating properly when deployed in this fashion.

:::note Test Double

Test Double is a generic term for any case where you replace a production object for testing purposes. There are various kinds of double:

  • Dummy objects are passed around but never actually used. Usually they are just used to fill parameter lists.
  • Fake objects actually have working implementations, but usually take some shortcut which makes them not suitable for production (an InMemoryTestDatabase is a good example).
  • Stubs provide canned answers to calls made during the test, usually not responding at all to anything outside what’s programmed in for the test.
  • Spies are stubs that also record some information based on how they were called. One form of this might be an email service that records how many messages it was sent.
  • Mocks are pre-programmed with expectations which form a specification of the calls they are expected to receive. They can throw an exception if they receive a call they don’t expect and are checked during verification to ensure they got all the calls they were expecting.

:::

Any true service-oriented architecture should have these properties—but unfortunately many do not. However, the microservices movement has explicitly prioritized these architectural properties.

Of course, many organizations are living in a world where services are distinctly hard to test and deploy. Rather than re-architecting everything, we recommend an iterative approach to improving the design of enterprise system, sometimes known as evolutionary architecture. In the evolutionary architecture paradigm, we accept that successful products and services will require re-architecting during their lifecycle due to the changing requirements placed on them.

One pattern that is particularly valuable in this context is the strangler application. In this pattern, we iteratively replace a monolithic architecture with a more componentized one by ensuring that new work is done following the principles of a service-oriented architecture, while accepting that the new architecture may well delegate to the system it is replacing. Over time, more and more functionality will be performed in the new architecture, and the old system being replaced is “strangled”.

Patterns#

The Deployment Pipeline#

The key pattern introduced in continuous delivery is the deployment pipeline. Our goal was to make deployment to any environment a fully automated, scripted process that could be performed on demand in minutes. We wanted to be able to configure testing and production environments purely from configuration files stored in version control. The apparatus we used to perform these tasks became known as deployment pipelines

In the deployment pipeline pattern, every change in version control triggers a process (usually in a CI server) which creates deployable packages and runs automated unit tests and other validations such as static code analysis. This first step is optimized so that it takes only a few minutes to run. If this initial commit stage fails, the problem must be fixed immediately; nobody should check in more work on a broken commit stage. Every passing commit stage triggers the next step in the pipeline, which might consist of a more comprehensive set of automated tests. Versions of the software that pass all the automated tests can then be deployed to production.

Deployment pipelines tie together configuration management, continuous integration and test and deployment automation in a holistic, powerful way that works to improve software quality, increase stability, and reduce the time and cost required to make incremental changes to software, whatever domain we’re operating in. When building a deployment pipeline, the following practices become valuable:

  • Only build packages once. We want to be sure the thing we’re deploying is the same thing we’ve tested throughout the deployment pipeline, so if a deployment fails we can eliminate the packages as the source of the failure.
  • Deploy the same way to every environment, including development. This way, we test the deployment process many, many times before it gets to production, and again, we can eliminate it as the source of any problems.
  • Smoke test your deployments. Have a script that validates all your application’s dependencies are available, at the location you have configured your application. Make sure your application is running and available as part of the deployment process.
  • Keep your environments similar. Although they may differ in hardware configuration, they should have the same version of the operating system and middleware packages, and they should be configured in the same way. This has become much easier to achieve with modern virtualization and container technology.

With the advent of infrastructure as code, it has became possible to use deployment pipelines to create a fully automated process for taking all kinds of changes—including database and infrastructure changes

Patterns for Low-Risk Releases#

In the context of web-based systems there are a number of patterns that can be applied to further reduce the risk of deployments. Michael Nygard also describes a number of important software design patterns which are instrumental in creating resilient large-scale systems in his book Release It!

The 3 key principles that enable low-risk releases are

  1. Optimize for Resilience. Once we accept that failures are inevitable, we should start to move away from the idea of investing all our effort in preventing problems, and think instead about how to restore service as rapidly as possible when something goes wrong. Furthermore, when an accident occurs, we should treat it as a learning opportunity. Resilience isn’t just a feature of our systems, it’s a characteristic of a team’s culture. High performance organizations are constantly working to improve the resilience of their systems by trying to break them and implementing the lessons learned in the course of doing so.
  2. Low-risk Releases are Incremental. Our goal is to architect our systems such that we can release individual changes (including database changes) independently, rather than having to orchestrate big-bang releases due to tight coupling between multiple different systems.
  3. Focus on Reducing Batch Size. Counterintuitively, deploying to production more frequently actually reduces the risk of release when done properly, simply because the amount of change in each deployment is smaller. When each deployment consists of tens of lines of code or a few configuration settings, it becomes much easier to perform root cause analysis and restore service in the case of an incident. Furthermore, because we practice the deployment process so frequently, we’re forced to simplify and automate it which further reduces risk.
Continuous Delivery
https://leadership.qubitpi.org/posts/continuous-delivery/
Author
【烬火】胡桃
Published at
2022-08-31
\ No newline at end of file +Continuous Delivery - Jiaqi's Leadership Blog
5539 words
28 minutes
Continuous Delivery

Continuous delivery is an approach where teams release quality products frequently and predictably from source code repository to production in an automated fashion.

What is Continuous Delivery#

Continuous Delivery is the ability to get changes of all types - including new features, configuration changes, bug fixes and experiments - into production, or into the hands of users, safely and quickly in a sustainable way.

The goal of continuous delivery is to make deployments - whether of a large-scale distributed system, a complex production environment, an embedded system, or an app - predictable, routine affairs that can be performed on demand.

We achieve all this by ensuring our code is always in a deployable state, even in the face of teams of thousands of developers making changes on a daily basis. We thus completely eliminate the integration, testing and hardening phases that traditionally followed “dev complete”, as well as code freezes.

Why Continuous Delivery#

It is often assumed that if we want to deploy software more frequently, we must accept lower levels of stability and reliability in our systems. In fact, peer-reviewed research shows that this is not the case. High performance teams consistently deliver services faster and more reliably than their low performing competition. This is true even in highly regulated domains such as financial services and government. This capability provides an incredible competitive advantage for organizations that are willing to invest the effort to pursue it.

NOTE
  • Firms with high-performing IT organizations were twice as likely to exceed their profitability, market share and productivity goals.
  • High performers achieved higher levels of both throughput and stability.
  • The use of continuous delivery practices including version control, continuous integration, and test automation predicts higher IT performance.
  • Culture is measurable and predicts job satisfaction and organizational performance.
  • Continuous Delivery measurably reduces both deployment pain and team burnout.

The practices at the heart of continuous delivery help us achieve several important benefits:

  • Low risk releases. The primary goal of continuous delivery is to make software deployments painless, low-risk events that can be performed at any time, on demand. By applying patterns such as blue-green deployments it is relatively straightforward to achieve zero-downtime deployments that are undetectable to users.

    Blue-green Deployment

    Error loading blue-green-deployments.png

    One of the challenges with automating deployment is the cut-over itself, taking software from the final stage of testing to live production. We usually need to do this quickly in order to minimize downtime. The blue-green deployment approach does this by ensuring we have two production environments, as identical as possible. At any time one of them, let’s say blue for the example, is live. As we prepare a new release of our software we do our final stage of testing in the green environment. Once the software is working in the green environment, we switch the router so that all incoming requests go to the green environment - the blue one is now idle.

    Blue-green deployment also gives us a rapid way to rollback - if anything goes wrong we switch the router back to our blue environment. There’s still the issue of dealing with missed transactions while the green environment was live, but depending on our design we may be able to feed transactions to both environments in such a way as to keep the blue environment as a backup when the green is live. Or we may be able to put the application in read-only mode before cut-over, run it for a while in read-only mode, and then switch it to read-write mode. That may be enough to flush out many outstanding issues.

    The two environments need to be different but as identical as possible. In some situations they can be different pieces of hardware, or they can be different virtual machines running on the same (or different) hardware. They can also be a single operating environment partitioned into separate zones with separate IP addresses for the two slices.

    Once we’ve put our green environment live and we’re happy with its stability, we then use the blue environment as our staging environment for the final testing step for our next deployment. When we are ready for our next release, we switch from green to blue in the same way that we did from blue to green earlier. That way both green and blue environments are regularly cycling between live, previous version (for rollback) and staging the next version.

    An advantage of this approach is that it’s the same basic mechanism as we need to get a hot-standby working. Hence this allows us to test our disaster-recovery procedure on every release.

    The fundamental idea is to have two easily switchable environments to switch between, there are plenty of ways to vary the details. One project did the switch by bouncing the web server rather than working on the router. Another variation would be to use the same database, making the blue-green switches for web and domain layers.

    Databases can often be a challenge with this technique, particularly when we need to change the schema to support a new version of the software. The trick is to separate the deployment of schema changes from application upgrades. So first apply a database refactoring to change the schema to support both the new and old version of the application, deploy that, check everything is working fine so we have a rollback point, then deploy the new version of the application. (And when the upgrade has bedded down remove the database support for the old version.)

  • Faster time to market. It’s common for the integration and test/fix phase of the traditional phased software delivery lifecycle to consume weeks to even months. When teams work together to automate the build and deployment, environment provisioning, and regression testing process, developers can incorporate integration and regression testing into their daily work and completely remove these phases. We also avoid the large amount of re-work that plague the phased approach.

  • Higher quality and Better products. When developers have automated tools that discover regressions within minutes, teams are freed to focus their effort on user research and higher level testing activities such as exploratory testing, usability testing, and performance and security testing. By building a deployment pipeline, these activities can be performed continuously throughout the delivery process, ensuring quality is built into products and services from the beginning. Continuous delivery makes it economic to work in small batches. This means we can get feedback from users throughout the delivery lifecycle based on working software.

  • Lower costs. Any successful software product or service will evolve significantly over the course of its lifetime. By investing in build, test, deployment and environment automation, we substantially reduce the cost of making and delivering incremental changes to software by eliminating many of the fixed costs associated with the release process.

  • Happier teams. Continuous Delivery makes releases less painful and reduces team burnout. Furthermore, when we release more frequently, software delivery teams can engage more actively with users, learn which ideas work and which don’t, and see first-hand then outcomes of the work they have done. By removing low-value painful activities accociated with software delivery, we can fodus on what we care about most - continuous delighting our users.

Continuous delivery is about continuous, daily improvement - the constant discipline of pursuing higher performance by following the heuristic “if it hurts, do it more often, and bring the pain forward.”

Principles#

There are five principles at the heart of continuous delivery:

  1. Build quality in
  2. Work in small batches
  3. Computers perform repetitive tasks, people solve problems
  4. Relentlessly pursue continuous improvement
  5. Everyone is responsible

It’s easy to get bogged down in the details of implementing continuous delivery - tools, architecture, practices, politics - if you find yourself lost, try revisiting these principles and you may find it helps you refocus on what’s important.

Build Quality In#

W. Edwards Deming, a key figure in the history of the Lean movement, offered 14 key principles for management. Principle three states, “Cease dependence on inspection to achieve quality. Eliminate the need for inspection on a mass basis by building quality into the product in the first place”.

It’s much cheaper to fix problems and defects if we find them immediately - ideally before they are ever checked into version control, by running automated tests locally. Finding defects downstream through inspection (such as manual testing) is time-consuming, requiring significant triage. Then we must fix the defect, trying to recall what we were thinking when we introduced the problem days or perhaps even weeks ago.

Creating and evolving feedback loops to detect problems as early as possible is essential and never-ending work in continuous delivery. If we find a problem in our exploratory testing, we must not only fix it, but then ask: How could we have caught the problem with an automated acceptance test? When an acceptance test fails, we should ask: Could we have written a unit test to catch this problem?

Work in Small Batches#

In traditional phased approaches to software development, handoffs from dev to test or test to IT operations consist of whole releases: months worth of work by teams consisting of tens or hundreds of people.

In continuous delivery, we take the opposite approach, and try and get every change in version control as far towards release as we can, getting comprehensive feedback as rapidly as possible.

Working in small batches has many benefits. It reduces the time it takes to get feedback on our work, makes it easier to triage and remediate problems, increases efficiency and motivation, and prevents us from succumbing to the sunk cost fallacy.

The reason we work in large batches is because of the large fixed cost of handing off changes. A key goal of continuous delivery is to change the economics of the software delivery process to make it economically viable to work in small batches so we can obtain the many benefits of this approach.

NOTE

A key goal of continuous delivery is to change the economics of the software delivery process to make it economically viable to work in small batches so we can obtain the many benefits of this approach

Relentlessly Pursue Continuous Improvement#

Continuous improvement, or kaizen in Japanese, is another key idea from the Lean movement. Taiichi Ohno, a key figure in the history of the Toyota company, once said,

“Kaizen opportunitites are infinite. Don’t think you have made things better than before and be at ease… This would be like the student who becomes proud because they bested their master two times out of three in fencing. Once you pick up the sprouts of kaizen ideas, it is important to have the attitude in our daily work that just underneath one kaizen idea is yet another one”.

Don’t treat transformation as a project to be embarked on and then completed so we can return to business as usual. The best organizations are those where everybody treats improvement work as an essential part of their daily work, and where nobody is satisfied with the status quo.

Everyone is Responsible#

In high performing organizations, nothing is “somebody else’s problem.” Developers are responsible for the quality and stability of the software they build. Operations teams are responsible for helping developers build quality in. Everyone works together to achieve the organizational level goals, rather than optimizing for what’s best for their team or department.

When people make local optimizations that reduce the overall performance of the organization, it’s often due to systemic problems such as poor management systems such as annual budgeting cycles, or incentives that reward the wrong behaviors. A classic example is rewarding developers for increasing their velocity or writing more code, and rewarding testers based on the number of bugs they find.

Most people want to do the right thing, but they will adapt their behaviour based on how they are rewarded. Therefore, it is very important to create fast feedback loops from the things that really matter: how customers react to what we build for them, and the impact on our organization.

Foundations - Prerequisites for Continuous Delivery#

Configuration Management#

Automation plays a vital role in ensuring we can release software repeatably and reliably. One key goal is to take repetitive manual processes like build, deployment, regression testing and infrastructure provisioning, and automate them. In order to achieve this, we need to version control everything required to perform these processes, including source code, test and deployment scripts, infrastructure and application configuration information, and the many libraries and packages we depend upon. We also want to make it straightforward to query the current -and historical - state of our environments.

We have two overriding goals:

  1. Reproducibility: We should be able to provision any environment in a fully automated fashion, and know that any new environment reproduced from the same configuration is identical.
  2. Traceability: We should be able to pick any environment and be able to determine quickly and precisely the versions of every dependency used to create that environment. We also want to be able to compare previous versions of an environment and see what has changed between them.

These capabilities give us several very important benefits:

  1. Disaster recovery: When something goes wrong with one of our environments, for example a hardware failure or a security breach, we need to be able to reproduce that environment in a deterministic amount of time in order to be able to restore service.
  2. Auditability: In order to demonstrate the integrity of the delivery process, we need to be able to show the path backwards from every deployment to the elements it came from, including their version. Comprehensive configuration management, combined with deployment pipelines, enable this.
  3. Higher quality: The software delivery process is often subject to long delays waiting for development, testing and production environments to be prepared. When this can be done automatically from version control, we can get feedback on the impact of our changes much more rapidly, enabling us to build quality in to our software.
  4. Capacity management: When we want to add more capacity to our environments, the ability to create new reproductions of existing servers is essential. This capability, using OpenStack for example, enables the horizontal scaling of modern cloud-based distributed systems.
  5. Response to defects: When we discover a critical defect, or a vulnerability in some component of our system, we want to get a new version of our software released as quickly as possible. Many organizations have an emergency process for this type of change which goes faster by bypassing some of the testing and auditing. This presents an especially serious dilemma in safety-critical systems. Our goal should be to be able to use our normal release process for emergency fixes - which is precisely what continuous delivery enables, on the basis of comprehensive configuration management.

As environments become more complex and heterogeneous, it becomes progressively harder to achieve these goals. Achieving perfect reproducibility and traceability to the last byte for a complex enterprise system is impossible (apart from anything else, every real system has state). Thus a key part of configuration management is working to simplify our architecture, environments and processes to reduce the investment required to achieve the desired benefits.

Configuration Management Learning Resources#

Continuous Integration#

Combining the work of multiple developers is hard. Software systems are complex, and an apparently simple, self-contained change to a single file can easily have unintended consequences which compromise the correctness of the system. As a result, some teams have developers work isolated from each other on their own branches, both to keep trunk/master stable, and to prevent them treading on each other’s toes.

However, over time these branches diverge from each other. While merging a single one of these branches into mainline is not usually troublesome, the work required to integrate multiple long-lived branches into mainline is usually painful, requiring significant amounts of re-work as conflicting assumptions of developers are revealed and must be resolved.

Teams using long-lived branches often require code freezes, or even integration and stabilization phases, as they work to integrate these branches prior to a release. Despite modern tooling, this process is still expensive and unpredictable. On teams larger than a few developers, the integration of multiple branches requires multiple rounds of regression testing and bug fixing to validate that the system will work as expected following these merges. This problem becomes exponentially more severe as team sizes grow, and as branches become more long-lived.

The practice of continuous integration was invented to address these problems. CI (continuous integration) follows the XP (extreme programming) principle that if something is painful, we should do it more often, and bring the pain forward. Thus in CI developers integrate all their work into trunk (also known as mainline or master) on a regular basis (at least daily). A set of automated tests is run both before and after the merge to validate that no regressions are introduced. If these automated tests fail, the team stops what they are doing and someone fixes the problem immediately.

Thus we ensure that the software is always in a working state, and that developer branches do not diverge significantly from trunk. The benefits of continuous integration are very significant - higher levels of throughput, more stable systems, and higher quality software. However the practice is still controversial, for two main reasons.

First, it requires developers to break up large features and other changes into smaller, more incremental steps that can be integrated into trunk/master. This is a paradigm shift for developers who are not used to working in this way. It also takes longer to get large features completed. However in general we don’t want to optimize for the speed at which developers can declare their work “dev complete” on a branch. Rather, we want to be able to get changes reviewed, integrated, tested and deployed as fast as possible - and this process is an order of magnitude faster and cheaper when the changes are small and self-contained, and the branches they live on are short-lived. Working in small batches also ensures developers get regular feedback on the impact of their work on the system as a whole - from other developers, testers, customers, and automated performance and security tests—which in turn makes any problems easier to detect, triage, and fix.

Second, continuous integration requires a fast-running set of comprehensive automated unit tests. These tests should be comprehensive enough to give a good level of confidence that the software will work as expected, while also running in a few minutes or less. If the automated unit tests take longer to run, developers will not want to run them frequently, and they will become harder to maintain. Creating maintainable suites of automated unit tests is complex and is best done through test-driven development (TDD), in which developers write failing automated tests before they implement the code that makes the tests pass. TDD has several benefits, the most important of which is that it ensures developers write code that is modular and easy to test, reducing the maintenance cost of the resulting automated test suites. But TDD is still not sufficiently widely practiced.

Despite these barriers, helping software development teams implement continuous integration should be the number one priority for any organization wanting to start the journey to continuous delivery. By creating rapid feedback loops and ensuring developers work in small batches, CI enables teams to build quality into their software, thus reducing the cost of ongoing software development, and increasing both the productivity of teams and the quality of the work they produce.

Continuous Integration Learning Resources#

Continuous Testing#

The key to building quality into our software is making sure we can get fast feedback on the impact of changes. Traditionally, extensive use was made of manual inspection of code changes and manual testing (testers following documentation describing the steps required to test the various functions of the system) in order to demonstrate the correctness of the system. This type of testing was normally done in a phase following “dev complete”. However this strategy have several drawbacks:

  • Manual regression testing takes a long time and is relatively expensive to perform, creating a bottleneck that prevents us releasing software more frequently, and getting feedback to developers weeks (and sometimes months) after they wrote the code being tested.
  • Manual tests and inspections are not very reliable, since people are notoriously poor at performing repetitive tasks such as regression testing manually, and it is extremely hard to predict the impact of a set of changes on a complex software system through inspection.
  • When systems are evolving over time, as is the case in modern software products and services, we have to spend considerable effort updating test documentation to keep it up-to-date.

In order to build quality in to software, we need to adopt a different approach.

The more features and improvements go into our code, the more we’ll need to test to make sure that all our system works properly. And then for each bug we fix, it would be wise to check that they don’t get back in newer releases. Automation is key to make this possible and writing tests sooner rather than later will become part of our development workflow.

Once we have continuous integration and test automation in place, we create a deployment pipeline. In the deployment pipeline pattern, every change runs a build that

  • creates packages that can be deployed to any environment and
  • runs unit tests (and possibly other tasks such as static analysis), giving feedback to developers in the space of a few minutes.

Packages that pass this set of tests have more comprehensive automated acceptance tests run against them. Once we have packages that pass all the automated tests, they are available for deplyment to other environments.

In the deployment pipeline, every change is effectively a release candidate. The job of the deployment pipeline is to catch known issues. If we can’t detect any known problems, we should feel totally comfortable releasing any packages that have gone through it. If we aren’t, or if we discover defects later, it means we need to improve our pipeline, perhaps adding or updating some tests.

Our goal should be to find problems as soon as possible, and make the lead time from check-in to release as short as possible. Thus we want to parallelize the activities in the deployment pipeline, not have many stages executing in series. If we discover a defect in the acceptance tests, we should be looking to improve our unit tests (most of our defects should be discovered through unit testing).

Different Types of Software Testing#

Unit Tests#

Unit tests are very low level and close to the source of an application. They consist in testing individual methods and functions of the classes, components, or modules used by our software. Unit tests are generally quite cheap to automate and can run very quickly by a continuous integration server.

Integration Tests#

Integration tests verify that different modules or services used by our application work well together. For example, it can be testing the interaction with the database or making sure that microservices work together as expected. These types of tests are more expensive to run as they require multiple parts of the application to be up and running.

Functional Tests#

Functional tests focus on the business requirements of an application. They only verify the output of an action and do not check the intermediate states of the system when performing that action.

There is sometimes a confusion between integration tests and functional tests as they both require multiple components to interact with each other. The difference is that an integration test may simply verify that we can query the database while a functional test would expect to get a specific value from the database as defined by the product requirements.

End-to-End Tests#

End-to-end testing replicates a user behavior with the software in a complete application environment. It verifies that various user flows work as expected and can be as simple as loading a web page or logging in or much more complex scenarios verifying email notifications, online payments, etc…

End-to-end tests are very useful, but they’re expensive to perform and can be hard to maintain when they’re automated. It is recommended to have a few key end-to-end tests and rely more on lower level types of testing (unit and integration tests) to be able to quickly identify breaking changes.

Acceptance Tests#

Acceptance tests are formal tests that verify if a system satisfies business requirements. They require the entire application to be running while testing and focus on replicating user behaviors. But they can also go further and measure the performance of the system and reject changes if certain goals are not met.

Performance Tests#

Performance tests evaluate how a system performs under a particular workload. These tests help to measure the reliability, speed, scalability, and responsiveness of an application. For instance, a performance test can observe response times when executing a high number of requests, or determine how a system behaves with a significant amount of data. It can determine if an application meets performance requirements, locate bottlenecks, measure stability during peak traffic, and more.

Smoke Tests#

Smoke tests are basic tests that check the basic functionality of an application. They are meant to be quick to execute, and their goal is to give us the assurance that the major features of our system are working as expected.

Smoke tests can be useful right after a new build is made to decide whether or not we can run more expensive tests, or right after a deployment to make sure that they application is running properly in the newly deployed environment.

Implementing Continuous Delivery#

Organizations attempting to deploy continuous delivery tend to make two common mistakes. The first is to treat continuous delivery as an end-state, a goal in itself. The second is to spend a lot of time and energy worrying about what products to use.

Evolutionary Architecture#

In the context of enterprise architecture there are typically multiple attributes we are concerned about, for example availability, security, performance, usability and so forth. In continuous delivery, we introduce two new architectural attributes:

  1. testability
  2. deployability

In a testable architecture, we design our software such that most defects can (in principle, at least) be discovered by developers by running automated tests on their workstations. We shouldn’t need to depend on complex, integrated environments in order to do the majority of our acceptance and regression testing.

In a deployable architecture, deployments of a particular product or service can be performed independently and in a fully automated fashion, without the need for significant levels of orchestration. Deployable systems can typically be upgraded or reconfigured with zero or minimal downtime.

Where testability and deployability are not prioritized, we find that much testing requires the use of complex, integrated environments, and deployments are “big bang” events that require that many services are released at the same time due to complex interdependencies. These “big bang” deployments require many teams to work together in a carefully orchestrated fashion with many hand-offs, and dependencies between hundreds or thousands of tasks. Such deployments typically take many hours or even days, and require scheduling significant downtime.

Designing for testability and deployability starts with ensuring our products and services are composed of loosely-coupled, well-encapsulated components or modules

We can define a well-designed modular architecture as one in which it is possible to test or deploy a single component or service on its own, with any dependencies replaced by a suitable test double, which could be in the form of a virtual machine, a stub, or a mock. Each component or service should be deployable in a fully automated fashion on developer workstations, test environments, or in production. In a well-designed architecture, it is possible to get a high level of confidence the component is operating properly when deployed in this fashion.

:::note Test Double

Test Double is a generic term for any case where you replace a production object for testing purposes. There are various kinds of double:

  • Dummy objects are passed around but never actually used. Usually they are just used to fill parameter lists.
  • Fake objects actually have working implementations, but usually take some shortcut which makes them not suitable for production (an InMemoryTestDatabase is a good example).
  • Stubs provide canned answers to calls made during the test, usually not responding at all to anything outside what’s programmed in for the test.
  • Spies are stubs that also record some information based on how they were called. One form of this might be an email service that records how many messages it was sent.
  • Mocks are pre-programmed with expectations which form a specification of the calls they are expected to receive. They can throw an exception if they receive a call they don’t expect and are checked during verification to ensure they got all the calls they were expecting.

:::

Any true service-oriented architecture should have these properties—but unfortunately many do not. However, the microservices movement has explicitly prioritized these architectural properties.

Of course, many organizations are living in a world where services are distinctly hard to test and deploy. Rather than re-architecting everything, we recommend an iterative approach to improving the design of enterprise system, sometimes known as evolutionary architecture. In the evolutionary architecture paradigm, we accept that successful products and services will require re-architecting during their lifecycle due to the changing requirements placed on them.

One pattern that is particularly valuable in this context is the strangler application. In this pattern, we iteratively replace a monolithic architecture with a more componentized one by ensuring that new work is done following the principles of a service-oriented architecture, while accepting that the new architecture may well delegate to the system it is replacing. Over time, more and more functionality will be performed in the new architecture, and the old system being replaced is “strangled”.

Patterns#

The Deployment Pipeline#

The key pattern introduced in continuous delivery is the deployment pipeline. Our goal was to make deployment to any environment a fully automated, scripted process that could be performed on demand in minutes. We wanted to be able to configure testing and production environments purely from configuration files stored in version control. The apparatus we used to perform these tasks became known as deployment pipelines

In the deployment pipeline pattern, every change in version control triggers a process (usually in a CI server) which creates deployable packages and runs automated unit tests and other validations such as static code analysis. This first step is optimized so that it takes only a few minutes to run. If this initial commit stage fails, the problem must be fixed immediately; nobody should check in more work on a broken commit stage. Every passing commit stage triggers the next step in the pipeline, which might consist of a more comprehensive set of automated tests. Versions of the software that pass all the automated tests can then be deployed to production.

Deployment pipelines tie together configuration management, continuous integration and test and deployment automation in a holistic, powerful way that works to improve software quality, increase stability, and reduce the time and cost required to make incremental changes to software, whatever domain we’re operating in. When building a deployment pipeline, the following practices become valuable:

  • Only build packages once. We want to be sure the thing we’re deploying is the same thing we’ve tested throughout the deployment pipeline, so if a deployment fails we can eliminate the packages as the source of the failure.
  • Deploy the same way to every environment, including development. This way, we test the deployment process many, many times before it gets to production, and again, we can eliminate it as the source of any problems.
  • Smoke test your deployments. Have a script that validates all your application’s dependencies are available, at the location you have configured your application. Make sure your application is running and available as part of the deployment process.
  • Keep your environments similar. Although they may differ in hardware configuration, they should have the same version of the operating system and middleware packages, and they should be configured in the same way. This has become much easier to achieve with modern virtualization and container technology.

With the advent of infrastructure as code, it has became possible to use deployment pipelines to create a fully automated process for taking all kinds of changes—including database and infrastructure changes

Patterns for Low-Risk Releases#

In the context of web-based systems there are a number of patterns that can be applied to further reduce the risk of deployments. Michael Nygard also describes a number of important software design patterns which are instrumental in creating resilient large-scale systems in his book Release It!

The 3 key principles that enable low-risk releases are

  1. Optimize for Resilience. Once we accept that failures are inevitable, we should start to move away from the idea of investing all our effort in preventing problems, and think instead about how to restore service as rapidly as possible when something goes wrong. Furthermore, when an accident occurs, we should treat it as a learning opportunity. Resilience isn’t just a feature of our systems, it’s a characteristic of a team’s culture. High performance organizations are constantly working to improve the resilience of their systems by trying to break them and implementing the lessons learned in the course of doing so.
  2. Low-risk Releases are Incremental. Our goal is to architect our systems such that we can release individual changes (including database changes) independently, rather than having to orchestrate big-bang releases due to tight coupling between multiple different systems.
  3. Focus on Reducing Batch Size. Counterintuitively, deploying to production more frequently actually reduces the risk of release when done properly, simply because the amount of change in each deployment is smaller. When each deployment consists of tens of lines of code or a few configuration settings, it becomes much easier to perform root cause analysis and restore service in the case of an incident. Furthermore, because we practice the deployment process so frequently, we’re forced to simplify and automate it which further reduces risk.
Continuous Delivery
https://leadership.qubitpi.org/posts/continuous-delivery/
Author
【烬火】胡桃
Published at
2022-08-31
\ No newline at end of file diff --git a/posts/declaration-of-independence/index.html b/posts/declaration-of-independence/index.html index 0e90b6bed..13e2a856e 100644 --- a/posts/declaration-of-independence/index.html +++ b/posts/declaration-of-independence/index.html @@ -1 +1 @@ -Infinite Game - Declaration of Independence - Jiaqi's Leadership Blog
546 words
3 minutes
Infinite Game - Declaration of Independence

Error loading declaration-of-independence.png

Source

The Infinite Game. New York: Portfolio/Penguin, 2019. ISBN 9780735213500, Chapter 2 - What a Just Cause Is - For something — affirmative and optimistic

A Just Cause is something we stand for and believe in, not something we oppose. Leaders can rally people against something quite easily. They can whip them into a frenzy, even. For our emotions can run hot when we are angry or afraid. Being for something, in contrast, is about feeling inspired. Being for ignites the human spirit and fills us with hope and optimism. Being against is about vilifying, demonizing or rejecting. Being for is about inviting all to join in common cause. Being against focuses our attention on the things we can see in order to elicit reactions. Being for focuses our attention on the unbuilt future in order to spark our imaginations.

Imagine if instead of fighting against poverty, for example, we fought for the right of every human to provide for their own family. The first creates a common enemy, something we are against. It sets up the Cause as if it is “winnable,” i.e., a finite game. It leads us to believe that we can defeat poverty once and for all. The second gives us a cause to advance. The impact of the two perspectives is more than semantics. It affects how we view the problem/vision that affects our ideas on how we can contribute. Where the first offers us a problem to solve, the second offers a vision of possibility, dignity and empowerment. We are not inspired to “reduce” poverty, we are inspired to “grow” the number of people who are able to provide for themselves and their families. Being for or being against is a subtle but profound difference that the writers of the Declaration of Independence intuitively understood.

Those who led America toward independence stood against Great Britain in the short term. Indeed the American colonists were deeply offended by how they were treated by England. Over 60 percent of the Declaration of Independence is spent laying out specific grievances against the king. However, the Cause they were fighting for was the true source of lasting inspiration, and in the Declaration of Independence it came before anything else. It is the first idea we read in the document. It sets the context for the rest of the Declaration and the direction for moving forward. It is the ideal to which we personally relate and that we have easily committed to memory. Few Americans, except for scholars and the most zealous of history buffs, can rattle off even one of the complaints listed later in the document, things like: “He has endeavored to prevent the Population of these States; for that purpose obstructing the Laws for naturalization of foreigners; refusing to pass others to encourage their Migrations hither, and raising the Conditions of new Appropriations of Lands.” In contrast, most Americans can recite with ease “all men are created equal” and can usually rattle off the three tenets of “Life, Liberty and the pursuit of Happiness.” These words are indelibly marked on the cultural psyche. Invoked by patriots and politicians alike, they remind Americans of who we strive to be and the ideals upon which our nation was founded. They tell us what we stand for.

Infinite Game - Declaration of Independence
https://leadership.qubitpi.org/posts/declaration-of-independence/
Author
【烬火】胡桃
Published at
2024-08-04
\ No newline at end of file +Infinite Game - Declaration of Independence - Jiaqi's Leadership Blog
546 words
3 minutes
Infinite Game - Declaration of Independence

Error loading declaration-of-independence.png

Source

The Infinite Game. New York: Portfolio/Penguin, 2019. ISBN 9780735213500, Chapter 2 - What a Just Cause Is - For something — affirmative and optimistic

A Just Cause is something we stand for and believe in, not something we oppose. Leaders can rally people against something quite easily. They can whip them into a frenzy, even. For our emotions can run hot when we are angry or afraid. Being for something, in contrast, is about feeling inspired. Being for ignites the human spirit and fills us with hope and optimism. Being against is about vilifying, demonizing or rejecting. Being for is about inviting all to join in common cause. Being against focuses our attention on the things we can see in order to elicit reactions. Being for focuses our attention on the unbuilt future in order to spark our imaginations.

Imagine if instead of fighting against poverty, for example, we fought for the right of every human to provide for their own family. The first creates a common enemy, something we are against. It sets up the Cause as if it is “winnable,” i.e., a finite game. It leads us to believe that we can defeat poverty once and for all. The second gives us a cause to advance. The impact of the two perspectives is more than semantics. It affects how we view the problem/vision that affects our ideas on how we can contribute. Where the first offers us a problem to solve, the second offers a vision of possibility, dignity and empowerment. We are not inspired to “reduce” poverty, we are inspired to “grow” the number of people who are able to provide for themselves and their families. Being for or being against is a subtle but profound difference that the writers of the Declaration of Independence intuitively understood.

Those who led America toward independence stood against Great Britain in the short term. Indeed the American colonists were deeply offended by how they were treated by England. Over 60 percent of the Declaration of Independence is spent laying out specific grievances against the king. However, the Cause they were fighting for was the true source of lasting inspiration, and in the Declaration of Independence it came before anything else. It is the first idea we read in the document. It sets the context for the rest of the Declaration and the direction for moving forward. It is the ideal to which we personally relate and that we have easily committed to memory. Few Americans, except for scholars and the most zealous of history buffs, can rattle off even one of the complaints listed later in the document, things like: “He has endeavored to prevent the Population of these States; for that purpose obstructing the Laws for naturalization of foreigners; refusing to pass others to encourage their Migrations hither, and raising the Conditions of new Appropriations of Lands.” In contrast, most Americans can recite with ease “all men are created equal” and can usually rattle off the three tenets of “Life, Liberty and the pursuit of Happiness.” These words are indelibly marked on the cultural psyche. Invoked by patriots and politicians alike, they remind Americans of who we strive to be and the ideals upon which our nation was founded. They tell us what we stand for.

Infinite Game - Declaration of Independence
https://leadership.qubitpi.org/posts/declaration-of-independence/
Author
【烬火】胡桃
Published at
2024-08-04
\ No newline at end of file diff --git a/posts/docker-c-advisor/index.html b/posts/docker-c-advisor/index.html index 98a0c708f..e3c215ac8 100644 --- a/posts/docker-c-advisor/index.html +++ b/posts/docker-c-advisor/index.html @@ -1,4 +1,4 @@ -Docker cAdvisor - Jiaqi's Leadership Blog
138 words
1 minutes
Docker cAdvisor

cAdvisor (Container Advisor) provides Docker container users an understanding of the resource usage and performance characteristics of their running containers. It is a running daemon that collects, aggregates, processes, and exports information about running containers. Specifically, for each container it keeps resource isolation parameters, historical resource usage, histograms of complete historical resource usage and network statistics. This data is exported by container and machine-wide.

Although cAdvisor has some prelimilary (useful though) UI. It also offers

  1. RESTful API to query container stats
  2. Export capability to common data storage, such as Elasticsearch

To pull the image and run it:

sudo docker run \
+Docker cAdvisor - Jiaqi's Leadership Blog
138 words
1 minutes
Docker cAdvisor

cAdvisor (Container Advisor) provides Docker container users an understanding of the resource usage and performance characteristics of their running containers. It is a running daemon that collects, aggregates, processes, and exports information about running containers. Specifically, for each container it keeps resource isolation parameters, historical resource usage, histograms of complete historical resource usage and network statistics. This data is exported by container and machine-wide.

Although cAdvisor has some prelimilary (useful though) UI. It also offers

  1. RESTful API to query container stats
  2. Export capability to common data storage, such as Elasticsearch

To pull the image and run it:

sudo docker run \
     --volume=/:/rootfs:ro \
     --volume=/var/run/docker.sock:/var/run/docker.sock:rw \
     --volume=/sys:/sys:ro \
diff --git a/posts/good-leaders-make-you-feel-safe/index.html b/posts/good-leaders-make-you-feel-safe/index.html
index 64b56f54f..ee88d784d 100644
--- a/posts/good-leaders-make-you-feel-safe/index.html
+++ b/posts/good-leaders-make-you-feel-safe/index.html
@@ -7,4 +7,4 @@
 " property=og:description>
1983 words
10 minutes
Why Good Leaders Make You Feel Safe

TED Talk by Simon#

Video Transcript#

There’s a man by the name of Captain William Swenson who recently was awarded the congressional Medal of Honor for his actions on September 8, 2009.

On that day, a column of American and Afghan troops were making their way through a part of Afghanistan to help protect a group of government officials, a group of Afghan government officials, who would be meeting with some local village elders. The column came under ambush, and was surrounded on three sides, and amongst many other things, Captain Swenson was recognized for running into live fire to rescue the wounded and pull out the dead. One of the people he rescued was a sergeant, and he and a comrade were making their way to a medevac helicopter.

And what was remarkable about this day is, by sheer coincidence, one of the medevac medics happened to have a GoPro camera on his helmet and captured the whole scene on camera. It shows Captain Swenson and his comrade bringing this wounded soldier who had received a gunshot to the neck. They put him in the helicopter, and then you see Captain Swenson bend over and give him a kiss before he turns around to rescue more.

I saw this, and I thought to myself, where do people like that come from? What is that? That is some deep, deep emotion, when you would want to do that. There’s a love there, and I wanted to know why is it that I don’t have people that I work with like that? You know, in the military, they give medals to people who are willing to sacrifice themselves so that others may gain. In business, we give bonuses to people who are willing to sacrifice others so that we may gain. We have it backwards. Right? So I asked myself, where do people like this come from? And my initial conclusion was that they’re just better people. That’s why they’re attracted to the military. These better people are attracted to this concept of service. But that’s completely wrong. What I learned was that it’s the environment, and if you get the environment right, every single one of us has the capacity to do these remarkable things, and more importantly, others have that capacity too. I’ve had the great honor of getting to meet some of these, who we would call heroes, who have put themselves and put their lives at risk to save others, and I asked them, “Why would you do it? Why did you do it?” And they all say the same thing: “Because they would have done it for me.” It’s this deep sense of trust and cooperation. So trust and cooperation are really important here. The problem with concepts of trust and cooperation is that they are feelings, they are not instructions. I can’t simply say to you, “Trust me,” and you will. I can’t simply instruct two people to cooperate, and they will. It’s not how it works. It’s a feeling.

So where does that feeling come from? If you go back 50,000 years to the Paleolithic era, to the early days of Homo sapiens, what we find is that the world was filled with danger, all of these forces working very, very hard to kill us. Nothing personal. Whether it was the weather, lack of resources, maybe a saber-toothed tiger, all of these things working to reduce our lifespan. And so we evolved into social animals, where we lived together and worked together in what I call a circle of safety, inside the tribe, where we felt like we belonged. And when we felt safe amongst our own, the natural reaction was trust and cooperation. There are inherent benefits to this. It means I can fall asleep at night and trust that someone from within my tribe will watch for danger. If we don’t trust each other, if I don’t trust you, that means you won’t watch for danger. Bad system of survival.

The modern day is exactly the same thing. The world is filled with danger, things that are trying to frustrate our lives or reduce our success, reduce our opportunity for success. It could be the ups and downs in the economy, the uncertainty of the stock market. It could be a new technology that renders your business model obsolete overnight. Or it could be your competition that is sometimes trying to kill you. It’s sometimes trying to put you out of business, but at the very minimum is working hard to frustrate your growth and steal your business from you. We have no control over these forces. These are a constant, and they’re not going away.

The only variable are the conditions inside the organization, and that’s where leadership matters, because it’s the leader that sets the tone. When a leader makes the choice to put the safety and lives of the people inside the organization first, to sacrifice their comforts and sacrifice the tangible results, so that the people remain and feel safe and feel like they belong, remarkable things happen.

I was flying on a trip, and I was witness to an incident where a passenger attempted to board before their number was called, and I watched the gate agent treat this man like he had broken the law, like a criminal. He was yelled at for attempting to board one group too soon. So I said something. I said, “Why do you have to treat us like cattle? Why can’t you treat us like human beings?” And this is exactly what she said to me. She said, “Sir, if I don’t follow the rules, I could get in trouble or lose my job.” All she was telling me is that she doesn’t feel safe. All she was telling me is that she doesn’t trust her leaders. The reason we like flying Southwest Airlines is not because they necessarily hire better people. It’s because they don’t fear their leaders.

You see, if the conditions are wrong, we are forced to expend our own time and energy to protect ourselves from each other, and that inherently weakens the organization. When we feel safe inside the organization, we will naturally combine our talents and our strengths and work tirelessly to face the dangers outside and seize the opportunities.

The closest analogy I can give to what a great leader is, is like being a parent. If you think about what being a great parent is, what do you want? What makes a great parent? We want to give our child opportunities, education, discipline them when necessary, all so that they can grow up and achieve more than we could for ourselves. Great leaders want exactly the same thing. They want to provide their people opportunity, education, discipline when necessary, build their self-confidence, give them the opportunity to try and fail, all so that they could achieve more than we could ever imagine for ourselves.

Charlie Kim, who’s the CEO of a company called Next Jump in New York City, a tech company, he makes the point that if you had hard times in your family, would you ever consider laying off one of your children? We would never do it. Then why do we consider laying off people inside our organization? Charlie implemented a policy of lifetime employment. If you get a job at Next Jump, you cannot get fired for performance issues. In fact, if you have issues, they will coach you and they will give you support, just like we would with one of our children who happens to come home with a C from school. It’s the complete opposite.

This is the reason so many people have such a visceral hatred, anger, at some of these banking CEOs with their disproportionate salaries and bonus structures. It’s not the numbers. It’s that they have violated the very definition of leadership. They have violated this deep-seated social contract. We know that they allowed their people to be sacrificed so they could protect their own interests, or worse, they sacrificed their people to protect their own interests. This is what so offends us, not the numbers. Would anybody be offended if we gave a 150millionbonustoGandhi?Howabouta150 million bonus to Gandhi? How about a250 million bonus to Mother Teresa? Do we have an issue with that? None at all. None at all. Great leaders would never sacrifice the people to save the numbers. They would sooner sacrifice the numbers to save the people.

Bob Chapman, who runs a large manufacturing company in the Midwest called Barry-Wehmiller, in 2008 was hit very hard by the recession, and they lost 30 percent of their orders overnight. Now in a large manufacturing company, this is a big deal, and they could no longer afford their labor pool. They needed to save 10 million dollars, so, like so many companies today, the board got together and discussed layoffs. And Bob refused. You see, Bob doesn’t believe in head counts. Bob believes in heart counts, and it’s much more difficult to simply reduce the heart count. And so they came up with a furlough program. Every employee, from secretary to CEO, was required to take four weeks of unpaid vacation. They could take it any time they wanted, and they did not have to take it consecutively. But it was how Bob announced the program that mattered so much. He said, it’s better that we should all suffer a little than any of us should have to suffer a lot, and morale went up. They saved 20 million dollars, and most importantly, as would be expected, when the people feel safe and protected by the leadership in the organization, the natural reaction is to trust and cooperate. And quite spontaneously, nobody expected, people started trading with each other. Those who could afford it more would trade with those who could afford it less. People would take five weeks so that somebody else only had to take three.

Leadership is a choice. It is not a rank. I know many people at the seniormost levels of organizations who are absolutely not leaders. They are authorities, and we do what they say because they have authority over us, but we would not follow them. And I know many people who are at the bottoms of organizations who have no authority and they are absolutely leaders, and this is because they have chosen to look after the person to the left of them, and they have chosen to look after the person to the right of them. This is what a leader is.

I heard a story of some Marines who were out in theater, and as is the Marine custom, the officer ate last, and he let his men eat first, and when they were done, there was no food left for him. And when they went back out in the field, his men brought him some of their food so that he may eat, because that’s what happens. We call them leaders because they go first. We call them leaders because they take the risk before anybody else does. We call them leaders because they will choose to sacrifice so that their people may be safe and protected and so their people may gain, and when we do, the natural response is that our people will sacrifice for us. They will give us their blood and sweat and tears to see that their leader’s vision comes to life, and when we ask them, “Why would you do that? Why would you give your blood and sweat and tears for that person?” they all say the same thing: “Because they would have done it for me.” And isn’t that the organization we would all like to work in?

Thank you very much.

Thank you. (Applause)

Thank you. (Applause)

Why Good Leaders Make You Feel Safe
https://leadership.qubitpi.org/posts/good-leaders-make-you-feel-safe/
Author
【烬火】胡桃
Published at
2024-08-01
\ No newline at end of file +" name=twitter:description>
1983 words
10 minutes
Why Good Leaders Make You Feel Safe

TED Talk by Simon#

Video Transcript#

There’s a man by the name of Captain William Swenson who recently was awarded the congressional Medal of Honor for his actions on September 8, 2009.

On that day, a column of American and Afghan troops were making their way through a part of Afghanistan to help protect a group of government officials, a group of Afghan government officials, who would be meeting with some local village elders. The column came under ambush, and was surrounded on three sides, and amongst many other things, Captain Swenson was recognized for running into live fire to rescue the wounded and pull out the dead. One of the people he rescued was a sergeant, and he and a comrade were making their way to a medevac helicopter.

And what was remarkable about this day is, by sheer coincidence, one of the medevac medics happened to have a GoPro camera on his helmet and captured the whole scene on camera. It shows Captain Swenson and his comrade bringing this wounded soldier who had received a gunshot to the neck. They put him in the helicopter, and then you see Captain Swenson bend over and give him a kiss before he turns around to rescue more.

I saw this, and I thought to myself, where do people like that come from? What is that? That is some deep, deep emotion, when you would want to do that. There’s a love there, and I wanted to know why is it that I don’t have people that I work with like that? You know, in the military, they give medals to people who are willing to sacrifice themselves so that others may gain. In business, we give bonuses to people who are willing to sacrifice others so that we may gain. We have it backwards. Right? So I asked myself, where do people like this come from? And my initial conclusion was that they’re just better people. That’s why they’re attracted to the military. These better people are attracted to this concept of service. But that’s completely wrong. What I learned was that it’s the environment, and if you get the environment right, every single one of us has the capacity to do these remarkable things, and more importantly, others have that capacity too. I’ve had the great honor of getting to meet some of these, who we would call heroes, who have put themselves and put their lives at risk to save others, and I asked them, “Why would you do it? Why did you do it?” And they all say the same thing: “Because they would have done it for me.” It’s this deep sense of trust and cooperation. So trust and cooperation are really important here. The problem with concepts of trust and cooperation is that they are feelings, they are not instructions. I can’t simply say to you, “Trust me,” and you will. I can’t simply instruct two people to cooperate, and they will. It’s not how it works. It’s a feeling.

So where does that feeling come from? If you go back 50,000 years to the Paleolithic era, to the early days of Homo sapiens, what we find is that the world was filled with danger, all of these forces working very, very hard to kill us. Nothing personal. Whether it was the weather, lack of resources, maybe a saber-toothed tiger, all of these things working to reduce our lifespan. And so we evolved into social animals, where we lived together and worked together in what I call a circle of safety, inside the tribe, where we felt like we belonged. And when we felt safe amongst our own, the natural reaction was trust and cooperation. There are inherent benefits to this. It means I can fall asleep at night and trust that someone from within my tribe will watch for danger. If we don’t trust each other, if I don’t trust you, that means you won’t watch for danger. Bad system of survival.

The modern day is exactly the same thing. The world is filled with danger, things that are trying to frustrate our lives or reduce our success, reduce our opportunity for success. It could be the ups and downs in the economy, the uncertainty of the stock market. It could be a new technology that renders your business model obsolete overnight. Or it could be your competition that is sometimes trying to kill you. It’s sometimes trying to put you out of business, but at the very minimum is working hard to frustrate your growth and steal your business from you. We have no control over these forces. These are a constant, and they’re not going away.

The only variable are the conditions inside the organization, and that’s where leadership matters, because it’s the leader that sets the tone. When a leader makes the choice to put the safety and lives of the people inside the organization first, to sacrifice their comforts and sacrifice the tangible results, so that the people remain and feel safe and feel like they belong, remarkable things happen.

I was flying on a trip, and I was witness to an incident where a passenger attempted to board before their number was called, and I watched the gate agent treat this man like he had broken the law, like a criminal. He was yelled at for attempting to board one group too soon. So I said something. I said, “Why do you have to treat us like cattle? Why can’t you treat us like human beings?” And this is exactly what she said to me. She said, “Sir, if I don’t follow the rules, I could get in trouble or lose my job.” All she was telling me is that she doesn’t feel safe. All she was telling me is that she doesn’t trust her leaders. The reason we like flying Southwest Airlines is not because they necessarily hire better people. It’s because they don’t fear their leaders.

You see, if the conditions are wrong, we are forced to expend our own time and energy to protect ourselves from each other, and that inherently weakens the organization. When we feel safe inside the organization, we will naturally combine our talents and our strengths and work tirelessly to face the dangers outside and seize the opportunities.

The closest analogy I can give to what a great leader is, is like being a parent. If you think about what being a great parent is, what do you want? What makes a great parent? We want to give our child opportunities, education, discipline them when necessary, all so that they can grow up and achieve more than we could for ourselves. Great leaders want exactly the same thing. They want to provide their people opportunity, education, discipline when necessary, build their self-confidence, give them the opportunity to try and fail, all so that they could achieve more than we could ever imagine for ourselves.

Charlie Kim, who’s the CEO of a company called Next Jump in New York City, a tech company, he makes the point that if you had hard times in your family, would you ever consider laying off one of your children? We would never do it. Then why do we consider laying off people inside our organization? Charlie implemented a policy of lifetime employment. If you get a job at Next Jump, you cannot get fired for performance issues. In fact, if you have issues, they will coach you and they will give you support, just like we would with one of our children who happens to come home with a C from school. It’s the complete opposite.

This is the reason so many people have such a visceral hatred, anger, at some of these banking CEOs with their disproportionate salaries and bonus structures. It’s not the numbers. It’s that they have violated the very definition of leadership. They have violated this deep-seated social contract. We know that they allowed their people to be sacrificed so they could protect their own interests, or worse, they sacrificed their people to protect their own interests. This is what so offends us, not the numbers. Would anybody be offended if we gave a 150millionbonustoGandhi?Howabouta150 million bonus to Gandhi? How about a250 million bonus to Mother Teresa? Do we have an issue with that? None at all. None at all. Great leaders would never sacrifice the people to save the numbers. They would sooner sacrifice the numbers to save the people.

Bob Chapman, who runs a large manufacturing company in the Midwest called Barry-Wehmiller, in 2008 was hit very hard by the recession, and they lost 30 percent of their orders overnight. Now in a large manufacturing company, this is a big deal, and they could no longer afford their labor pool. They needed to save 10 million dollars, so, like so many companies today, the board got together and discussed layoffs. And Bob refused. You see, Bob doesn’t believe in head counts. Bob believes in heart counts, and it’s much more difficult to simply reduce the heart count. And so they came up with a furlough program. Every employee, from secretary to CEO, was required to take four weeks of unpaid vacation. They could take it any time they wanted, and they did not have to take it consecutively. But it was how Bob announced the program that mattered so much. He said, it’s better that we should all suffer a little than any of us should have to suffer a lot, and morale went up. They saved 20 million dollars, and most importantly, as would be expected, when the people feel safe and protected by the leadership in the organization, the natural reaction is to trust and cooperate. And quite spontaneously, nobody expected, people started trading with each other. Those who could afford it more would trade with those who could afford it less. People would take five weeks so that somebody else only had to take three.

Leadership is a choice. It is not a rank. I know many people at the seniormost levels of organizations who are absolutely not leaders. They are authorities, and we do what they say because they have authority over us, but we would not follow them. And I know many people who are at the bottoms of organizations who have no authority and they are absolutely leaders, and this is because they have chosen to look after the person to the left of them, and they have chosen to look after the person to the right of them. This is what a leader is.

I heard a story of some Marines who were out in theater, and as is the Marine custom, the officer ate last, and he let his men eat first, and when they were done, there was no food left for him. And when they went back out in the field, his men brought him some of their food so that he may eat, because that’s what happens. We call them leaders because they go first. We call them leaders because they take the risk before anybody else does. We call them leaders because they will choose to sacrifice so that their people may be safe and protected and so their people may gain, and when we do, the natural response is that our people will sacrifice for us. They will give us their blood and sweat and tears to see that their leader’s vision comes to life, and when we ask them, “Why would you do that? Why would you give your blood and sweat and tears for that person?” they all say the same thing: “Because they would have done it for me.” And isn’t that the organization we would all like to work in?

Thank you very much.

Thank you. (Applause)

Thank you. (Applause)

Why Good Leaders Make You Feel Safe
https://leadership.qubitpi.org/posts/good-leaders-make-you-feel-safe/
Author
【烬火】胡桃
Published at
2024-08-01
\ No newline at end of file diff --git a/posts/greyhound/index.html b/posts/greyhound/index.html index 0a73116ca..517296293 100644 --- a/posts/greyhound/index.html +++ b/posts/greyhound/index.html @@ -1 +1 @@ -Leadership Lessons from "Greyhound" - Jiaqi's Leadership Blog
113 words
1 minutes
Leadership Lessons from "Greyhound"

Leader doesn’t sit on top and overseas but instead is very knowledgeable and sharp at every aspect of the team work. There was a scene in the movie when two torpedoes were fired approaching the destroyer Captain Krause was on. Within a flash of seconds, he ordered the proceeding course of direction of the ship which eventually have both torpedoes missed the destroyer successfully. Captain Krause was indeed a master of his work instead of being a boss who simply sends out paycheck to his subordinates and had himself sitting in a couch and enjoy champaign every day.

Leadership Lessons from "Greyhound"
https://leadership.qubitpi.org/posts/greyhound/
Author
【烬火】胡桃
Published at
2024-08-30
\ No newline at end of file +Leadership Lessons from "Greyhound" - Jiaqi's Leadership Blog
113 words
1 minutes
Leadership Lessons from "Greyhound"

Leader doesn’t sit on top and overseas but instead is very knowledgeable and sharp at every aspect of the team work. There was a scene in the movie when two torpedoes were fired approaching the destroyer Captain Krause was on. Within a flash of seconds, he ordered the proceeding course of direction of the ship which eventually have both torpedoes missed the destroyer successfully. Captain Krause was indeed a master of his work instead of being a boss who simply sends out paycheck to his subordinates and had himself sitting in a couch and enjoy champaign every day.

Leadership Lessons from "Greyhound"
https://leadership.qubitpi.org/posts/greyhound/
Author
【烬火】胡桃
Published at
2024-08-30
\ No newline at end of file diff --git a/posts/history-of-management/index.html b/posts/history-of-management/index.html index 3ac36ca8f..e057e2a7f 100644 --- a/posts/history-of-management/index.html +++ b/posts/history-of-management/index.html @@ -1 +1 @@ -History of Management - Jiaqi's Leadership Blog
665 words
3 minutes
History of Management

My background of Physics told me to truly master a concept, one cannot ignore its origin. If I teach you Maxwell equations now you would end up with a blank mind. You need to start with “what is an electric charge”, “what is a field”, and “how a moving charge could produce magnetic field” so on and so forth. At the end of the day, you will be making a perfect sense of what Maxell equations mean. It it only through this way you can start applying Maxwell’s equations and solve real-worl problems.

Management, and everything else in our live, goes like this.

Wikipedia#

The field of management originated in ancient China, including possibly the first highly centralized bureaucratic state, and the earliest (by the second century BC) example of an administration based on merit through testing. Some theorists have cited ancient military texts as providing lessons for civilian managers. For example, Chinese general Sun Tzu in his 6th-century BC work The Art of War recommends[citation needed] (when re-phrased in modern terminology) being aware of and acting on strengths and weaknesses of both a manager’s organization and a foe’s.

《孙子兵法,孙膑兵法》下载

中华经典藏书.中华书局·电子书· PDF合集

The writings of influential Chinese Legalist philosopher Shen Buhai (申子) may be considered to embody a rare premodern example of abstract theory of administration.

Key Takeaway

多读一读诸子百家的书籍,发掘里面的管理学经验

Various ancient and medieval civilizations produced “mirrors for princes” books, which aimed to advise new monarchs on how to govern. Examples includes The Prince by Italian author Niccolò Machiavelli

Reddit#

in the De Administrando Imperio of Constantine Porphyrogenitus. Constantine had this written/compiled as advice to his son, Romanus. It functions as a practical manual, with a heavy foreign policy emphasis, on how to be a good emperor. Unlike some advice written by emperors and historians, this one is not a panegyric or solely praise; rather, it is candid and informative policy. Furthermore, it is (mostly) secular and research-based; though, the bit on the “obscene” and “blasphemous” Mohammed is obviously biased.

R.J.H. Jenkins, in his introduction to the De Administrando Imperio, describes Constantine’s attempt at teaching “practical wisdom” to his son by:

Scrutiny of the historical documents

writing or causing to be written histories of recent events and manuals of technical instruction on the various departments of business and administration… Documents from the files of every branch of the administration, from the foreign ministry, the treasury, the offices of ceremonial, were scrutinized and abstracted.

One of its key elements was a “summary of the recent internal history, politics, and organization within the borders of the empire.” Far from being a piece of rhetoric or self-absorbed thought, the document contains enormous, albeit intermittently erroneous, research and careful analysis. This is “no partial document of propaganda… to impress domestic or foreign circles.”

From Jenkins,

Provincial governors and imperial envoys wrote historical and topographical reports on the areas of their jurisdiction or assignment. Foreign ambassadors were diligently questioned as to the affairs of their respective countries.

One of the interesting things to note about the Administrando was its secret nature, having been written as advice for Constantine’s son, Romanus; it acts as part succession letter, part compilation, and part “confidential” advice/information.

As the emperor puts it,

On “Knowing the difference between being-managed”

it is not for those who wish to govern lawfully to copy and emulate what has been ill done by some out of ignorance or arrogance, but rather to have the glorious deeds of those who have ruled lawfully and righteously as noble pictures set up for an example to be copied, and after their pattern to strive himself also to direct all that he does… it may greatly advantage you… [to know] the difference between other nations, their origins and customs and manner of life, and the position and climate of the land they dwell in…

History of Management
https://leadership.qubitpi.org/posts/history-of-management/
Author
【烬火】胡桃
Published at
2024-07-21
\ No newline at end of file +History of Management - Jiaqi's Leadership Blog
665 words
3 minutes
History of Management

My background of Physics told me to truly master a concept, one cannot ignore its origin. If I teach you Maxwell equations now you would end up with a blank mind. You need to start with “what is an electric charge”, “what is a field”, and “how a moving charge could produce magnetic field” so on and so forth. At the end of the day, you will be making a perfect sense of what Maxell equations mean. It it only through this way you can start applying Maxwell’s equations and solve real-worl problems.

Management, and everything else in our live, goes like this.

Wikipedia#

The field of management originated in ancient China, including possibly the first highly centralized bureaucratic state, and the earliest (by the second century BC) example of an administration based on merit through testing. Some theorists have cited ancient military texts as providing lessons for civilian managers. For example, Chinese general Sun Tzu in his 6th-century BC work The Art of War recommends[citation needed] (when re-phrased in modern terminology) being aware of and acting on strengths and weaknesses of both a manager’s organization and a foe’s.

《孙子兵法,孙膑兵法》下载

中华经典藏书.中华书局·电子书· PDF合集

The writings of influential Chinese Legalist philosopher Shen Buhai (申子) may be considered to embody a rare premodern example of abstract theory of administration.

Key Takeaway

多读一读诸子百家的书籍,发掘里面的管理学经验

Various ancient and medieval civilizations produced “mirrors for princes” books, which aimed to advise new monarchs on how to govern. Examples includes The Prince by Italian author Niccolò Machiavelli

Reddit#

in the De Administrando Imperio of Constantine Porphyrogenitus. Constantine had this written/compiled as advice to his son, Romanus. It functions as a practical manual, with a heavy foreign policy emphasis, on how to be a good emperor. Unlike some advice written by emperors and historians, this one is not a panegyric or solely praise; rather, it is candid and informative policy. Furthermore, it is (mostly) secular and research-based; though, the bit on the “obscene” and “blasphemous” Mohammed is obviously biased.

R.J.H. Jenkins, in his introduction to the De Administrando Imperio, describes Constantine’s attempt at teaching “practical wisdom” to his son by:

Scrutiny of the historical documents

writing or causing to be written histories of recent events and manuals of technical instruction on the various departments of business and administration… Documents from the files of every branch of the administration, from the foreign ministry, the treasury, the offices of ceremonial, were scrutinized and abstracted.

One of its key elements was a “summary of the recent internal history, politics, and organization within the borders of the empire.” Far from being a piece of rhetoric or self-absorbed thought, the document contains enormous, albeit intermittently erroneous, research and careful analysis. This is “no partial document of propaganda… to impress domestic or foreign circles.”

From Jenkins,

Provincial governors and imperial envoys wrote historical and topographical reports on the areas of their jurisdiction or assignment. Foreign ambassadors were diligently questioned as to the affairs of their respective countries.

One of the interesting things to note about the Administrando was its secret nature, having been written as advice for Constantine’s son, Romanus; it acts as part succession letter, part compilation, and part “confidential” advice/information.

As the emperor puts it,

On “Knowing the difference between being-managed”

it is not for those who wish to govern lawfully to copy and emulate what has been ill done by some out of ignorance or arrogance, but rather to have the glorious deeds of those who have ruled lawfully and righteously as noble pictures set up for an example to be copied, and after their pattern to strive himself also to direct all that he does… it may greatly advantage you… [to know] the difference between other nations, their origins and customs and manner of life, and the position and climate of the land they dwell in…

History of Management
https://leadership.qubitpi.org/posts/history-of-management/
Author
【烬火】胡桃
Published at
2024-07-21
\ No newline at end of file diff --git a/posts/humanistic-psychology/index.html b/posts/humanistic-psychology/index.html index ffac26104..28da1be68 100644 --- a/posts/humanistic-psychology/index.html +++ b/posts/humanistic-psychology/index.html @@ -1 +1 @@ -Humanistic Psychology - Jiaqi's Leadership Blog
1404 words
7 minutes
Humanistic Psychology

Humanistic psychology is a psychological perspective that arose in the mid-20th century in answer to two theories: Sigmund Freud’s psychoanalytic theory and B. F. Skinner’s behaviorism. Abraham Maslow, in this context, established the need for a “third force” in psychology.

Hierarchy of Needs#

NOTE

Source - Wikipedia

Maslow described human needs as ordered in a prepotent hierarchy - a pressing need would need to be mostly satisfied before someone would give their attention to the next highest need. None of his published works included a visual representation of the hierarchy.

An interpretation of Maslow&#x27;s hierarchy of needs, represented as a pyramid, with the more basic needs at the bottom

The pyramidal diagram illustrating the Maslow needs hierarchy may have been created by a psychology textbook publisher as an illustrative device. This now iconic pyramid frequently depicts the spectrum of human needs, both physical and psychological, as accompaniment to articles describing Maslow’s needs theory and may give the impression that the hierarchy of needs is a fixed and rigid sequence of progression. Yet, starting with the first publication of his theory in 1943, Maslow described human needs as being relatively fluid—with many needs being present in a person simultaneously

According to Maslow’s theory, when a human being ascends the levels of the hierarchy having fulfilled the needs in the hierarchy, one may eventually achieve self-actualization. Late in life, Maslow came to conclude that self-actualization was not an automatic outcome of satisfying the other human needs.

Human needs as identified by Maslow:

  • At the bottom of the hierarchy are the “basic needs or physiological needs” of a human being: food, water, sleep, sex, homeostasis, and excretion.
  • The next level is “safety needs: security, order, and stability”. These two steps are important to the physical survival of the person. Once individuals have basic nutrition, shelter and safety, they attempt to accomplish more.
  • The third level of need is “love and belonging”, which are psychological needs; when individuals have taken care of themselves physically, they are ready to share themselves with others, such as with family and friends.
  • The fourth level is achieved when individuals feel comfortable with what they have accomplished. This is the “esteem” level, the need to be competent and recognized, such as through status and level of success.
  • Then there is the “cognitive” level, where individuals intellectually stimulate themselves and explore.
  • After that is the “aesthetic” level, which is the need for harmony, order and beauty.
  • At the top of the pyramid, “need for self-actualization” occurs when individuals reach a state of harmony and understanding because they are engaged in achieving their full potential. Once a person has reached the self-actualization state they focus on themselves and try to build their own image. They may look at this in terms of feelings such as self-confidence or by accomplishing a set goal.

The first four levels are known as deficit needs or D-needs. This means that if there are not enough of one of those four needs, there will be a need to get it. Getting them brings a feeling of contentment. These needs alone are not motivating.

Maslow wrote that there are certain conditions that must be fulfilled in order for the basic needs to be satisfied. For example, freedom of speech, freedom to express oneself, and freedom to seek new information (A Theory of Human Motivation) are a few of the prerequisites. Any blockages of these freedoms could prevent the satisfaction of the basic needs.

Self-actualization#

Maslow defined self-actualization as achieving the fullest use of one’s talents and interests—the need “to become everything that one is capable of becoming”. As implied by its name, self-actualization is highly individualistic and reflects Maslow’s premise that the self is “sovereign and inviolable” and entitled to “his or her own tastes, opinions, values, etc.” Indeed, some have characterized self-actualization as “healthy narcissism”

Qualities of Self-actualizing People#

Maslow realized that the self-actualizing individuals he studied had similar personality traits. All were “reality centered”, able to differentiate what was fraudulent from what was genuine. They were also “problem centered”, meaning that they treated life’s difficulties as problems that demanded solutions. These individuals also were comfortable being alone and had healthy personal relationships. They had only a few close friends and family rather than a large number of shallow relationships.

Self-actualizing people tend to focus on problems outside themselves; have a clear sense of what is true and what is false; are spontaneous and creative; and are not bound too strictly by social conventions.

Maslow noticed that self-actualized individuals had a better insight of reality, deeply accepted themselves, others and the world, and also had faced many problems and were known to be impulsive people. These self-actualized individuals were very independent and private when it came to their environment and culture, especially their very own individual development on “potentialities and inner resources”.

According to Maslow, self-actualizing people share the following qualities:

  • Truth: honest, reality, beauty, pure, clean and unadulterated completeness
  • Goodness: rightness, desirability, uprightness, benevolence, honesty
  • Beauty: rightness, form, aliveness, simplicity, richness, wholeness, perfection, completion,
  • Wholeness: unity, integration, tendency to oneness, interconnectedness, simplicity, organization, structure, order, not dissociated, synergy
  • Dichotomy-transcendence: acceptance, resolution, integration, polarities, opposites, contradictions
  • Aliveness: process, not-deadness, spontaneity, self-regulation, full-functioning
  • Uniqueness: idiosyncrasy, individuality, non comparability, novelty
  • Perfection: nothing superfluous, nothing lacking, everything in its right place, just-rightness, suitability, justice
  • Necessity: inevitability: it must be just that way, not changed in any slightest way
  • Completion: ending, justice, fulfillment
  • Justice: fairness, suitability, disinterestedness, non partiality,
  • Order: lawfulness, rightness, perfectly arranged
  • Simplicity: abstract, essential skeletal, bluntness
  • Richness: differentiation, complexity, intricacy, totality
  • Effortlessness: ease; lack of strain, striving, or difficulty
  • Playfulness: fun, joy, amusement
  • Self-sufficiency: autonomy, independence, self-determining.

Maslow based his theory partially on his own assumptions about human potential and partially on his case studies of historical figures whom he believed to be self-actualized, including Albert Einstein and Abraham Lincoln. Consequently, Maslow argued, the way in which essential needs are fulfilled is just as important as the needs themselves. Together, these define the human experience. To the extent a person finds cooperative social fulfillment, he establishes meaningful relationships with other people and the larger world. In other words, he establishes meaningful connections to an external reality - an essential component of self-actualization. In contrast, to the extent that vital needs find selfish and competitive fulfillment, a person acquires hostile emotions and limited external relationships - his awareness remains internal and limited.

Reading Notes - Motivation And Personality, 2nd Ed, Maslow#

Key Argument of the Book

In order for individuals to thrive and excel, a health-fostering culture must be created.

Chapter 2 - Focusing on Problems not Methods#

Key Point
  • The essence of science lies in its problems, questions, functions, or goals rather than the instruments, techniques, procedures, apparatus, and its methods.
  • (I think) This applies to everything from personal development to business
  • Means centering tends to push people to become the “apparatus men, “rather than the “question askers” and the problem solvers
  • Means centering tends strongly to overvalue quantification indiscriminately and as an end in itself
  • Means-centered people tends to fit problems to techniques rather than the contrary
  • Means-centered culture creates cleavage between teams

If workers looked on themselves as question askers and problem solvers rather than specialized technicians, there would be more autonomous and creative work outcome that targets more on the problems rathern than the means

Chapter 3 - The 16 Propositions about Motivation#

  1. Individual is an integrated, organized whole

  2. Hunger is not a paradigm for all other motivations

  3. Most of our desires are means to an end rather than ends in themselves.

    • This implies that the study of motivation must be in part the study of the ultimate human goals or desires or needs
    • Means are usually conscious while end are often unconscious. They are related in complicated way and we must study a person in whole to see their unconscious end.
  4. (Human desire) Ends in themselves are universal although the means to these ends taken by different people can be dramatically different

  5. A conscious act or wish has more than one possible unconscious motivations

  6. Motivation never ends, because is keeps triggering other motivations

  7. Human being is never satisfied.

    • We must thrive to explore a chain of motivations rather than a single one
  8. There is not “list of drives”

  9. Instead, there are unconscious fundamental goals/needs

  10. Motivation theory must be anthropocentric (human) rather than animalcentric (white rat)

  11. Environment shapes motivation

  12. Integrated person can behave disintegrated under certain overwhelming situations so that main capacities of the person are still left free for the more important or more challenging problems that it faces

  13. Not all behaviors are motivation-driven, for example

    • self-actualization
    • growth
    • maturation
    • expression
  14. Human are wish-realistic

  15. Reality shapes the dynamics between Freudian Id and Ego

  16. Focusing on healthy person instead of psychotherapists’s neurotic sufferers.

Chapter 4 - Motivation Theory#

Basic Needs#

  • Psychological Needs: indicated by specific appetites
Humanistic Psychology
https://leadership.qubitpi.org/posts/humanistic-psychology/
Author
【烬火】胡桃
Published at
2024-11-28
\ No newline at end of file +Humanistic Psychology - Jiaqi's Leadership Blog
1404 words
7 minutes
Humanistic Psychology

Humanistic psychology is a psychological perspective that arose in the mid-20th century in answer to two theories: Sigmund Freud’s psychoanalytic theory and B. F. Skinner’s behaviorism. Abraham Maslow, in this context, established the need for a “third force” in psychology.

Hierarchy of Needs#

NOTE

Source - Wikipedia

Maslow described human needs as ordered in a prepotent hierarchy - a pressing need would need to be mostly satisfied before someone would give their attention to the next highest need. None of his published works included a visual representation of the hierarchy.

An interpretation of Maslow&#x27;s hierarchy of needs, represented as a pyramid, with the more basic needs at the bottom

The pyramidal diagram illustrating the Maslow needs hierarchy may have been created by a psychology textbook publisher as an illustrative device. This now iconic pyramid frequently depicts the spectrum of human needs, both physical and psychological, as accompaniment to articles describing Maslow’s needs theory and may give the impression that the hierarchy of needs is a fixed and rigid sequence of progression. Yet, starting with the first publication of his theory in 1943, Maslow described human needs as being relatively fluid—with many needs being present in a person simultaneously

According to Maslow’s theory, when a human being ascends the levels of the hierarchy having fulfilled the needs in the hierarchy, one may eventually achieve self-actualization. Late in life, Maslow came to conclude that self-actualization was not an automatic outcome of satisfying the other human needs.

Human needs as identified by Maslow:

  • At the bottom of the hierarchy are the “basic needs or physiological needs” of a human being: food, water, sleep, sex, homeostasis, and excretion.
  • The next level is “safety needs: security, order, and stability”. These two steps are important to the physical survival of the person. Once individuals have basic nutrition, shelter and safety, they attempt to accomplish more.
  • The third level of need is “love and belonging”, which are psychological needs; when individuals have taken care of themselves physically, they are ready to share themselves with others, such as with family and friends.
  • The fourth level is achieved when individuals feel comfortable with what they have accomplished. This is the “esteem” level, the need to be competent and recognized, such as through status and level of success.
  • Then there is the “cognitive” level, where individuals intellectually stimulate themselves and explore.
  • After that is the “aesthetic” level, which is the need for harmony, order and beauty.
  • At the top of the pyramid, “need for self-actualization” occurs when individuals reach a state of harmony and understanding because they are engaged in achieving their full potential. Once a person has reached the self-actualization state they focus on themselves and try to build their own image. They may look at this in terms of feelings such as self-confidence or by accomplishing a set goal.

The first four levels are known as deficit needs or D-needs. This means that if there are not enough of one of those four needs, there will be a need to get it. Getting them brings a feeling of contentment. These needs alone are not motivating.

Maslow wrote that there are certain conditions that must be fulfilled in order for the basic needs to be satisfied. For example, freedom of speech, freedom to express oneself, and freedom to seek new information (A Theory of Human Motivation) are a few of the prerequisites. Any blockages of these freedoms could prevent the satisfaction of the basic needs.

Self-actualization#

Maslow defined self-actualization as achieving the fullest use of one’s talents and interests—the need “to become everything that one is capable of becoming”. As implied by its name, self-actualization is highly individualistic and reflects Maslow’s premise that the self is “sovereign and inviolable” and entitled to “his or her own tastes, opinions, values, etc.” Indeed, some have characterized self-actualization as “healthy narcissism”

Qualities of Self-actualizing People#

Maslow realized that the self-actualizing individuals he studied had similar personality traits. All were “reality centered”, able to differentiate what was fraudulent from what was genuine. They were also “problem centered”, meaning that they treated life’s difficulties as problems that demanded solutions. These individuals also were comfortable being alone and had healthy personal relationships. They had only a few close friends and family rather than a large number of shallow relationships.

Self-actualizing people tend to focus on problems outside themselves; have a clear sense of what is true and what is false; are spontaneous and creative; and are not bound too strictly by social conventions.

Maslow noticed that self-actualized individuals had a better insight of reality, deeply accepted themselves, others and the world, and also had faced many problems and were known to be impulsive people. These self-actualized individuals were very independent and private when it came to their environment and culture, especially their very own individual development on “potentialities and inner resources”.

According to Maslow, self-actualizing people share the following qualities:

  • Truth: honest, reality, beauty, pure, clean and unadulterated completeness
  • Goodness: rightness, desirability, uprightness, benevolence, honesty
  • Beauty: rightness, form, aliveness, simplicity, richness, wholeness, perfection, completion,
  • Wholeness: unity, integration, tendency to oneness, interconnectedness, simplicity, organization, structure, order, not dissociated, synergy
  • Dichotomy-transcendence: acceptance, resolution, integration, polarities, opposites, contradictions
  • Aliveness: process, not-deadness, spontaneity, self-regulation, full-functioning
  • Uniqueness: idiosyncrasy, individuality, non comparability, novelty
  • Perfection: nothing superfluous, nothing lacking, everything in its right place, just-rightness, suitability, justice
  • Necessity: inevitability: it must be just that way, not changed in any slightest way
  • Completion: ending, justice, fulfillment
  • Justice: fairness, suitability, disinterestedness, non partiality,
  • Order: lawfulness, rightness, perfectly arranged
  • Simplicity: abstract, essential skeletal, bluntness
  • Richness: differentiation, complexity, intricacy, totality
  • Effortlessness: ease; lack of strain, striving, or difficulty
  • Playfulness: fun, joy, amusement
  • Self-sufficiency: autonomy, independence, self-determining.

Maslow based his theory partially on his own assumptions about human potential and partially on his case studies of historical figures whom he believed to be self-actualized, including Albert Einstein and Abraham Lincoln. Consequently, Maslow argued, the way in which essential needs are fulfilled is just as important as the needs themselves. Together, these define the human experience. To the extent a person finds cooperative social fulfillment, he establishes meaningful relationships with other people and the larger world. In other words, he establishes meaningful connections to an external reality - an essential component of self-actualization. In contrast, to the extent that vital needs find selfish and competitive fulfillment, a person acquires hostile emotions and limited external relationships - his awareness remains internal and limited.

Reading Notes - Motivation And Personality, 2nd Ed, Maslow#

Key Argument of the Book

In order for individuals to thrive and excel, a health-fostering culture must be created.

Chapter 2 - Focusing on Problems not Methods#

Key Point
  • The essence of science lies in its problems, questions, functions, or goals rather than the instruments, techniques, procedures, apparatus, and its methods.
  • (I think) This applies to everything from personal development to business
  • Means centering tends to push people to become the “apparatus men, “rather than the “question askers” and the problem solvers
  • Means centering tends strongly to overvalue quantification indiscriminately and as an end in itself
  • Means-centered people tends to fit problems to techniques rather than the contrary
  • Means-centered culture creates cleavage between teams

If workers looked on themselves as question askers and problem solvers rather than specialized technicians, there would be more autonomous and creative work outcome that targets more on the problems rathern than the means

Chapter 3 - The 16 Propositions about Motivation#

  1. Individual is an integrated, organized whole

  2. Hunger is not a paradigm for all other motivations

  3. Most of our desires are means to an end rather than ends in themselves.

    • This implies that the study of motivation must be in part the study of the ultimate human goals or desires or needs
    • Means are usually conscious while end are often unconscious. They are related in complicated way and we must study a person in whole to see their unconscious end.
  4. (Human desire) Ends in themselves are universal although the means to these ends taken by different people can be dramatically different

  5. A conscious act or wish has more than one possible unconscious motivations

  6. Motivation never ends, because is keeps triggering other motivations

  7. Human being is never satisfied.

    • We must thrive to explore a chain of motivations rather than a single one
  8. There is not “list of drives”

  9. Instead, there are unconscious fundamental goals/needs

  10. Motivation theory must be anthropocentric (human) rather than animalcentric (white rat)

  11. Environment shapes motivation

  12. Integrated person can behave disintegrated under certain overwhelming situations so that main capacities of the person are still left free for the more important or more challenging problems that it faces

  13. Not all behaviors are motivation-driven, for example

    • self-actualization
    • growth
    • maturation
    • expression
  14. Human are wish-realistic

  15. Reality shapes the dynamics between Freudian Id and Ego

  16. Focusing on healthy person instead of psychotherapists’s neurotic sufferers.

Chapter 4 - Motivation Theory#

Basic Needs#

  • Psychological Needs: indicated by specific appetites
Humanistic Psychology
https://leadership.qubitpi.org/posts/humanistic-psychology/
Author
【烬火】胡桃
Published at
2024-11-28
\ No newline at end of file diff --git a/posts/inspire-action/index.html b/posts/inspire-action/index.html index 42268c2a2..ec9dbaa4e 100644 --- a/posts/inspire-action/index.html +++ b/posts/inspire-action/index.html @@ -4,4 +4,4 @@ question: "Why?" His examples include Apple, Martin Luther King Jr. and the Wright brothers ... " property=og:description>
3558 words
18 minutes
How Great Leaders Inspire Action

TED Talk by Simon#

Video Transcript#

Source

TED - How great leaders inspire action with minor corrections.

How do you explain when things don’t go as we assume? Or better, how do you explain when others are able to achieve things that seem to defy all of the assumptions? For example: Why is Apple so innovative? Year after year, after year, after year, they’re more innovative than all their competition. And yet, they’re just a computer company. They’re just like everyone else. They have the same access to the same talent, the same agencies, the same consultants, the same media. Then why is it that they seem to have something different? Why is it that Martin Luther King led the Civil Rights Movement? He wasn’t the only man who suffered in pre-civil rights America, and he certainly wasn’t the only great orator of the day. Why him? And why is it that the Wright brothers were able to figure out controlled, powered man flight when there were certainly other teams who were better qualified, better funded — and they didn’t achieve powered man flight, and the Wright brothers beat them to it. There’s something else at play here.

About three and a half years ago, I made a discovery. And this discovery profoundly changed my view on how I thought the world worked, and it even profoundly changed the way in which I operate in it. As it turns out, there’s a pattern. As it turns out, all the great and inspiring leaders and organizations in the world, whether it’s Apple or Martin Luther King or the Wright brothers, they all think, act and communicate the exact same way. And it’s the complete opposite to everyone else. All I did was codify it, and it’s probably the world’s simplest idea. I call it the golden circle.

Why? How? What? This little idea explains why some organizations and some leaders are able to inspire where others aren’t. Let me define the terms really quickly. Every single person, every single organization on the planet knows what they do, 100 percent. Some know how they do it, whether you call it your differentiated value proposition or your proprietary process or your USP. But very, very few people or organizations know why they do what they do. And by “why” I don’t mean “to make a profit.” That’s a result. It’s always a result. By “why,” I mean: What’s your purpose? What’s your cause? What’s your belief? Why does your organization exist? Why do you get out of bed in the morning? And why should anyone care? As a result, the way we think, the way we act, the way we communicate is from the outside in, it’s obvious. We go from the clearest thing to the fuzziest thing. But the inspired leaders and the inspired organizations — regardless of their size, regardless of their industry — all think, act and communicate from the inside out.

Let me give you an example. I use Apple because they’re easy to understand and everybody gets it. If Apple were like everyone else, a marketing message from them might sound like this: “We make great computers. They’re beautifully designed, simple to use and user friendly. Wanna to buy one?” “Meh.” And that’s how most of us communicate. That’s how most marketing is done; that how most sales are done, and that’s how we communicate interpersonally. We say what we do, we say how we’re different or how we’re better; we expect some sort of a behavior, a purchase, a vote, something like that. Here’s our new law firm: We have the best lawyers with the biggest clients, we always perform for our clients. Do business with us. Here’s our new car: It gets great gas mileage, it has leather seats. Buy our car. But it’s uninspiring.

Here’s how Apple actually communicates. “Everything we do, we believe in challenging the status quo. We believe in thinking differently. The way we challenge the status quo is by making our products beautifully designed, simple to use and user friendly. We just happen to make great computers. Wanna buy one?” Totally different, right? You’re ready to buy a computer from me. All I did was I reversed the order of the information. What it proves to us is that people don’t buy what you do; people buy why you do it. People don’t buy what you do; they buy why you do it.

This explains why every single person in this room is perfectly comfortable buying a computer from Apple. But we’re also perfectly comfortable buying an MP3 player from Apple, or a phone from Apple, or a DVR from Apple. But as I said before, Apple’s just a computer company. There is nothing that distinguishes them structurally from any of their competitors. Their competitors are equally qualified to make all of these products. In fact, they tried. A few years ago, Gateway came out with flat-screen TVs. They’re eminently qualified to make flat-screen TVs. They’ve been making flat-screen monitors for years. Nobody bought one. Dell came out with MP3 players and PDAs, and they make great quality products, and they can make perfectly well-designed products — and nobody bought one. In fact, talking about it now, we can’t even imagine buying an MP3 player from Dell. Why would you buy MP3 player from a computer company? But we do it every day. People don’t buy what you do; they buy why you do it. The goal is not to do business with everybody who needs what you have. The goal is to do business with people who believe what you believe.

Here’s the best part: None of what I’m telling you is my opinion. It’s all grounded in the tenets of biology. Not psychology, biology. If you look at a cross-section of the human brain, looking from the top down, what you’ll see is that the human brain is actually broken into three major components that correlate perfectly with the golden circle. Our newest brain, our Homo sapien brain, our neocortex, corresponds with the “what” level. The neocortex is responsible for all of our rational and analytical thought and language. The middle two sections make up our limbic brains, and our limbic brains are responsible for all of our feelings, like trust and loyalty. It’s also responsible for all human behavior, all decision-making, and it has no capacity for language.

In other words, when we communicate from the outside in, yes, people can understand vast amounts of complicated information like features and benefits and facts and figures. It just doesn’t drive behavior. When we communicate from the inside out, we’re talking directly to the part of the brain that controls behavior, and then we allow people to rationalize it with the tangible things we say and do. This is where gut decisions come from. You know sometimes you can give somebody all the facts and figures, and they say, “I know what all the facts and details say, but it just doesn’t feel right.” Why would we use that verb, it doesn’t “feel” right? Because the part of the brain that controls decision-making doesn’t control language. And the best we can muster up is, “I don’t know. It just doesn’t feel right.” Or sometimes you say you’re leading with your heart or soul. I hate to break it to you, those aren’t other body parts controlling your behavior. It’s all happening here in your limbic brain, the part of the brain that controls decision-making and not language.

But if you don’t know why you do what you do, and people respond to why you do what you do, then how will you ever get people to vote for you, or buy something from you, or, more importantly, be loyal and wanna be a part of what it is that you do. Again, the goal is not just to sell to people who need what you have; the goal is to sell to people who believe what you believe. The goal is not just to hire people who need a job; it’s to hire people who believe what you believe. I always say that, you know, if you hire people just because they can do a job, they’ll work for your money, but if you hire people who believe what you believe, they’ll work for you with blood and sweat and tears. Nowhere else is there a better example than with the Wright brothers.

Most people don’t know about Samuel Pierpont Langley. And back in the early 20th century, the pursuit of powered man flight was like the dot com of the day. Everybody was trying it. And Samuel Pierpont Langley had, what we assume, to be the recipe for success. Even now, you ask people, “Why did your product or why did your company fail?” and people always give you the same permutation of the same three things: under-capitalized, the wrong people, bad market conditions. It’s always the same three things, so let’s explore that. Samuel Pierpont Langley was given 50,000 dollars by the War Department to figure out this flying machine. Money was no problem. He held a seat at Harvard and worked at the Smithsonian and was extremely well-connected; he knew all the big minds of the day. He hired the best minds money could find and the market conditions were fantastic. The New York Times followed him around everywhere, and everyone was rooting for Langley. And how come we’ve never heard of Samuel Pierpont Langley?

A few hundred miles away in Dayton, Ohio, Orville and Wilbur Wright, they had none of what we consider to be the recipe for success. They had no money; they paid for their dream with the proceeds from their bicycle shop. Not a single person on the Wright brothers’ team had a college education, not even Orville or Wilbur. And The New York Times followed them around nowhere.

The difference was, Orville and Wilbur were driven by a cause, by a purpose, by a belief. They believed that if they could figure out this flying machine, it’ll change the course of the world. Samuel Pierpont Langley was different. He wanted to be rich, and he wanted to be famous. He was in pursuit of the result. He was in pursuit of the riches. And lo and behold, look what happened. The people who believed in the Wright brothers’ dream worked with them with blood and sweat and tears. The others just worked for the paycheck. They tell stories of how every time the Wright brothers went out, they would have to take five sets of parts, because that’s how many times they would crash before they came in for supper.

And, eventually, on December 17th, 1903, the Wright brothers took flight, and no one was there to even experience it. We found out about it a few days later. And further proof that Langley was motivated by the wrong thing: the day the Wright brothers took flight, he quit. He could have said, “That’s an amazing discovery, guys, and I will improve upon your technology,” but he didn’t. He wasn’t first, he didn’t get rich, he didn’t get famous, so he quit.

People don’t buy what you do; they buy why you do it. If you talk about what you believe, you will attract those who believe what you believe.

But why is it important to attract those who believe what you believe? Something called the law of diffusion of innovation, and if you don’t know the law, you definitely know the terminology. The first 2.5% of our population are our innovators. The next 13.5% of our population are our early adopters. The next 34% are your early majority, your late majority and your laggards. The only reason these people buy touch-tone phones is because you can’t buy rotary phones anymore.

(Laughter)

We all sit at various places at various times on this scale, but what the law of diffusion of innovation tells us is that if you want mass-market success or mass-market acceptance of an idea, you cannot have it until you achieve this tipping point between 15 and 18 percent market penetration, and then the system tips. I love asking businesses, “What’s your conversion on new business?” They love to tell you, “It’s about 10 percent,” proudly. Well, you can trip over 10% of the customers. We all have about 10% who just “get it.” That’s how we describe them, right? That’s like that gut feeling, “Oh, they just get it.”

The problem is: How do you find the ones that get it before doing business with them versus the ones who don’t get it? So it’s this here, this little gap that you have to close, as Jeffrey Moore calls it, “Crossing the Chasm” — because, you see, the early majority will not try something until someone else has tried it first. And these guys, the innovators and the early adopters, they’re comfortable making those gut decisions. They’re more comfortable making those intuitive decisions that are driven by what they believe about the world and not just what product is available. These are the people who stood in line for six hours to buy an iPhone when they first came out, when you could’ve just walked into the store the next week and bought one off the shelf. These are the people who spent 40,000 dollars on flat-screen TVs when they first came out, even though the technology was substandard. And, by the way, they didn’t do it because the technology was so great; they did it for themselves. It’s because they wanted to be first. People don’t buy what you do; they buy why you do it and what you do simply proves what you believe. In fact, people will do the things that prove what they believe. The reason that person bought the iPhone in the first six hours, stood in line for six hours, was because of what they believed about the world, and how they wanted everybody to see them: they were first. People don’t buy what you do; they buy why you do it.

So let me give you a famous example, a famous failure and a famous success of the law of diffusion of innovation. First, the famous failure. It’s a commercial example. As we said before a second ago, the recipe for success is money and the right people and the right market conditions, right? You should have success then. Look at TiVo. From the time TiVo came out about eight or nine years ago to this current day, they are the single highest-quality product on the market, hands down, there is no dispute. They were extremely well-funded. Market conditions were fantastic. I mean, we use TiVo as verb. I TiVo stuff on my piece-of-junk Time Warner DVR all the time.

(Laughter)

But TiVo’s a commercial failure. They’ve never made money. And when they went IPO, their stock was at about 30 or 40 dollars and then plummeted, and it’s never traded above 10. In fact, I don’t think it’s even traded above six, except for a couple of little spikes.

Because you see, when TiVo launched their product, they told us all what they had. They said, “We have a product that pauses live TV, skips commercials, rewinds live TV and memorizes your viewing habits without you even asking.” And the cynical majority said, “We don’t believe you. We don’t need it. We don’t like it. You’re scaring us.”

What if they had said, “If you’re the kind of person who likes to have total control over every aspect of your life, boy, do we have a product for you. It pauses live TV, skips commercials, memorizes your viewing habits, etc., etc.” People don’t buy what you do; they buy why you do it, and what you do simply serves as the proof of what you believe.

Now let me give you a successful example of the law of diffusion of innovation. In the summer of 1963, 250,000 people showed up on the mall in Washington to hear Dr. King speak. They sent out no invitations, and there was no website to check the date. How do you do that? Well, Dr. King wasn’t the only man in America who was a great orator. He wasn’t the only man in America who suffered in a pre-civil rights America. In fact, some of his ideas were bad. But he had a gift. He didn’t go around telling people what needed to change in America. He went around and told people what he believed. “I believe, I believe, I believe,” he told people. And people who believed what he believed took his cause, and they made it their own, and they told people. And some of those people created structures to get the word out to even more people. And lo and behold, 250,000 people showed up on the right day on the right time to hear him speak.

How many of them showed up for him? Zero. They showed up for themselves. It’s what they believed about America that got them to travel in a bus for eight hours to stand in the sun in Washington in the middle of August. It’s what they believed, and it wasn’t about black versus white: 25% of the audience was white.

Dr. King believed that there are two types of laws in this world: those that are made by a higher authority and those that are made by men. And not until all the laws that are made by men are consistent with the laws that are made by the higher authority will we live in a just world. It just so happened that the Civil Rights Movement was the perfect thing to help him bring his cause to life. We followed, not for him, but for ourselves. By the way, he gave the “I have a dream” speech, not the “I have a plan” speech.

(Laughter)

Listen to politicians now, with their comprehensive 12-point plans. They’re not inspiring anybody. Because there are leaders and there are those who lead. Leaders hold a position of power or authority, but those who lead inspire us. Whether they’re individuals or organizations, we follow those who lead, not because we have to, but because we want to. We follow those who lead, not for them, but for ourselves. And it’s those who start with “why” that have the ability to inspire those around them or find others who inspire them.

Thank you very much.

Reading Notes - Start with WHY#

Book

Start with Why: How Great Leaders Inspire Everyone to Take Action, Simon Sinek, Portfolio, 2011.

The reality is, in today’s world, manipulations are the norm. This book talks about an alternative - The golden circle:

Error loading golden-circle.png

Source: Golden Circle for Organizations, Start with WHY

Applications of Golden Circle (Part 3)#

Trust (Ch. 6)#

  • We trust some people and companies even when things go wrong, and we don’t trust others even though everything might have gone exactly as it should have
  • Trust begins to emerge when we have a sense that another person or organization is driven by things other than their own self-gain
  • You have to earn trust by communicating and demonstrating that you share the same values and beliefs. You have to talk about your WHY and prove it with WHAT you do. Again, a WHY is just a belief, _HOW_s are the actions we take to realize that belief, and _WHAT_s are the results of those actions.
Constructing Team’s Culture Builds up Trust#
  • Cultures are groups of people who come together around a common set of values and beliefs

  • When we share values and beliefs with others, we form trust

  • In general, we do better in places that reflect our own values and beliefs

    • the goal is not to do business with anyone who simply wants what you have, but to do business with people who believe what you believe

    • live and work in a place where you will naturally thrive because your values and beliefs align with the values and beliefs of that culture

    • It’s the culture - the strong sense of beliefs and values that everyone, from the CEO to the receptionist, all share, that brings such group of people together

      • the goal is not to hire people who simply have a skill set you need, the goal is to hire people who believe what you believe
  • The role of a leader is not to come up with all the great ideas. The role of a leader is to create an environment in which great ideas can happen

Applications of Golden Circle to Organizaiton (Part 4)#

Inspire with Charisma (The “Why”) (Ch. 8)#

  • Charisma comes from a clarity of WHY

  • Regardless of WHAT we do in our lives, our WHY - our driving purpose, cause or belief - never changes

    • When a WHY is clear, those who share that belief will be drawn to it and maybe want to take part in bringing it to life.
Inspiring is the Beginning; Driving Movement is Next - Golden Circle Applied in Organization (3D World) (The “How”) (Ch. 8)#

Error loading golden-circle-3d.png

  • WHY = CEO (imagines the destination)
  • HOW = The people who know better HOW to do that (find the route to get there)
  • WHAT = Results

The “WHAT” (Ch. 9)#

  • The only contact that the organized system has with the disorganized system is at the base - the WHAT level. Clearing communicating from WHY level to WHAT level requires communications (Ch. 10)
How Great Leaders Inspire Action
https://leadership.qubitpi.org/posts/inspire-action/
Author
【烬火】胡桃
Published at
2024-08-14
\ No newline at end of file +" name=twitter:description>
3558 words
18 minutes
How Great Leaders Inspire Action

TED Talk by Simon#

Video Transcript#

Source

TED - How great leaders inspire action with minor corrections.

How do you explain when things don’t go as we assume? Or better, how do you explain when others are able to achieve things that seem to defy all of the assumptions? For example: Why is Apple so innovative? Year after year, after year, after year, they’re more innovative than all their competition. And yet, they’re just a computer company. They’re just like everyone else. They have the same access to the same talent, the same agencies, the same consultants, the same media. Then why is it that they seem to have something different? Why is it that Martin Luther King led the Civil Rights Movement? He wasn’t the only man who suffered in pre-civil rights America, and he certainly wasn’t the only great orator of the day. Why him? And why is it that the Wright brothers were able to figure out controlled, powered man flight when there were certainly other teams who were better qualified, better funded — and they didn’t achieve powered man flight, and the Wright brothers beat them to it. There’s something else at play here.

About three and a half years ago, I made a discovery. And this discovery profoundly changed my view on how I thought the world worked, and it even profoundly changed the way in which I operate in it. As it turns out, there’s a pattern. As it turns out, all the great and inspiring leaders and organizations in the world, whether it’s Apple or Martin Luther King or the Wright brothers, they all think, act and communicate the exact same way. And it’s the complete opposite to everyone else. All I did was codify it, and it’s probably the world’s simplest idea. I call it the golden circle.

Why? How? What? This little idea explains why some organizations and some leaders are able to inspire where others aren’t. Let me define the terms really quickly. Every single person, every single organization on the planet knows what they do, 100 percent. Some know how they do it, whether you call it your differentiated value proposition or your proprietary process or your USP. But very, very few people or organizations know why they do what they do. And by “why” I don’t mean “to make a profit.” That’s a result. It’s always a result. By “why,” I mean: What’s your purpose? What’s your cause? What’s your belief? Why does your organization exist? Why do you get out of bed in the morning? And why should anyone care? As a result, the way we think, the way we act, the way we communicate is from the outside in, it’s obvious. We go from the clearest thing to the fuzziest thing. But the inspired leaders and the inspired organizations — regardless of their size, regardless of their industry — all think, act and communicate from the inside out.

Let me give you an example. I use Apple because they’re easy to understand and everybody gets it. If Apple were like everyone else, a marketing message from them might sound like this: “We make great computers. They’re beautifully designed, simple to use and user friendly. Wanna to buy one?” “Meh.” And that’s how most of us communicate. That’s how most marketing is done; that how most sales are done, and that’s how we communicate interpersonally. We say what we do, we say how we’re different or how we’re better; we expect some sort of a behavior, a purchase, a vote, something like that. Here’s our new law firm: We have the best lawyers with the biggest clients, we always perform for our clients. Do business with us. Here’s our new car: It gets great gas mileage, it has leather seats. Buy our car. But it’s uninspiring.

Here’s how Apple actually communicates. “Everything we do, we believe in challenging the status quo. We believe in thinking differently. The way we challenge the status quo is by making our products beautifully designed, simple to use and user friendly. We just happen to make great computers. Wanna buy one?” Totally different, right? You’re ready to buy a computer from me. All I did was I reversed the order of the information. What it proves to us is that people don’t buy what you do; people buy why you do it. People don’t buy what you do; they buy why you do it.

This explains why every single person in this room is perfectly comfortable buying a computer from Apple. But we’re also perfectly comfortable buying an MP3 player from Apple, or a phone from Apple, or a DVR from Apple. But as I said before, Apple’s just a computer company. There is nothing that distinguishes them structurally from any of their competitors. Their competitors are equally qualified to make all of these products. In fact, they tried. A few years ago, Gateway came out with flat-screen TVs. They’re eminently qualified to make flat-screen TVs. They’ve been making flat-screen monitors for years. Nobody bought one. Dell came out with MP3 players and PDAs, and they make great quality products, and they can make perfectly well-designed products — and nobody bought one. In fact, talking about it now, we can’t even imagine buying an MP3 player from Dell. Why would you buy MP3 player from a computer company? But we do it every day. People don’t buy what you do; they buy why you do it. The goal is not to do business with everybody who needs what you have. The goal is to do business with people who believe what you believe.

Here’s the best part: None of what I’m telling you is my opinion. It’s all grounded in the tenets of biology. Not psychology, biology. If you look at a cross-section of the human brain, looking from the top down, what you’ll see is that the human brain is actually broken into three major components that correlate perfectly with the golden circle. Our newest brain, our Homo sapien brain, our neocortex, corresponds with the “what” level. The neocortex is responsible for all of our rational and analytical thought and language. The middle two sections make up our limbic brains, and our limbic brains are responsible for all of our feelings, like trust and loyalty. It’s also responsible for all human behavior, all decision-making, and it has no capacity for language.

In other words, when we communicate from the outside in, yes, people can understand vast amounts of complicated information like features and benefits and facts and figures. It just doesn’t drive behavior. When we communicate from the inside out, we’re talking directly to the part of the brain that controls behavior, and then we allow people to rationalize it with the tangible things we say and do. This is where gut decisions come from. You know sometimes you can give somebody all the facts and figures, and they say, “I know what all the facts and details say, but it just doesn’t feel right.” Why would we use that verb, it doesn’t “feel” right? Because the part of the brain that controls decision-making doesn’t control language. And the best we can muster up is, “I don’t know. It just doesn’t feel right.” Or sometimes you say you’re leading with your heart or soul. I hate to break it to you, those aren’t other body parts controlling your behavior. It’s all happening here in your limbic brain, the part of the brain that controls decision-making and not language.

But if you don’t know why you do what you do, and people respond to why you do what you do, then how will you ever get people to vote for you, or buy something from you, or, more importantly, be loyal and wanna be a part of what it is that you do. Again, the goal is not just to sell to people who need what you have; the goal is to sell to people who believe what you believe. The goal is not just to hire people who need a job; it’s to hire people who believe what you believe. I always say that, you know, if you hire people just because they can do a job, they’ll work for your money, but if you hire people who believe what you believe, they’ll work for you with blood and sweat and tears. Nowhere else is there a better example than with the Wright brothers.

Most people don’t know about Samuel Pierpont Langley. And back in the early 20th century, the pursuit of powered man flight was like the dot com of the day. Everybody was trying it. And Samuel Pierpont Langley had, what we assume, to be the recipe for success. Even now, you ask people, “Why did your product or why did your company fail?” and people always give you the same permutation of the same three things: under-capitalized, the wrong people, bad market conditions. It’s always the same three things, so let’s explore that. Samuel Pierpont Langley was given 50,000 dollars by the War Department to figure out this flying machine. Money was no problem. He held a seat at Harvard and worked at the Smithsonian and was extremely well-connected; he knew all the big minds of the day. He hired the best minds money could find and the market conditions were fantastic. The New York Times followed him around everywhere, and everyone was rooting for Langley. And how come we’ve never heard of Samuel Pierpont Langley?

A few hundred miles away in Dayton, Ohio, Orville and Wilbur Wright, they had none of what we consider to be the recipe for success. They had no money; they paid for their dream with the proceeds from their bicycle shop. Not a single person on the Wright brothers’ team had a college education, not even Orville or Wilbur. And The New York Times followed them around nowhere.

The difference was, Orville and Wilbur were driven by a cause, by a purpose, by a belief. They believed that if they could figure out this flying machine, it’ll change the course of the world. Samuel Pierpont Langley was different. He wanted to be rich, and he wanted to be famous. He was in pursuit of the result. He was in pursuit of the riches. And lo and behold, look what happened. The people who believed in the Wright brothers’ dream worked with them with blood and sweat and tears. The others just worked for the paycheck. They tell stories of how every time the Wright brothers went out, they would have to take five sets of parts, because that’s how many times they would crash before they came in for supper.

And, eventually, on December 17th, 1903, the Wright brothers took flight, and no one was there to even experience it. We found out about it a few days later. And further proof that Langley was motivated by the wrong thing: the day the Wright brothers took flight, he quit. He could have said, “That’s an amazing discovery, guys, and I will improve upon your technology,” but he didn’t. He wasn’t first, he didn’t get rich, he didn’t get famous, so he quit.

People don’t buy what you do; they buy why you do it. If you talk about what you believe, you will attract those who believe what you believe.

But why is it important to attract those who believe what you believe? Something called the law of diffusion of innovation, and if you don’t know the law, you definitely know the terminology. The first 2.5% of our population are our innovators. The next 13.5% of our population are our early adopters. The next 34% are your early majority, your late majority and your laggards. The only reason these people buy touch-tone phones is because you can’t buy rotary phones anymore.

(Laughter)

We all sit at various places at various times on this scale, but what the law of diffusion of innovation tells us is that if you want mass-market success or mass-market acceptance of an idea, you cannot have it until you achieve this tipping point between 15 and 18 percent market penetration, and then the system tips. I love asking businesses, “What’s your conversion on new business?” They love to tell you, “It’s about 10 percent,” proudly. Well, you can trip over 10% of the customers. We all have about 10% who just “get it.” That’s how we describe them, right? That’s like that gut feeling, “Oh, they just get it.”

The problem is: How do you find the ones that get it before doing business with them versus the ones who don’t get it? So it’s this here, this little gap that you have to close, as Jeffrey Moore calls it, “Crossing the Chasm” — because, you see, the early majority will not try something until someone else has tried it first. And these guys, the innovators and the early adopters, they’re comfortable making those gut decisions. They’re more comfortable making those intuitive decisions that are driven by what they believe about the world and not just what product is available. These are the people who stood in line for six hours to buy an iPhone when they first came out, when you could’ve just walked into the store the next week and bought one off the shelf. These are the people who spent 40,000 dollars on flat-screen TVs when they first came out, even though the technology was substandard. And, by the way, they didn’t do it because the technology was so great; they did it for themselves. It’s because they wanted to be first. People don’t buy what you do; they buy why you do it and what you do simply proves what you believe. In fact, people will do the things that prove what they believe. The reason that person bought the iPhone in the first six hours, stood in line for six hours, was because of what they believed about the world, and how they wanted everybody to see them: they were first. People don’t buy what you do; they buy why you do it.

So let me give you a famous example, a famous failure and a famous success of the law of diffusion of innovation. First, the famous failure. It’s a commercial example. As we said before a second ago, the recipe for success is money and the right people and the right market conditions, right? You should have success then. Look at TiVo. From the time TiVo came out about eight or nine years ago to this current day, they are the single highest-quality product on the market, hands down, there is no dispute. They were extremely well-funded. Market conditions were fantastic. I mean, we use TiVo as verb. I TiVo stuff on my piece-of-junk Time Warner DVR all the time.

(Laughter)

But TiVo’s a commercial failure. They’ve never made money. And when they went IPO, their stock was at about 30 or 40 dollars and then plummeted, and it’s never traded above 10. In fact, I don’t think it’s even traded above six, except for a couple of little spikes.

Because you see, when TiVo launched their product, they told us all what they had. They said, “We have a product that pauses live TV, skips commercials, rewinds live TV and memorizes your viewing habits without you even asking.” And the cynical majority said, “We don’t believe you. We don’t need it. We don’t like it. You’re scaring us.”

What if they had said, “If you’re the kind of person who likes to have total control over every aspect of your life, boy, do we have a product for you. It pauses live TV, skips commercials, memorizes your viewing habits, etc., etc.” People don’t buy what you do; they buy why you do it, and what you do simply serves as the proof of what you believe.

Now let me give you a successful example of the law of diffusion of innovation. In the summer of 1963, 250,000 people showed up on the mall in Washington to hear Dr. King speak. They sent out no invitations, and there was no website to check the date. How do you do that? Well, Dr. King wasn’t the only man in America who was a great orator. He wasn’t the only man in America who suffered in a pre-civil rights America. In fact, some of his ideas were bad. But he had a gift. He didn’t go around telling people what needed to change in America. He went around and told people what he believed. “I believe, I believe, I believe,” he told people. And people who believed what he believed took his cause, and they made it their own, and they told people. And some of those people created structures to get the word out to even more people. And lo and behold, 250,000 people showed up on the right day on the right time to hear him speak.

How many of them showed up for him? Zero. They showed up for themselves. It’s what they believed about America that got them to travel in a bus for eight hours to stand in the sun in Washington in the middle of August. It’s what they believed, and it wasn’t about black versus white: 25% of the audience was white.

Dr. King believed that there are two types of laws in this world: those that are made by a higher authority and those that are made by men. And not until all the laws that are made by men are consistent with the laws that are made by the higher authority will we live in a just world. It just so happened that the Civil Rights Movement was the perfect thing to help him bring his cause to life. We followed, not for him, but for ourselves. By the way, he gave the “I have a dream” speech, not the “I have a plan” speech.

(Laughter)

Listen to politicians now, with their comprehensive 12-point plans. They’re not inspiring anybody. Because there are leaders and there are those who lead. Leaders hold a position of power or authority, but those who lead inspire us. Whether they’re individuals or organizations, we follow those who lead, not because we have to, but because we want to. We follow those who lead, not for them, but for ourselves. And it’s those who start with “why” that have the ability to inspire those around them or find others who inspire them.

Thank you very much.

Reading Notes - Start with WHY#

Book

Start with Why: How Great Leaders Inspire Everyone to Take Action, Simon Sinek, Portfolio, 2011.

The reality is, in today’s world, manipulations are the norm. This book talks about an alternative - The golden circle:

Error loading golden-circle.png

Source: Golden Circle for Organizations, Start with WHY

Applications of Golden Circle (Part 3)#

Trust (Ch. 6)#

  • We trust some people and companies even when things go wrong, and we don’t trust others even though everything might have gone exactly as it should have
  • Trust begins to emerge when we have a sense that another person or organization is driven by things other than their own self-gain
  • You have to earn trust by communicating and demonstrating that you share the same values and beliefs. You have to talk about your WHY and prove it with WHAT you do. Again, a WHY is just a belief, _HOW_s are the actions we take to realize that belief, and _WHAT_s are the results of those actions.
Constructing Team’s Culture Builds up Trust#
  • Cultures are groups of people who come together around a common set of values and beliefs

  • When we share values and beliefs with others, we form trust

  • In general, we do better in places that reflect our own values and beliefs

    • the goal is not to do business with anyone who simply wants what you have, but to do business with people who believe what you believe

    • live and work in a place where you will naturally thrive because your values and beliefs align with the values and beliefs of that culture

    • It’s the culture - the strong sense of beliefs and values that everyone, from the CEO to the receptionist, all share, that brings such group of people together

      • the goal is not to hire people who simply have a skill set you need, the goal is to hire people who believe what you believe
  • The role of a leader is not to come up with all the great ideas. The role of a leader is to create an environment in which great ideas can happen

Applications of Golden Circle to Organizaiton (Part 4)#

Inspire with Charisma (The “Why”) (Ch. 8)#

  • Charisma comes from a clarity of WHY

  • Regardless of WHAT we do in our lives, our WHY - our driving purpose, cause or belief - never changes

    • When a WHY is clear, those who share that belief will be drawn to it and maybe want to take part in bringing it to life.
Inspiring is the Beginning; Driving Movement is Next - Golden Circle Applied in Organization (3D World) (The “How”) (Ch. 8)#

Error loading golden-circle-3d.png

  • WHY = CEO (imagines the destination)
  • HOW = The people who know better HOW to do that (find the route to get there)
  • WHAT = Results

The “WHAT” (Ch. 9)#

  • The only contact that the organized system has with the disorganized system is at the base - the WHAT level. Clearing communicating from WHY level to WHAT level requires communications (Ch. 10)
How Great Leaders Inspire Action
https://leadership.qubitpi.org/posts/inspire-action/
Author
【烬火】胡桃
Published at
2024-08-14
\ No newline at end of file diff --git a/posts/john-kennedy-inaugural/index.html b/posts/john-kennedy-inaugural/index.html index d2889a569..bd1e5e21e 100644 --- a/posts/john-kennedy-inaugural/index.html +++ b/posts/john-kennedy-inaugural/index.html @@ -1 +1 @@ -President John F. Kennedy's Inaugural Address | January 20, 1961 - Jiaqi's Leadership Blog
1767 words
9 minutes
President John F. Kennedy's Inaugural Address | January 20, 1961

Five Stars#

Source

Five Stars, Carmine Gallo. St. Martin’s Press, 2018. ISBN 978-1250155139.

There is large number of edits Kennedy had made to the inaugural speech now on display in the museum of John F. Kennedy library in Boston. The speech, delivered on January 20, 1961, was the fourth shortest inaugural address in presidential history. And JFK wanted it that way. “I don’t want people to think I’m a windbag,” Kennedy told his speechwriter, Ted Sorensen. “Make it short.” Think about it. Kennedy’s speech was 13 minutes and 42 seconds. One of the greatest speeches in American history is four minutes shorter than a TED talk.

Error loading

John F. Kennedy handwritten draft of the Inaugural Address, 17 January 1961

Kennedy made 31 changes in the last few hours, and most were aimed at streamlining the language. You can see the edits in red. Until the last minute Kennedy was crossing out phrases, replacing long words with short ones, and eliminating entire sentences. For example, Kennedy crossed out the following sentence: “The world is very different now, empowered as it is to banish all form of human poverty and all form of human life.” Kennedy removed the words “empowered” and ” banish” and wrote a simpler, stronger sentence that sounds better to the ear: “For man holds in his mortal hands the power to abolish all form of human poverty and all form of human life.”

The most famous line even went through edits. Kennedy crossed out “will” and replaced it with “can.” He cut out three words, too. The sentence finally read: “Ask not what your country can do for you—ask what you can do for your country.” As noted above, while the concept is profound, the sentence is made up of short words that a fourth-grader could read.

Another famous sentence tests at a third-grade readability level because it’s made up of mostly one-syllable words: “We shall pay any price, bear any burden, meet any hardship, support any friend, oppose any foe…”

Imagine if Kennedy had been speaking in the language of contemporary politics. He might have said, “We should consider the effort to be worth any cost or encumbrance associated with the initiative…” If he had, we would not have remembered the speech. Fewer, shorter words are more memorable.

Kennedy studied two speechmakers to sharpen his writing skills: Abraham Lincoln and Winston Churchill. Lincoln was a master storyteller. It’s said that crowds of villagers from far and wide would flock to his events when he was running for president. Great orators stir the soul, and Lincoln was one of the best.

The Great Speech#

The Speech Transcripts#

Source

President John F. Kennedy’s Inaugural Address (1961).

Vice President Johnson, Mr. Speaker, Mr. Chief Justice, President Eisenhower, Vice President Nixon, President Truman, Reverend Clergy, fellow citizens:

We observe today not a victory of party but a celebration of freedom—symbolizing an end as well as a beginning—signifying renewal as well as change. For I have sworn before you and Almighty God the same solemn oath our forbears prescribed nearly a century and three-quarters ago.

The world is very different now. For man holds in his mortal hands the power to abolish all forms of human poverty and all forms of human life. And yet the same revolutionary beliefs for which our forebears fought are still at issue around the globe—the belief that the rights of man come not from the generosity of the state but from the hand of God.

We dare not forget today that we are the heirs of that first revolution. Let the word go forth from this time and place, to friend and foe alike, that the torch has been passed to a new generation of Americans—born in this century, tempered by war, disciplined by a hard and bitter peace, proud of our ancient heritage—and unwilling to witness or permit the slow undoing of those human rights to which this nation has always been committed, and to which we are committed today at home and around the world.

Let every nation know, whether it wishes us well or ill, that we shall pay any price, bear any burden, meet any hardship, support any friend, oppose any foe to assure the survival and the success of liberty.

This much we pledge—and more.

To those old allies whose cultural and spiritual origins we share, we pledge the loyalty of faithful friends. United there is little we cannot do in a host of cooperative ventures. Divided there is little we can do—for we dare not meet a powerful challenge at odds and split asunder.

To those new states whom we welcome to the ranks of the free, we pledge our word that one form of colonial control shall not have passed away merely to be replaced by a far more iron tyranny. We shall not always expect to find them supporting our view. But we shall always hope to find them strongly supporting their own freedom—and to remember that, in the past, those who foolishly sought power by riding the back of the tiger ended up inside.

To those people in the huts and villages of half the globe struggling to break the bonds of mass misery, we pledge our best efforts to help them help themselves, for whatever period is required—not because the communists may be doing it, not because we seek their votes, but because it is right. If a free society cannot help the many who are poor, it cannot save the few who are rich.

To our sister republics south of our border, we offer a special pledge—to convert our good words into good deeds—in a new alliance for progress—to assist free men and free governments in casting off the chains of poverty. But this peaceful revolution of hope cannot become the prey of hostile powers. Let all our neighbors know that we shall join with them to oppose aggression or subversion anywhere in the Americas. And let every other power know that this Hemisphere intends to remain the master of its own house.

To that world assembly of sovereign states, the United Nations, our last best hope in an age where the instruments of war have far outpaced the instruments of peace, we renew our pledge of support—to prevent it from becoming merely a forum for invective—to strengthen its shield of the new and the weak—and to enlarge the area in which its writ may run.

Finally, to those nations who would make themselves our adversary, we offer not a pledge but a request: that both sides begin anew the quest for peace, before the dark powers of destruction unleashed by science engulf all humanity in planned or accidental self-destruction.

We dare not tempt them with weakness. For only when our arms are sufficient beyond doubt can we be certain beyond doubt that they will never be employed.

But neither can two great and powerful groups of nations take comfort from our present course—both sides overburdened by the cost of modern weapons, both rightly alarmed by the steady spread of the deadly atom, yet both racing to alter that uncertain balance of terror that stays the hand of mankind’s final war.

So let us begin anew—remembering on both sides that civility is not a sign of weakness, and sincerity is always subject to proof. Let us never negotiate out of fear. But let us never fear to negotiate.

Let both sides explore what problems unite us instead of belaboring those problems which divide us.

Let both sides, for the first time, formulate serious and precise proposals for the inspection and control of arms—and bring the absolute power to destroy other nations under the absolute control of all nations.

Let both sides seek to invoke the wonders of science instead of its terrors. Together let us explore the stars, conquer the deserts, eradicate disease, tap the ocean depths and encourage the arts and commerce.

Let both sides unite to heed in all corners of the earth the command of Isaiah—to “undo the heavy burdens … (and) let the oppressed go free.”

And if a beachhead of cooperation may push back the jungle of suspicion, let both sides join in creating a new endeavor, not a new balance of power, but a new world of law, where the strong are just and the weak secure and the peace preserved.

All this will not be finished in the first one hundred days. Nor will it be finished in the first one thousand days, nor in the life of this Administration, nor even perhaps in our lifetime on this planet. But let us begin.

In your hands, my fellow citizens, more than mine, will rest the final success or failure of our course. Since this country was founded, each generation of Americans has been summoned to give testimony to its national loyalty. The graves of young Americans who answered the call to service surround the globe.

Now the trumpet summons us again—not as a call to bear arms, though arms we need—not as a call to battle, though embattled we are— but a call to bear the burden of a long twilight struggle, year in and year out, “rejoicing in hope, patient in tribulation”—a struggle against the common enemies of man: tyranny, poverty, disease and war itself.

Can we forge against these enemies a grand and global alliance, North and South, East and West, that can assure a more fruitful life for all mankind? Will you join in that historic effort?

In the long history of the world, only a few generations have been granted the role of defending freedom in its hour of maximum danger. I do not shrink from this responsibility—I welcome it. I do not believe that any of us would exchange places with any other people or any other generation. The energy, the faith, the devotion which we bring to this endeavor will light our country and all who serve it—and the glow from that fire can truly light the world.

And so, my fellow Americans: ask not what your country can do for you—ask what you can do for your country.

My fellow citizens of the world: ask not what America will do for you, but what together we can do for the freedom of man.

Finally, whether you are citizens of America or citizens of the world, ask of us here the same high standards of strength and sacrifice which we ask of you. With a good conscience our only sure reward, with history the final judge of our deeds, let us go forth to lead the land we love, asking His blessing and His help, but knowing that here on earth God’s work must truly be our own.

President John F. Kennedy's Inaugural Address | January 20, 1961
https://leadership.qubitpi.org/posts/john-kennedy-inaugural/
Author
【烬火】胡桃
Published at
2024-08-09
\ No newline at end of file +President John F. Kennedy's Inaugural Address | January 20, 1961 - Jiaqi's Leadership Blog
1767 words
9 minutes
President John F. Kennedy's Inaugural Address | January 20, 1961

Five Stars#

Source

Five Stars, Carmine Gallo. St. Martin’s Press, 2018. ISBN 978-1250155139.

There is large number of edits Kennedy had made to the inaugural speech now on display in the museum of John F. Kennedy library in Boston. The speech, delivered on January 20, 1961, was the fourth shortest inaugural address in presidential history. And JFK wanted it that way. “I don’t want people to think I’m a windbag,” Kennedy told his speechwriter, Ted Sorensen. “Make it short.” Think about it. Kennedy’s speech was 13 minutes and 42 seconds. One of the greatest speeches in American history is four minutes shorter than a TED talk.

Error loading

John F. Kennedy handwritten draft of the Inaugural Address, 17 January 1961

Kennedy made 31 changes in the last few hours, and most were aimed at streamlining the language. You can see the edits in red. Until the last minute Kennedy was crossing out phrases, replacing long words with short ones, and eliminating entire sentences. For example, Kennedy crossed out the following sentence: “The world is very different now, empowered as it is to banish all form of human poverty and all form of human life.” Kennedy removed the words “empowered” and ” banish” and wrote a simpler, stronger sentence that sounds better to the ear: “For man holds in his mortal hands the power to abolish all form of human poverty and all form of human life.”

The most famous line even went through edits. Kennedy crossed out “will” and replaced it with “can.” He cut out three words, too. The sentence finally read: “Ask not what your country can do for you—ask what you can do for your country.” As noted above, while the concept is profound, the sentence is made up of short words that a fourth-grader could read.

Another famous sentence tests at a third-grade readability level because it’s made up of mostly one-syllable words: “We shall pay any price, bear any burden, meet any hardship, support any friend, oppose any foe…”

Imagine if Kennedy had been speaking in the language of contemporary politics. He might have said, “We should consider the effort to be worth any cost or encumbrance associated with the initiative…” If he had, we would not have remembered the speech. Fewer, shorter words are more memorable.

Kennedy studied two speechmakers to sharpen his writing skills: Abraham Lincoln and Winston Churchill. Lincoln was a master storyteller. It’s said that crowds of villagers from far and wide would flock to his events when he was running for president. Great orators stir the soul, and Lincoln was one of the best.

The Great Speech#

The Speech Transcripts#

Source

President John F. Kennedy’s Inaugural Address (1961).

Vice President Johnson, Mr. Speaker, Mr. Chief Justice, President Eisenhower, Vice President Nixon, President Truman, Reverend Clergy, fellow citizens:

We observe today not a victory of party but a celebration of freedom—symbolizing an end as well as a beginning—signifying renewal as well as change. For I have sworn before you and Almighty God the same solemn oath our forbears prescribed nearly a century and three-quarters ago.

The world is very different now. For man holds in his mortal hands the power to abolish all forms of human poverty and all forms of human life. And yet the same revolutionary beliefs for which our forebears fought are still at issue around the globe—the belief that the rights of man come not from the generosity of the state but from the hand of God.

We dare not forget today that we are the heirs of that first revolution. Let the word go forth from this time and place, to friend and foe alike, that the torch has been passed to a new generation of Americans—born in this century, tempered by war, disciplined by a hard and bitter peace, proud of our ancient heritage—and unwilling to witness or permit the slow undoing of those human rights to which this nation has always been committed, and to which we are committed today at home and around the world.

Let every nation know, whether it wishes us well or ill, that we shall pay any price, bear any burden, meet any hardship, support any friend, oppose any foe to assure the survival and the success of liberty.

This much we pledge—and more.

To those old allies whose cultural and spiritual origins we share, we pledge the loyalty of faithful friends. United there is little we cannot do in a host of cooperative ventures. Divided there is little we can do—for we dare not meet a powerful challenge at odds and split asunder.

To those new states whom we welcome to the ranks of the free, we pledge our word that one form of colonial control shall not have passed away merely to be replaced by a far more iron tyranny. We shall not always expect to find them supporting our view. But we shall always hope to find them strongly supporting their own freedom—and to remember that, in the past, those who foolishly sought power by riding the back of the tiger ended up inside.

To those people in the huts and villages of half the globe struggling to break the bonds of mass misery, we pledge our best efforts to help them help themselves, for whatever period is required—not because the communists may be doing it, not because we seek their votes, but because it is right. If a free society cannot help the many who are poor, it cannot save the few who are rich.

To our sister republics south of our border, we offer a special pledge—to convert our good words into good deeds—in a new alliance for progress—to assist free men and free governments in casting off the chains of poverty. But this peaceful revolution of hope cannot become the prey of hostile powers. Let all our neighbors know that we shall join with them to oppose aggression or subversion anywhere in the Americas. And let every other power know that this Hemisphere intends to remain the master of its own house.

To that world assembly of sovereign states, the United Nations, our last best hope in an age where the instruments of war have far outpaced the instruments of peace, we renew our pledge of support—to prevent it from becoming merely a forum for invective—to strengthen its shield of the new and the weak—and to enlarge the area in which its writ may run.

Finally, to those nations who would make themselves our adversary, we offer not a pledge but a request: that both sides begin anew the quest for peace, before the dark powers of destruction unleashed by science engulf all humanity in planned or accidental self-destruction.

We dare not tempt them with weakness. For only when our arms are sufficient beyond doubt can we be certain beyond doubt that they will never be employed.

But neither can two great and powerful groups of nations take comfort from our present course—both sides overburdened by the cost of modern weapons, both rightly alarmed by the steady spread of the deadly atom, yet both racing to alter that uncertain balance of terror that stays the hand of mankind’s final war.

So let us begin anew—remembering on both sides that civility is not a sign of weakness, and sincerity is always subject to proof. Let us never negotiate out of fear. But let us never fear to negotiate.

Let both sides explore what problems unite us instead of belaboring those problems which divide us.

Let both sides, for the first time, formulate serious and precise proposals for the inspection and control of arms—and bring the absolute power to destroy other nations under the absolute control of all nations.

Let both sides seek to invoke the wonders of science instead of its terrors. Together let us explore the stars, conquer the deserts, eradicate disease, tap the ocean depths and encourage the arts and commerce.

Let both sides unite to heed in all corners of the earth the command of Isaiah—to “undo the heavy burdens … (and) let the oppressed go free.”

And if a beachhead of cooperation may push back the jungle of suspicion, let both sides join in creating a new endeavor, not a new balance of power, but a new world of law, where the strong are just and the weak secure and the peace preserved.

All this will not be finished in the first one hundred days. Nor will it be finished in the first one thousand days, nor in the life of this Administration, nor even perhaps in our lifetime on this planet. But let us begin.

In your hands, my fellow citizens, more than mine, will rest the final success or failure of our course. Since this country was founded, each generation of Americans has been summoned to give testimony to its national loyalty. The graves of young Americans who answered the call to service surround the globe.

Now the trumpet summons us again—not as a call to bear arms, though arms we need—not as a call to battle, though embattled we are— but a call to bear the burden of a long twilight struggle, year in and year out, “rejoicing in hope, patient in tribulation”—a struggle against the common enemies of man: tyranny, poverty, disease and war itself.

Can we forge against these enemies a grand and global alliance, North and South, East and West, that can assure a more fruitful life for all mankind? Will you join in that historic effort?

In the long history of the world, only a few generations have been granted the role of defending freedom in its hour of maximum danger. I do not shrink from this responsibility—I welcome it. I do not believe that any of us would exchange places with any other people or any other generation. The energy, the faith, the devotion which we bring to this endeavor will light our country and all who serve it—and the glow from that fire can truly light the world.

And so, my fellow Americans: ask not what your country can do for you—ask what you can do for your country.

My fellow citizens of the world: ask not what America will do for you, but what together we can do for the freedom of man.

Finally, whether you are citizens of America or citizens of the world, ask of us here the same high standards of strength and sacrifice which we ask of you. With a good conscience our only sure reward, with history the final judge of our deeds, let us go forth to lead the land we love, asking His blessing and His help, but knowing that here on earth God’s work must truly be our own.

President John F. Kennedy's Inaugural Address | January 20, 1961
https://leadership.qubitpi.org/posts/john-kennedy-inaugural/
Author
【烬火】胡桃
Published at
2024-08-09
\ No newline at end of file diff --git a/posts/john-kennedy-space/index.html b/posts/john-kennedy-space/index.html index f610f11b5..e9a8b78aa 100644 --- a/posts/john-kennedy-space/index.html +++ b/posts/john-kennedy-space/index.html @@ -1 +1 @@ -John F. Kennedy Address at Rice University on the Space Effort - Jiaqi's Leadership Blog
2933 words
15 minutes
John F. Kennedy Address at Rice University on the Space Effort

Five Stars#

Source

Five Stars, Carmine Gallo. St. Martin’s Press, 2018. ISBN 978-1250155139.

Robert Frost wrote that John F. Kennedy’s election heralded “a golden age of poetry and power”. Frost was right. In the speeches that Kennedy delivered to inspire the country to build a moon program, Kennedy translated his ideas into language that fueled one of the greatest achievements in human history. Recently scholars have identified some of his most effective rhetorical techniques.

Wharton management professor Andrew Carton stumbled upon Mars’s story as he pored over 18,000 pages of documents, transcripts, and internal NASA memos from the Apollo program, America’s ambitious initiative, begun in 1961, to put a man on the moon. Carton noted a common thread among the writings of Mars and the other NASA employees across all functions - accountants and administrators, clerks and engineers. They’d all been profoundly inspired by the words of one man: John F. Kennedy.

Carton identified the rhetorical formula behind Kennedy’s successful communication and explained how his speaking skills triggered massive action.

  1. First, “Kennedy reduced the number of NASA’s aspirations to one.” When NASA was established in 1958, it had several objectives, among them to establish superior space technology, to achieve preeminence in space, and to advance science. Kennedy chose to focus on the single goal of sending humans to the moon and returning them safely to Earth. It’s easier to rally a team around one common goal than to divide their attention.
  2. Second, “Kennedy shifted attention from NASA’s ultimate aspiration to a concrete objective.” In other words, Kennedy took the abstract (advancing science by exploring the solar system) and made it tangible. On May 25, 1961, Kennedy told the U.S. Congress: “This nation should commit itself to achieving the goal, before this decade is out, of landing a man on the moon and returning him safely to earth.” Kennedy articulated a concrete goal and attached a specific deadline to it.
  3. Third, “Kennedy communicated milestones that connected employees’ day-to-day work with concrete objectives.” Kennedy outlined three programs and three objectives: The Mercury program would send an astronaut into orbit; Gemini would teach NASA what it didn’t know about space walks and connecting two spacecrafts together; and Apollo would ultimately put a man on the moon. The “rule of three” is a powerful communication technique that superstar persuaders use to mobilize their listeners.
  4. Fourth, “Kennedy emphasized the impressive scale of the objective with metaphors, analogies and unique figures of speech.” Kennedy relied on a rarely used technique that linguists call “embodied concept.” It binds a concrete event (landing on the moon) with an abstract aspiration (advancing science). The abstract and concrete become one and the same. For example, in a speech at Rice University in 1962, Kennedy said, “Space is there and we’re going to climb it, and the moon and the planets are there, and new hopes for knowledge and peace are there.” Kennedy gave abstract ideals like knowledge, peace, and exploration a real location.

The four steps proved to be irresistibly persuasive. Kennedy’s “soft” skill led to one of the greatest achievements in the history of humanity. His words gave NASA employees a stronger connection between their work and the ultimate goal. They no longer saw their work as an isolated series of tasks like mopping the floors or building electrical circuits. Instead, they viewed their work as a critical component of putting a man on the moon, advancing science, and changing the world as we know it. “In this way, Kennedy positioned employees to experience greater meaningfulness from their work by changing the meaning of work,” says Carton.

In the early 1960s, skeptics outnumbered those who believed a person could set foot on the moon by the end of the decade. Kennedy didn’t persuade people with facts alone; he made them feel. He combined what Aristotle called Pathos and Logos: emotion and logic. Kennedy’s words achieved emotional transcendence, making people believe that the impossible was possible. Skeptics became believers and believers became evangelists.

The Great Speech#

The Speech Transcripts#

Source

Source: Public Papers of the Presidents of the United States, v. 1, 1962, pp. 669-670.

President Pitzer, Mr. Vice President, Governor, Congressman Thomas, Senator Wiley, and Congressman Miller, Mr. Webb. Mr. Bell, scientists, distinguished guests, and ladies and gentlemen:

I appreciate your president having made me an honorary visiting professor, and I will assure you that my first lecture will be very brief. I am delighted to be here and I’m particularly delighted to be here on this occasion.

We meet at a college noted for knowledge, in a city noted for progress, in a State noted for strength, and we stand in need of all three, for we meet in an hour of change and challenge, in a decade of hope and fear, in an age of both knowledge and ignorance. The greater our knowledge increases, the greater our ignorance unfolds.

Despite the striking fact that most of the scientists that the world has ever known are alive and working today, despite the fact that this Nation’s own scientific manpower is doubling every 12 years in a rate of growth more than three times that of our population as a whole, despite that, the vast stretches of the unknown and the unanswered and the unfinished still far out-strip our collective comprehension.

No man can fully grasp how far and how fast we have come, but condense, if you will, the 50,000 years of man’s recorded history in a time span of but a half century. Stated in these terms, we know very little about the first 40 years, except at the end of them advanced man had learned to use the skins of animals to cover them. Then about 10 years ago, under this standard, man emerged from his caves to construct other kinds of shelter. Only 5 years ago man learned to write and use a cart with wheels. Christianity began less than 2 years ago. The printing press came this year, and then less than 2 months ago, during this whole 50-year span of human history, the steam engine provided a new source of power.

Newton explored the meaning of gravity. Last month electric lights and telephones and automobiles and airplanes became available. Only last week did we develop penicillin and television and nuclear power, and now if America’s new spacecraft succeeds in reaching Venus, we will have literally reached the stars before midnight tonight.

This is a breathtaking pace, and such a pace cannot help but create new ills as it dispels old, new ignorance, new problems, new dangers. Surely the opening vistas of space promise high costs and hardships, as well as high reward.

So it is not surprising that some would have us stay where we are a little longer to rest, to wait. But this city of Houston, this State of Texas, this country of the United States was not built by those who waited and rested and wished to look behind them. This country was conquered by those who moved forward-and so will space.

William Bradford, speaking in 1630 of the founding of the Plymouth Bay Colony, said that all great and honorable actions are accompanied with great difficulties, and both must be enterprised and overcome with answerable courage.

If this capsule history of our progress teaches us anything, it is that man, in his quest for knowledge and progress, is determined and cannot be deterred. The exploration of space will go ahead, whether we join in it or not, and it is one of the great adventures of all time, and no nation which expects to be the leader of other nations can expect to stay behind in this race for space.

Those who came before us made certain that this country rode the first waves of the industrial revolutions, the first waves of modern invention, and the first wave of nuclear power, and this generation does not intend to founder in the backwash of the coming age of space. We mean to be a part of it - we mean to lead it. For the eyes of the world now look into space, to the moon and to the planets beyond, and we have vowed that we shall not see it governed by a hostile flag of conquest, but by a banner of freedom and peace. We have vowed that we shall not see space filled with weapons of mass destruction, but with instruments of knowledge and understanding.

Yet the vows of this Nation can only be fulfilled if we in this Nation are first, and, therefore, we intend to be first. In short, our leadership in science and in industry, our hopes for peace and security, our obligations to ourselves as well as others, all require us to make this effort, to solve these mysteries, to solve them for the good of all men, and to become the world’s leading space-faring nation.

We set sail on this new sea because there is new knowledge to be gained, and new rights to be won, and they must be won and used for the progress of all people. For space science, like nuclear science and all technology, has no conscience of its own. Whether it will become a force for good or ill depends on man, and only if the United States occupies a position of pre-eminence can we help decide whether this new ocean will be a sea of peace or a new terrifying theater of war. I do not say that we should or will go unprotected against the hostile misuse of space any more than we go unprotected against the hostile use of land or sea, but I do say that space can be explored and mastered without feeding the fires of war, without repeating the mistakes that man has made in extending his writ around this globe of ours.

There is no strife, no prejudice, no national conflict in outer space as yet. Its hazards are hostile to us all. Its conquest deserves the best of all mankind, and its opportunity for peaceful cooperation may never come again. But why, some say, the moon? Why choose this as our goal? And they may well ask why climb the highest mountain. Why, 35 years ago, fly the Atlantic? Why does Rice play Texas?

We choose to go to the moon. We choose to go to the moon in this decade and do the other things, not because they are easy, but because they are hard, because that goal will serve to organize and measure the best of our energies and skills, because that challenge is one that we are willing to accept, one we are unwilling to postpone, and one which we intend to win, and the others, too.

It is for these reasons that I regard the decision last year to shift our efforts in space from low to high gear as among the most important decisions that will be made during my incumbency in the Office of the Presidency.

In the last 24 hours we have seen facilities now being created for the greatest and most complex exploration in man’s history. We have felt the ground shake and the air shattered by the testing of a Saturn C-1 booster rocket, many times as powerful as the Atlas which launched John Glenn, generating power equivalent to 10,000 automobiles with their accelerators on the floor. We have seen the site where five F-1 rocket engines, each one as powerful as all eight engines of the Saturn combined, will be clustered together to make the advanced Saturn missile, assembled in a new building to be built at Cape Canaveral as tall as a 48-story structure, as wide as a city block, and as long as two lengths of this field.

Within these last 19 months at least 45 satellites have circled the earth. Some 40 of them were “made in the United States of America” and they were far more sophisticated and supplied far more knowledge to the people of the world than those of the Soviet Union.

The Mariner spacecraft now on its way to Venus is the most intricate instrument in the history of space science. The accuracy of that shot is comparable to firing a missile from Cape Canaveral and dropping it in this stadium between the 40-yard lines.

Transit satellites are helping our ships at sea to steer a safer course. Tiros satellites have given us unprecedented warnings of hurricanes and storms, and will do the same for forest fires and icebergs.

We have had our failures, but so have others, even if they do not admit them. And they may be less public.

To be sure, we are behind, and will be behind for some time in manned flight. But we do not intend to stay behind, and in this decade we shall make up and move ahead.

The growth of our science and education will be enriched by new knowledge of our universe and environment, by new techniques of learning and mapping and observation, by new tools and computers for industry, medicine, the home as well as the school. Technical institutions, such as Rice, will reap the harvest of these gains.

And finally, the space effort itself, while still in its infancy, has already created a great number of new companies, and tens of thousands of new jobs. Space and related industries are generating new demands in investment and skilled personnel, and this city and this State, and this region, will share greatly in this growth. What was once the furthest outpost on the old frontier of the West will be the furthest outpost on the new frontier of science and space. Houston, your City of Houston, with its Manned Spacecraft Center, will become the heart of a large scientific and engineering community. During the next 5 years the National Aeronautics and Space Administration expects to double the number of scientists and engineers in this area, to increase its outlays for salaries and expenses to 60millionayear;toinvestsome60 million a year; to invest some200 million in plant and laboratory facilities; and to direct or contract for new space efforts over $1 billion from this Center in this City.

To be sure, all this costs us all a good deal of money. This year’s space budget is three times what it was in January 1961, and it is greater than the space budget of the previous 8 years combined. That budget now stands at $5,400 million a year-a staggering sum, though somewhat less than we pay for cigarettes and cigars every year. Space expenditures will soon rise some more from 40 cents per person per week to more than 50 cents a week for every man, woman, and child in the United States, for we have given this program a high national priority even though I realize that this is in some measure an act of faith and vision, for we do not now know what benefits await us. But if I were to say, my fellow citizens, that we shall send to the moon, 240,000 miles away from the control station in Houston, a giant rocket more than 300 feet tall, the length of this football field, made of new metal alloys, some of which have not yet been invented, capable of standing heat and stresses several times more than have ever been experienced, fitted together with a precision better than the finest watch, carrying all the equipment needed for propulsion, guidance, control, communications, food and survival, on an untried mission, to an unknown celestial body, and then return it safely to earth, reentering the atmosphere at speeds of over 25,000 miles per hour, causing heat about half that of the temperature of the sun - almost as hot as it is here today - and do all this, and do it right, and do it first before this decade is out, then we must be bold.

I’m the one who is doing all the work, so we just want you to stay cool for a minute.

However, I think we’re going to do it, and I think that we must pay what needs to be paid. I don’t think we ought to waste any money, but I think we ought to do the job. And this will be done in the decade of the sixties. It may be done while some of you are still here at school at this college and university. It will be done during the terms of office of some of the people who sit here on this platform. But it will be done. And it will be done before the end of this decade.

I am delighted that this university is playing a part in putting a man on the moon as part of a great national effort of the United States of America.

Many years ago the great British explorer George Mallory, who was to die on Mount Everest, was asked why did he want to climb it. He said, “Because it is there.”

Well, space is there, and we’re going to climb it, and the moon and the planets are there, and new hopes for knowledge and peace are there. And, therefore, as we set sail we ask God’s blessing on the most hazardous and dangerous and greatest adventure on which man has ever embarked.

Thank you.

NOTE: The President spoke in the Rice University Stadium at 10 a.m.

In his opening words he referred to Dr. K. S. Pitzer, President of the University, Vice President Lyndon B. Johnson, Governor Price Daniel of Texas, Representative Albert Thomas of Texas, Senator Alexander Wiley of Wisconsin, Representative George P. Miller of California, James E. Webb, Administrator, National Aeronautics and Space Administration., David E. Bell, Director of the Bureau of the Budget.

John F. Kennedy Address at Rice University on the Space Effort
https://leadership.qubitpi.org/posts/john-kennedy-space/
Author
【烬火】胡桃
Published at
2024-08-08
\ No newline at end of file +John F. Kennedy Address at Rice University on the Space Effort - Jiaqi's Leadership Blog
2933 words
15 minutes
John F. Kennedy Address at Rice University on the Space Effort

Five Stars#

Source

Five Stars, Carmine Gallo. St. Martin’s Press, 2018. ISBN 978-1250155139.

Robert Frost wrote that John F. Kennedy’s election heralded “a golden age of poetry and power”. Frost was right. In the speeches that Kennedy delivered to inspire the country to build a moon program, Kennedy translated his ideas into language that fueled one of the greatest achievements in human history. Recently scholars have identified some of his most effective rhetorical techniques.

Wharton management professor Andrew Carton stumbled upon Mars’s story as he pored over 18,000 pages of documents, transcripts, and internal NASA memos from the Apollo program, America’s ambitious initiative, begun in 1961, to put a man on the moon. Carton noted a common thread among the writings of Mars and the other NASA employees across all functions - accountants and administrators, clerks and engineers. They’d all been profoundly inspired by the words of one man: John F. Kennedy.

Carton identified the rhetorical formula behind Kennedy’s successful communication and explained how his speaking skills triggered massive action.

  1. First, “Kennedy reduced the number of NASA’s aspirations to one.” When NASA was established in 1958, it had several objectives, among them to establish superior space technology, to achieve preeminence in space, and to advance science. Kennedy chose to focus on the single goal of sending humans to the moon and returning them safely to Earth. It’s easier to rally a team around one common goal than to divide their attention.
  2. Second, “Kennedy shifted attention from NASA’s ultimate aspiration to a concrete objective.” In other words, Kennedy took the abstract (advancing science by exploring the solar system) and made it tangible. On May 25, 1961, Kennedy told the U.S. Congress: “This nation should commit itself to achieving the goal, before this decade is out, of landing a man on the moon and returning him safely to earth.” Kennedy articulated a concrete goal and attached a specific deadline to it.
  3. Third, “Kennedy communicated milestones that connected employees’ day-to-day work with concrete objectives.” Kennedy outlined three programs and three objectives: The Mercury program would send an astronaut into orbit; Gemini would teach NASA what it didn’t know about space walks and connecting two spacecrafts together; and Apollo would ultimately put a man on the moon. The “rule of three” is a powerful communication technique that superstar persuaders use to mobilize their listeners.
  4. Fourth, “Kennedy emphasized the impressive scale of the objective with metaphors, analogies and unique figures of speech.” Kennedy relied on a rarely used technique that linguists call “embodied concept.” It binds a concrete event (landing on the moon) with an abstract aspiration (advancing science). The abstract and concrete become one and the same. For example, in a speech at Rice University in 1962, Kennedy said, “Space is there and we’re going to climb it, and the moon and the planets are there, and new hopes for knowledge and peace are there.” Kennedy gave abstract ideals like knowledge, peace, and exploration a real location.

The four steps proved to be irresistibly persuasive. Kennedy’s “soft” skill led to one of the greatest achievements in the history of humanity. His words gave NASA employees a stronger connection between their work and the ultimate goal. They no longer saw their work as an isolated series of tasks like mopping the floors or building electrical circuits. Instead, they viewed their work as a critical component of putting a man on the moon, advancing science, and changing the world as we know it. “In this way, Kennedy positioned employees to experience greater meaningfulness from their work by changing the meaning of work,” says Carton.

In the early 1960s, skeptics outnumbered those who believed a person could set foot on the moon by the end of the decade. Kennedy didn’t persuade people with facts alone; he made them feel. He combined what Aristotle called Pathos and Logos: emotion and logic. Kennedy’s words achieved emotional transcendence, making people believe that the impossible was possible. Skeptics became believers and believers became evangelists.

The Great Speech#

The Speech Transcripts#

Source

Source: Public Papers of the Presidents of the United States, v. 1, 1962, pp. 669-670.

President Pitzer, Mr. Vice President, Governor, Congressman Thomas, Senator Wiley, and Congressman Miller, Mr. Webb. Mr. Bell, scientists, distinguished guests, and ladies and gentlemen:

I appreciate your president having made me an honorary visiting professor, and I will assure you that my first lecture will be very brief. I am delighted to be here and I’m particularly delighted to be here on this occasion.

We meet at a college noted for knowledge, in a city noted for progress, in a State noted for strength, and we stand in need of all three, for we meet in an hour of change and challenge, in a decade of hope and fear, in an age of both knowledge and ignorance. The greater our knowledge increases, the greater our ignorance unfolds.

Despite the striking fact that most of the scientists that the world has ever known are alive and working today, despite the fact that this Nation’s own scientific manpower is doubling every 12 years in a rate of growth more than three times that of our population as a whole, despite that, the vast stretches of the unknown and the unanswered and the unfinished still far out-strip our collective comprehension.

No man can fully grasp how far and how fast we have come, but condense, if you will, the 50,000 years of man’s recorded history in a time span of but a half century. Stated in these terms, we know very little about the first 40 years, except at the end of them advanced man had learned to use the skins of animals to cover them. Then about 10 years ago, under this standard, man emerged from his caves to construct other kinds of shelter. Only 5 years ago man learned to write and use a cart with wheels. Christianity began less than 2 years ago. The printing press came this year, and then less than 2 months ago, during this whole 50-year span of human history, the steam engine provided a new source of power.

Newton explored the meaning of gravity. Last month electric lights and telephones and automobiles and airplanes became available. Only last week did we develop penicillin and television and nuclear power, and now if America’s new spacecraft succeeds in reaching Venus, we will have literally reached the stars before midnight tonight.

This is a breathtaking pace, and such a pace cannot help but create new ills as it dispels old, new ignorance, new problems, new dangers. Surely the opening vistas of space promise high costs and hardships, as well as high reward.

So it is not surprising that some would have us stay where we are a little longer to rest, to wait. But this city of Houston, this State of Texas, this country of the United States was not built by those who waited and rested and wished to look behind them. This country was conquered by those who moved forward-and so will space.

William Bradford, speaking in 1630 of the founding of the Plymouth Bay Colony, said that all great and honorable actions are accompanied with great difficulties, and both must be enterprised and overcome with answerable courage.

If this capsule history of our progress teaches us anything, it is that man, in his quest for knowledge and progress, is determined and cannot be deterred. The exploration of space will go ahead, whether we join in it or not, and it is one of the great adventures of all time, and no nation which expects to be the leader of other nations can expect to stay behind in this race for space.

Those who came before us made certain that this country rode the first waves of the industrial revolutions, the first waves of modern invention, and the first wave of nuclear power, and this generation does not intend to founder in the backwash of the coming age of space. We mean to be a part of it - we mean to lead it. For the eyes of the world now look into space, to the moon and to the planets beyond, and we have vowed that we shall not see it governed by a hostile flag of conquest, but by a banner of freedom and peace. We have vowed that we shall not see space filled with weapons of mass destruction, but with instruments of knowledge and understanding.

Yet the vows of this Nation can only be fulfilled if we in this Nation are first, and, therefore, we intend to be first. In short, our leadership in science and in industry, our hopes for peace and security, our obligations to ourselves as well as others, all require us to make this effort, to solve these mysteries, to solve them for the good of all men, and to become the world’s leading space-faring nation.

We set sail on this new sea because there is new knowledge to be gained, and new rights to be won, and they must be won and used for the progress of all people. For space science, like nuclear science and all technology, has no conscience of its own. Whether it will become a force for good or ill depends on man, and only if the United States occupies a position of pre-eminence can we help decide whether this new ocean will be a sea of peace or a new terrifying theater of war. I do not say that we should or will go unprotected against the hostile misuse of space any more than we go unprotected against the hostile use of land or sea, but I do say that space can be explored and mastered without feeding the fires of war, without repeating the mistakes that man has made in extending his writ around this globe of ours.

There is no strife, no prejudice, no national conflict in outer space as yet. Its hazards are hostile to us all. Its conquest deserves the best of all mankind, and its opportunity for peaceful cooperation may never come again. But why, some say, the moon? Why choose this as our goal? And they may well ask why climb the highest mountain. Why, 35 years ago, fly the Atlantic? Why does Rice play Texas?

We choose to go to the moon. We choose to go to the moon in this decade and do the other things, not because they are easy, but because they are hard, because that goal will serve to organize and measure the best of our energies and skills, because that challenge is one that we are willing to accept, one we are unwilling to postpone, and one which we intend to win, and the others, too.

It is for these reasons that I regard the decision last year to shift our efforts in space from low to high gear as among the most important decisions that will be made during my incumbency in the Office of the Presidency.

In the last 24 hours we have seen facilities now being created for the greatest and most complex exploration in man’s history. We have felt the ground shake and the air shattered by the testing of a Saturn C-1 booster rocket, many times as powerful as the Atlas which launched John Glenn, generating power equivalent to 10,000 automobiles with their accelerators on the floor. We have seen the site where five F-1 rocket engines, each one as powerful as all eight engines of the Saturn combined, will be clustered together to make the advanced Saturn missile, assembled in a new building to be built at Cape Canaveral as tall as a 48-story structure, as wide as a city block, and as long as two lengths of this field.

Within these last 19 months at least 45 satellites have circled the earth. Some 40 of them were “made in the United States of America” and they were far more sophisticated and supplied far more knowledge to the people of the world than those of the Soviet Union.

The Mariner spacecraft now on its way to Venus is the most intricate instrument in the history of space science. The accuracy of that shot is comparable to firing a missile from Cape Canaveral and dropping it in this stadium between the 40-yard lines.

Transit satellites are helping our ships at sea to steer a safer course. Tiros satellites have given us unprecedented warnings of hurricanes and storms, and will do the same for forest fires and icebergs.

We have had our failures, but so have others, even if they do not admit them. And they may be less public.

To be sure, we are behind, and will be behind for some time in manned flight. But we do not intend to stay behind, and in this decade we shall make up and move ahead.

The growth of our science and education will be enriched by new knowledge of our universe and environment, by new techniques of learning and mapping and observation, by new tools and computers for industry, medicine, the home as well as the school. Technical institutions, such as Rice, will reap the harvest of these gains.

And finally, the space effort itself, while still in its infancy, has already created a great number of new companies, and tens of thousands of new jobs. Space and related industries are generating new demands in investment and skilled personnel, and this city and this State, and this region, will share greatly in this growth. What was once the furthest outpost on the old frontier of the West will be the furthest outpost on the new frontier of science and space. Houston, your City of Houston, with its Manned Spacecraft Center, will become the heart of a large scientific and engineering community. During the next 5 years the National Aeronautics and Space Administration expects to double the number of scientists and engineers in this area, to increase its outlays for salaries and expenses to 60millionayear;toinvestsome60 million a year; to invest some200 million in plant and laboratory facilities; and to direct or contract for new space efforts over $1 billion from this Center in this City.

To be sure, all this costs us all a good deal of money. This year’s space budget is three times what it was in January 1961, and it is greater than the space budget of the previous 8 years combined. That budget now stands at $5,400 million a year-a staggering sum, though somewhat less than we pay for cigarettes and cigars every year. Space expenditures will soon rise some more from 40 cents per person per week to more than 50 cents a week for every man, woman, and child in the United States, for we have given this program a high national priority even though I realize that this is in some measure an act of faith and vision, for we do not now know what benefits await us. But if I were to say, my fellow citizens, that we shall send to the moon, 240,000 miles away from the control station in Houston, a giant rocket more than 300 feet tall, the length of this football field, made of new metal alloys, some of which have not yet been invented, capable of standing heat and stresses several times more than have ever been experienced, fitted together with a precision better than the finest watch, carrying all the equipment needed for propulsion, guidance, control, communications, food and survival, on an untried mission, to an unknown celestial body, and then return it safely to earth, reentering the atmosphere at speeds of over 25,000 miles per hour, causing heat about half that of the temperature of the sun - almost as hot as it is here today - and do all this, and do it right, and do it first before this decade is out, then we must be bold.

I’m the one who is doing all the work, so we just want you to stay cool for a minute.

However, I think we’re going to do it, and I think that we must pay what needs to be paid. I don’t think we ought to waste any money, but I think we ought to do the job. And this will be done in the decade of the sixties. It may be done while some of you are still here at school at this college and university. It will be done during the terms of office of some of the people who sit here on this platform. But it will be done. And it will be done before the end of this decade.

I am delighted that this university is playing a part in putting a man on the moon as part of a great national effort of the United States of America.

Many years ago the great British explorer George Mallory, who was to die on Mount Everest, was asked why did he want to climb it. He said, “Because it is there.”

Well, space is there, and we’re going to climb it, and the moon and the planets are there, and new hopes for knowledge and peace are there. And, therefore, as we set sail we ask God’s blessing on the most hazardous and dangerous and greatest adventure on which man has ever embarked.

Thank you.

NOTE: The President spoke in the Rice University Stadium at 10 a.m.

In his opening words he referred to Dr. K. S. Pitzer, President of the University, Vice President Lyndon B. Johnson, Governor Price Daniel of Texas, Representative Albert Thomas of Texas, Senator Alexander Wiley of Wisconsin, Representative George P. Miller of California, James E. Webb, Administrator, National Aeronautics and Space Administration., David E. Bell, Director of the Bureau of the Budget.

John F. Kennedy Address at Rice University on the Space Effort
https://leadership.qubitpi.org/posts/john-kennedy-space/
Author
【烬火】胡桃
Published at
2024-08-08
\ No newline at end of file diff --git a/posts/kant-view-of-mind-and-consciousness/index.html b/posts/kant-view-of-mind-and-consciousness/index.html index eccd8171f..f520beb59 100644 --- a/posts/kant-view-of-mind-and-consciousness/index.html +++ b/posts/kant-view-of-mind-and-consciousness/index.html @@ -1 +1 @@ -Kant's View of the Mind and Consciousness of Self - Jiaqi's Leadership Blog
3353 words
17 minutes
Kant's View of the Mind and Consciousness of Self

Brook, Andrew and Julian Wuerth, “Kant’s View of the Mind and Consciousness of Self”, The Stanford Encyclopedia of Philosophy (Spring 2023 Edition), Edward N. Zalta & Uri Nodelman (eds.)

A Sketch of Kant’s View of the Mind#

In general structure, Kant’s model of the mind was the dominant model in the empirical psychology that flowed from his work and then again, after a hiatus during which behaviourism reigned supreme (roughly 1910 to 1965), toward the end of the 20th century, especially in cognitive science. Central elements of the models of the mind of thinkers otherwise as different as Sigmund Freud and Jerry Fodor are broadly Kantian, for example.

Three ideas define the basic shape (‘cognitive architecture’) of Kant’s model and one its dominant method. They have all become part of the foundation of cognitive science.

  1. The mind is a complex set of abilities (functions). (As Meerbote 1989 and many others have observed, Kant held a functionalist view of the mind almost 200 years before functionalism was officially articulated in the 1960s by Hilary Putnam and others.)
  2. The functions crucial for mental, knowledge-generating activity are spatio-temporal processing of, and application of concepts to, sensory inputs. Cognition requires concepts as well as percepts.
  3. These functions are forms of what Kant called synthesis. Synthesis (and the unity in consciousness required for synthesis) are central to cognition.

These three ideas are fundamental to most thinking about cognition now. Kant’s most important method, the transcendental method, is also at the heart of contemporary cognitive science.

  • To study the mind, infer the conditions necessary for experience. Arguments having this structure are called transcendental arguments.
TIP

Translated into contemporary terms, the core of this method is inference to the best explanation, the method of postulating unobservable mental mechanisms in order to explain observed behaviour.

To be sure, Kant thought that he could get more out of his transcendental arguments than just ‘best explanations’. He thought that he could get a priori (experience independent) knowledge out of them. Kant had a tripartite doctrine of the a priori. He held that some features of the mind and its knowledge had a priori origins, i.e., must be in the mind prior to experience (because using them is necessary to have experience). That mind and knowledge have these features are a priori truths, i.e., necessary and universal. And we can come to know these truths, or that they are a priori at any rate, only by using a priori methods, i.e., we cannot learn these things from experience (B3) (Brook 1993). Kant thought that transcendental arguments were a priori or yielded the a priori in all three ways. Nonetheless, at the heart of this method is inference to the best explanation. When introspection fell out of favour about 100 years ago, the alternative approach adopted was exactly this approach. Its nonempirical roots in Kant notwithstanding, it is now the major method used by experimental cognitive scientists.

IMPORTANT

Other topics equally central to Kant’s approach to the mind have hardly been discussed by cognitive science. These include a kind of synthesis that for Kant was essential to minds like ours and what struck him as the most striking features of consciousness of self. Far from his model having been superseded by cognitive science, some things central to the model have not even been assimilated by it.

Kant’s Critical Project and How the Mind Fits Into It#

The major works so far as Kant’s views on the mind are concerned are the monumental Critique of Pure Reason (CPR) and his little, late Anthropology from a Pragmatic Point of View, first published in 1798 only six years before his death. Kant’s view of the mind arose from his general philosophical project in CPR the following way. Kant aimed among other things to,

  • Justify our conviction that physics, like mathematics, is a body of necessary and universal truth.
  • Insulate religion, including belief in immortality, and free will from the corrosive effects of this very same science.

Kant accepted without reservation that “God, freedom and immortality” (1781/7, Bxxx) exist but feared that, if science were relevant to their existence at all, it would provide reasons to doubt that they exist. As he saw it and very fortunately, science cannot touch these questions. “I have found it necessary to deny knowledge, … in order to make room for faith.” (Bxxx, his italics).

Laying the foundation for pursuit of the first aim, which as he saw it was no less than the aim of showing why physics is a science, was what led Kant to his views about how the mind works. He approached the grounding of physics by asking: What are the necessary conditions of experience? Put simply, he held that for our experience, and therefore our minds, to be as they are, the way that our experience is tied together must reflect the way that, according to physics, says objects in the world must be tied together. Seeing this connection also tells us a lot about what our minds must be like.

In pursuit of the second aim, Kant criticized some arguments of his predecessors that entailed if sound that we can know more about the mind’s consciousness of itself than Kant could allow. Mounting these criticisms led him to some extraordinarily penetrating ideas about our consciousness of ourselves.

In CPR, Kant discussed the mind only in connection with his main projects, never in its own right, so his treatment is remarkably scattered and sketchy. As he put it, “Enquiry … [into] the pure understanding itself, its possibility and the cognitive faculties upon which it rests … is of great importance for my chief purpose, … [but] does not form an essential part of it” (Axvii). Indeed, Kant offers no sustained, focussed discussion of the mind anywhere in his work except the popular Anthropology.

In addition, the two chapters of CPR in which most of Kant’s remarks on the mind occur, the chapter on the Transcendental Deduction (TD) and the chapter on what he called Paralogisms (faulty arguments about the mind mounted by his predecessors) were the two chapters that gave him the greatest difficulty. (They contain some of the most impenetrable prose ever written.) Kant completely rewrote the main body of both chapters for the second edition (though not the introductions, interestingly).

In the two editions of CPR, there are seven main discussions of the mind. The first is in the Transcendental Aesthetic, the second is in what is usually called the Metaphysical Deduction. Then there are two discussions of it in the first-edition TD, in parts 1 to 3 of Section 2 and in the whole of Section 3 and two more in the second-edition TD. The seventh and last is found in the first edition version of Kant’s attack on the Paralogisms, in the course of which he says things of the utmost interest about consciousness of and reference to self. (What little was retained of these remarks in the second edition was moved to the completely rewritten TD.) For understanding Kant on the mind and self-knowledge, the first edition of CPR is far more valuable than the second edition. Kant’s discussion proceeds through the following stages.

Transcendental Aesthetic#

Kant calls the first stage the Transcendental Aesthetic. It is about what space and time must be like, and how we must handle them, if our experience is to have the spatial and temporal properties that it has. This question about the necessary conditions of experience is for Kant a ‘transcendental’ question and the strategy of proceeding by trying to find answers to such questions is, as we said, the strategy of transcendental argument.

Here Kant advances one of his most notorious views: that whatever it is that impinges on us from the mind-independent world does not come located in a spatial nor even a temporal matrix (A37=B54fn.). Rather, it is the mind that organizes this ‘manifold of raw intuition’, as he called it, spatially and temporally. The mind has two pure forms of intuition, space and time, built into it to allow it to do so. (‘Pure’ means ‘not derived from experience’.)

Metaphysical Deduction#

The Aesthetic is about the conditions of experience, Kant’s official project. The chapter leading up to the Transcendental Deduction, The Clue to the Discovery of All Pure Concepts of the Understanding has a very different starting point.

Starting from Aristotelian logic (the syllogisms and the formal concepts that Aristotle called categories), Kant proceeds by analysis to draw out the implications of these concepts and syllogisms for the conceptual structure (the “function of thought in judgment”) within which all thought and experience must take place. The result is what Kant called the Categories. That is to say, Kant tries to deduce the conceptual structure of experience from the components of Aristotelian logic.

Thus, in Kant’s thought about the mind early in CPR, there is not one central movement but two, one in the Transcendental Aesthetic and the other in the Metaphysical Deduction. The first is a move up from experience (of objects) to the necessary conditions of such experience. The second is a move down from the Aristotelian functions of judgment to the concepts that we have to use in judging, namely, the Categories. One is inference up from experience, the other deduction down from conceptual structures of the most abstract kind.

Transcendental Deduction, 1st Edition#

Then we get to the second chapter of the Transcendental Logic, the brilliant and baffling Transcendental Deduction (TD). Recall the two movements just discussed, the one from experience to its conditions and the one from Aristotelian functions of judgment to the concepts that we must use in all judging (the Categories). This duality led Kant to his famous question of right (quid juris): with what right do we apply the Categories, which are not acquired from experience, to the contents of experience?. Kant’s problem here is not as arcane as it might seem. It reflects an important question: How is it that the world as we experience it conforms to our logic? In briefest form, Kant thought that the trick to showing how it is possible for the Categories to apply to experience is to show that it is necessary that they apply.

TD has two sides, though Kant never treats them separately. He once called them the objective and the subjective deductions. The objective deduction is about the conceptual and other cognitive conditions of having representations of objects. It is Kant’s answer to the quid juris question. Exactly how the objective deduction goes is highly controversial, a controversy that we will sidestep here. The subjective deduction is about what the mind, the “subjective sources” of understanding, must as a consequence be like. The subjective deduction is what mainly interests us.

Kant argues as follows. Our experiences have objects, that is, they are about something. The objects of our experiences are discrete, unified particulars. To have such particulars available to it, the mind must construct them based on sensible input. To construct them, the mind must do three kinds of synthesis. It must generate temporal and spatial structure (Synthesis of Apprehension in Intuition). It must associate spatio-temporally structured items with other spatio-temporally structured items (Synthesis of Reproduction in the Imagination). And it must recognize items using concepts, the Categories in particular (Synthesis of Recognition in a Concept). This threefold doctrine of synthesis is one of the cornerstones of Kant’s model of the mind. We will consider it in more detail in the next Section.

The ‘deduction of the categories’ should now be complete. Strangely enough, the chapter has only nicely got started. In the first edition version, for example, we have only reached about one-third of the way through the chapter. At this point, Kant introduces the notion of transcendental apperception for the first time and the unity of such apperception, the unity of consciousness. Evidently, something is happening (something, moreover, not at all well heralded in the text)

We can now understand in more detail why Kant said that the subjective deduction is inessential. Since the objective deduction is about the conditions of representations having objects, a better name for it might have been ‘deduction of the object’. Similarly, a better name for the subjective deduction might have been ‘the deduction of the subject’ or ‘the deduction of the subject’s nature’. The latter enquiry was inessential to Kant’s main critical project because the main project was to defend the synthetic a priori credentials of physics in the objective deduction. From this point of view, anything uncovered about the nature and functioning of the mind was a happy accident.

Attack on the Paralogisms, 1st Edition#

The chapter on the Paralogisms, the first of the three parts of Kant’s second project, contains Kant’s most original insights into the nature of consciousness of the self. In the first edition, he seems to have achieved a stable position on self-consciousness only as late as this chapter. Certainly his position was not stable in TD. Even his famous term for consciousness of self, ‘I think’, occurs for the first time only in the introduction to the chapter on the Paralogisms. His target is claims that we know what the mind is like. Whatever the merits of Kant’s attack on these claims, in the course of mounting it, he made some very deep-running observations about consciousness and knowledge of self.

TIP

To summarize: in the first edition, TD contains most of what Kant had to say about synthesis and unity, but little on the nature of consciousness of self. The chapter on the Paralogisms contains most of what he has to say about consciousness of self.

The Two Discussions in the 2nd-edition TD and Other Discussions#

In other new material prepared for the second edition, we find a first gloss on the topic of self-consciousness as early as the Aesthetic (B68). The mind also appears in a new passage called the Refutation of Idealism, where Kant attempts to tie the possibility of one sort of consciousness of self to consciousness of permanence in something other than ourselves, in a way he thought to be inconsistent with Berkeleian idealism. This new Refutation of Idealism has often been viewed as a replacement for the argument against the Fourth Paralogism of the first edition.

Elsewhere in his work, the only sustained discussion of the mind and consciousness is, as we said, his little, late Anthropology from a Pragmatic Point of View. By ‘anthropology’ Kant meant the study of human beings from the point of view of their (psychologically-controlled) behaviour, especially their behaviour toward one another, and of the things revealed in behaviour such as character. Though Kant sometimes contrasted anthropology as a legitimate study with what he understood empirical psychology to be, namely, psychology based on introspective observation, he meant by anthropology something fairly close to what we now mean by behavioural or experimental psychology.

Kant’s View of the Mind#

Method#

Turning now to Kant’s view of the mind, we will start with a point about method: Kant held surprisingly strong and not entirely consistent views on the empirical study of the mind. The empirical method for doing psychology that Kant discussed was introspection.

Sometimes he held such study to be hopeless. The key text on psychology is in The Metaphysical Foundations of Natural Science. There Kant tell us that “the empirical doctrine of the soul … must remain even further removed than chemistry from the rank of what may be called a natural science proper”. (In Kant’s defence, there was nothing resembling a single unified theory of chemical reactions in his time.) The contents of introspection, in his terms inner sense, cannot be studied scientifically for at least 5 reasons.

  1. Having only one universal dimension and one that they are only represented to have at that, namely, distribution in time, the contents of inner sense cannot be quantified; thus no mathematical model of them is possible.
  2. “The manifold of internal observation is separated only by mere thought”. That is to say, only the introspective observer distinguishes the items one from another; there are no real distinctions among the items themselves.
  3. These items “cannot be kept separate” in a way that would allow us to connect them again “at will”, by which Kant presumably means, according to the dictates of our developing theory.
  4. “Another thinking subject does not submit to our investigations in such a way as to be conformable to our purposes” - the only thinking subject whose inner sense one can investigate is oneself.
  5. “Even the observation itself alters and distorts the state of the object observed”. Indeed, introspection can be bad for the health: it is a road to “mental illness” (‘Illuminism and Terrorism’, 1798, Ak. VII:133; see 161).

In these critical passages, it is not clear why he didn’t respect what he called anthropology more highly as an empirical study of the mind, given that he himself did it. He did so elsewhere. In the Anthropology, for example, he links ‘self-observation’ and observation of others and calls them both sources of anthropology

Whatever, no kind of empirical psychology can yield necessary truths about the mind. In the light of this limitation, how should we study the mind? Kant’s answer was: transcendental method using transcendental arguments (notions introduced earlier). If we cannot observe the connections among the denizens of inner sense to any purpose, we can study what the mind must be like and what capacities and structures (in Kant’s jargon, faculties) it must have if it is to represent things as it does. With this method we can find universally true, that is to say, ‘transcendental’ psychological propositions. We have already seen what some of them are: minds must be able to synthesize and minds must have a distinctive unity, for example. Let us turn now to these substantive claims.

Synthesis and Faculties#

We have already discussed Kant’s view of the mind’s handling of space and time, so we can proceed directly to his doctrine of synthesis. As Kant put it in one of his most famous passages, “Concepts without intuitions are empty, intuitions without concepts are blind”. Experience requires both percepts and concepts. As we might say now, to discriminate, we need information; but for information to be of any use to us, we must organize the information. This organization is provided by acts of synthesis.

By synthesis, in its most general sense, I understand the act of putting different representations together, and of grasping what is manifold in them in one knowledge

If the doctrine of space and time is the first major part of his model of the mind, the doctrine of synthesis is the second. Kant claimed, as we saw earlier, that three kinds of synthesis are required to organize information, namely apprehending in intuition, reproducing in imagination, and recognizing in concepts. Each of the three kinds of synthesis relates to a different aspect of Kant’s fundamental duality of intuition and concept. Synthesis of apprehension concerns raw perceptual input, synthesis of recognition concerns concepts, and synthesis of reproduction in imagination allows the mind to go from the one to the other.

They also relate to three fundamental faculties of the mind. One is the province of Sensibility, one is the province of Understanding, and the one in the middle is the province of a faculty that has a far less settled position than the other two, namely, Imagination

The first two, apprehension and reproduction, are inseparable; one cannot occur without the other. The third, recognition, requires the other two but is not required by them. It seems that only the third requires the use of concepts; this problem of non-concept-using syntheses and their relationship to use of the categories becomes a substantial issue in the second edition, where Kant tries to save the universality of the objective deduction by arguing that all three kinds of syntheses are required to represent objects.

Acts of synthesis are performed on that to which we are passive in experience, namely intuitions (Anschauungen). Intuitions are quite different from sense-data as classically understood; we can become conscious of intuitions only after acts of synthesis and only by inference from these acts, not directly. Thus they are something more like theoretical entities (better, events) postulated to explain something in what we do recognize. What they explain is the non-conceptual element in representations, an element over which we have no control. Intuitions determine how our representations will serve to confirm or refute theories, aid or impede our efforts to reach various goals.

Synthesis of Apprehension in Intuition#

Kant's View of the Mind and Consciousness of Self
https://leadership.qubitpi.org/posts/kant-view-of-mind-and-consciousness/
Author
【烬火】胡桃
Published at
2024-07-27
\ No newline at end of file +Kant's View of the Mind and Consciousness of Self - Jiaqi's Leadership Blog
3353 words
17 minutes
Kant's View of the Mind and Consciousness of Self

Brook, Andrew and Julian Wuerth, “Kant’s View of the Mind and Consciousness of Self”, The Stanford Encyclopedia of Philosophy (Spring 2023 Edition), Edward N. Zalta & Uri Nodelman (eds.)

A Sketch of Kant’s View of the Mind#

In general structure, Kant’s model of the mind was the dominant model in the empirical psychology that flowed from his work and then again, after a hiatus during which behaviourism reigned supreme (roughly 1910 to 1965), toward the end of the 20th century, especially in cognitive science. Central elements of the models of the mind of thinkers otherwise as different as Sigmund Freud and Jerry Fodor are broadly Kantian, for example.

Three ideas define the basic shape (‘cognitive architecture’) of Kant’s model and one its dominant method. They have all become part of the foundation of cognitive science.

  1. The mind is a complex set of abilities (functions). (As Meerbote 1989 and many others have observed, Kant held a functionalist view of the mind almost 200 years before functionalism was officially articulated in the 1960s by Hilary Putnam and others.)
  2. The functions crucial for mental, knowledge-generating activity are spatio-temporal processing of, and application of concepts to, sensory inputs. Cognition requires concepts as well as percepts.
  3. These functions are forms of what Kant called synthesis. Synthesis (and the unity in consciousness required for synthesis) are central to cognition.

These three ideas are fundamental to most thinking about cognition now. Kant’s most important method, the transcendental method, is also at the heart of contemporary cognitive science.

  • To study the mind, infer the conditions necessary for experience. Arguments having this structure are called transcendental arguments.
TIP

Translated into contemporary terms, the core of this method is inference to the best explanation, the method of postulating unobservable mental mechanisms in order to explain observed behaviour.

To be sure, Kant thought that he could get more out of his transcendental arguments than just ‘best explanations’. He thought that he could get a priori (experience independent) knowledge out of them. Kant had a tripartite doctrine of the a priori. He held that some features of the mind and its knowledge had a priori origins, i.e., must be in the mind prior to experience (because using them is necessary to have experience). That mind and knowledge have these features are a priori truths, i.e., necessary and universal. And we can come to know these truths, or that they are a priori at any rate, only by using a priori methods, i.e., we cannot learn these things from experience (B3) (Brook 1993). Kant thought that transcendental arguments were a priori or yielded the a priori in all three ways. Nonetheless, at the heart of this method is inference to the best explanation. When introspection fell out of favour about 100 years ago, the alternative approach adopted was exactly this approach. Its nonempirical roots in Kant notwithstanding, it is now the major method used by experimental cognitive scientists.

IMPORTANT

Other topics equally central to Kant’s approach to the mind have hardly been discussed by cognitive science. These include a kind of synthesis that for Kant was essential to minds like ours and what struck him as the most striking features of consciousness of self. Far from his model having been superseded by cognitive science, some things central to the model have not even been assimilated by it.

Kant’s Critical Project and How the Mind Fits Into It#

The major works so far as Kant’s views on the mind are concerned are the monumental Critique of Pure Reason (CPR) and his little, late Anthropology from a Pragmatic Point of View, first published in 1798 only six years before his death. Kant’s view of the mind arose from his general philosophical project in CPR the following way. Kant aimed among other things to,

  • Justify our conviction that physics, like mathematics, is a body of necessary and universal truth.
  • Insulate religion, including belief in immortality, and free will from the corrosive effects of this very same science.

Kant accepted without reservation that “God, freedom and immortality” (1781/7, Bxxx) exist but feared that, if science were relevant to their existence at all, it would provide reasons to doubt that they exist. As he saw it and very fortunately, science cannot touch these questions. “I have found it necessary to deny knowledge, … in order to make room for faith.” (Bxxx, his italics).

Laying the foundation for pursuit of the first aim, which as he saw it was no less than the aim of showing why physics is a science, was what led Kant to his views about how the mind works. He approached the grounding of physics by asking: What are the necessary conditions of experience? Put simply, he held that for our experience, and therefore our minds, to be as they are, the way that our experience is tied together must reflect the way that, according to physics, says objects in the world must be tied together. Seeing this connection also tells us a lot about what our minds must be like.

In pursuit of the second aim, Kant criticized some arguments of his predecessors that entailed if sound that we can know more about the mind’s consciousness of itself than Kant could allow. Mounting these criticisms led him to some extraordinarily penetrating ideas about our consciousness of ourselves.

In CPR, Kant discussed the mind only in connection with his main projects, never in its own right, so his treatment is remarkably scattered and sketchy. As he put it, “Enquiry … [into] the pure understanding itself, its possibility and the cognitive faculties upon which it rests … is of great importance for my chief purpose, … [but] does not form an essential part of it” (Axvii). Indeed, Kant offers no sustained, focussed discussion of the mind anywhere in his work except the popular Anthropology.

In addition, the two chapters of CPR in which most of Kant’s remarks on the mind occur, the chapter on the Transcendental Deduction (TD) and the chapter on what he called Paralogisms (faulty arguments about the mind mounted by his predecessors) were the two chapters that gave him the greatest difficulty. (They contain some of the most impenetrable prose ever written.) Kant completely rewrote the main body of both chapters for the second edition (though not the introductions, interestingly).

In the two editions of CPR, there are seven main discussions of the mind. The first is in the Transcendental Aesthetic, the second is in what is usually called the Metaphysical Deduction. Then there are two discussions of it in the first-edition TD, in parts 1 to 3 of Section 2 and in the whole of Section 3 and two more in the second-edition TD. The seventh and last is found in the first edition version of Kant’s attack on the Paralogisms, in the course of which he says things of the utmost interest about consciousness of and reference to self. (What little was retained of these remarks in the second edition was moved to the completely rewritten TD.) For understanding Kant on the mind and self-knowledge, the first edition of CPR is far more valuable than the second edition. Kant’s discussion proceeds through the following stages.

Transcendental Aesthetic#

Kant calls the first stage the Transcendental Aesthetic. It is about what space and time must be like, and how we must handle them, if our experience is to have the spatial and temporal properties that it has. This question about the necessary conditions of experience is for Kant a ‘transcendental’ question and the strategy of proceeding by trying to find answers to such questions is, as we said, the strategy of transcendental argument.

Here Kant advances one of his most notorious views: that whatever it is that impinges on us from the mind-independent world does not come located in a spatial nor even a temporal matrix (A37=B54fn.). Rather, it is the mind that organizes this ‘manifold of raw intuition’, as he called it, spatially and temporally. The mind has two pure forms of intuition, space and time, built into it to allow it to do so. (‘Pure’ means ‘not derived from experience’.)

Metaphysical Deduction#

The Aesthetic is about the conditions of experience, Kant’s official project. The chapter leading up to the Transcendental Deduction, The Clue to the Discovery of All Pure Concepts of the Understanding has a very different starting point.

Starting from Aristotelian logic (the syllogisms and the formal concepts that Aristotle called categories), Kant proceeds by analysis to draw out the implications of these concepts and syllogisms for the conceptual structure (the “function of thought in judgment”) within which all thought and experience must take place. The result is what Kant called the Categories. That is to say, Kant tries to deduce the conceptual structure of experience from the components of Aristotelian logic.

Thus, in Kant’s thought about the mind early in CPR, there is not one central movement but two, one in the Transcendental Aesthetic and the other in the Metaphysical Deduction. The first is a move up from experience (of objects) to the necessary conditions of such experience. The second is a move down from the Aristotelian functions of judgment to the concepts that we have to use in judging, namely, the Categories. One is inference up from experience, the other deduction down from conceptual structures of the most abstract kind.

Transcendental Deduction, 1st Edition#

Then we get to the second chapter of the Transcendental Logic, the brilliant and baffling Transcendental Deduction (TD). Recall the two movements just discussed, the one from experience to its conditions and the one from Aristotelian functions of judgment to the concepts that we must use in all judging (the Categories). This duality led Kant to his famous question of right (quid juris): with what right do we apply the Categories, which are not acquired from experience, to the contents of experience?. Kant’s problem here is not as arcane as it might seem. It reflects an important question: How is it that the world as we experience it conforms to our logic? In briefest form, Kant thought that the trick to showing how it is possible for the Categories to apply to experience is to show that it is necessary that they apply.

TD has two sides, though Kant never treats them separately. He once called them the objective and the subjective deductions. The objective deduction is about the conceptual and other cognitive conditions of having representations of objects. It is Kant’s answer to the quid juris question. Exactly how the objective deduction goes is highly controversial, a controversy that we will sidestep here. The subjective deduction is about what the mind, the “subjective sources” of understanding, must as a consequence be like. The subjective deduction is what mainly interests us.

Kant argues as follows. Our experiences have objects, that is, they are about something. The objects of our experiences are discrete, unified particulars. To have such particulars available to it, the mind must construct them based on sensible input. To construct them, the mind must do three kinds of synthesis. It must generate temporal and spatial structure (Synthesis of Apprehension in Intuition). It must associate spatio-temporally structured items with other spatio-temporally structured items (Synthesis of Reproduction in the Imagination). And it must recognize items using concepts, the Categories in particular (Synthesis of Recognition in a Concept). This threefold doctrine of synthesis is one of the cornerstones of Kant’s model of the mind. We will consider it in more detail in the next Section.

The ‘deduction of the categories’ should now be complete. Strangely enough, the chapter has only nicely got started. In the first edition version, for example, we have only reached about one-third of the way through the chapter. At this point, Kant introduces the notion of transcendental apperception for the first time and the unity of such apperception, the unity of consciousness. Evidently, something is happening (something, moreover, not at all well heralded in the text)

We can now understand in more detail why Kant said that the subjective deduction is inessential. Since the objective deduction is about the conditions of representations having objects, a better name for it might have been ‘deduction of the object’. Similarly, a better name for the subjective deduction might have been ‘the deduction of the subject’ or ‘the deduction of the subject’s nature’. The latter enquiry was inessential to Kant’s main critical project because the main project was to defend the synthetic a priori credentials of physics in the objective deduction. From this point of view, anything uncovered about the nature and functioning of the mind was a happy accident.

Attack on the Paralogisms, 1st Edition#

The chapter on the Paralogisms, the first of the three parts of Kant’s second project, contains Kant’s most original insights into the nature of consciousness of the self. In the first edition, he seems to have achieved a stable position on self-consciousness only as late as this chapter. Certainly his position was not stable in TD. Even his famous term for consciousness of self, ‘I think’, occurs for the first time only in the introduction to the chapter on the Paralogisms. His target is claims that we know what the mind is like. Whatever the merits of Kant’s attack on these claims, in the course of mounting it, he made some very deep-running observations about consciousness and knowledge of self.

TIP

To summarize: in the first edition, TD contains most of what Kant had to say about synthesis and unity, but little on the nature of consciousness of self. The chapter on the Paralogisms contains most of what he has to say about consciousness of self.

The Two Discussions in the 2nd-edition TD and Other Discussions#

In other new material prepared for the second edition, we find a first gloss on the topic of self-consciousness as early as the Aesthetic (B68). The mind also appears in a new passage called the Refutation of Idealism, where Kant attempts to tie the possibility of one sort of consciousness of self to consciousness of permanence in something other than ourselves, in a way he thought to be inconsistent with Berkeleian idealism. This new Refutation of Idealism has often been viewed as a replacement for the argument against the Fourth Paralogism of the first edition.

Elsewhere in his work, the only sustained discussion of the mind and consciousness is, as we said, his little, late Anthropology from a Pragmatic Point of View. By ‘anthropology’ Kant meant the study of human beings from the point of view of their (psychologically-controlled) behaviour, especially their behaviour toward one another, and of the things revealed in behaviour such as character. Though Kant sometimes contrasted anthropology as a legitimate study with what he understood empirical psychology to be, namely, psychology based on introspective observation, he meant by anthropology something fairly close to what we now mean by behavioural or experimental psychology.

Kant’s View of the Mind#

Method#

Turning now to Kant’s view of the mind, we will start with a point about method: Kant held surprisingly strong and not entirely consistent views on the empirical study of the mind. The empirical method for doing psychology that Kant discussed was introspection.

Sometimes he held such study to be hopeless. The key text on psychology is in The Metaphysical Foundations of Natural Science. There Kant tell us that “the empirical doctrine of the soul … must remain even further removed than chemistry from the rank of what may be called a natural science proper”. (In Kant’s defence, there was nothing resembling a single unified theory of chemical reactions in his time.) The contents of introspection, in his terms inner sense, cannot be studied scientifically for at least 5 reasons.

  1. Having only one universal dimension and one that they are only represented to have at that, namely, distribution in time, the contents of inner sense cannot be quantified; thus no mathematical model of them is possible.
  2. “The manifold of internal observation is separated only by mere thought”. That is to say, only the introspective observer distinguishes the items one from another; there are no real distinctions among the items themselves.
  3. These items “cannot be kept separate” in a way that would allow us to connect them again “at will”, by which Kant presumably means, according to the dictates of our developing theory.
  4. “Another thinking subject does not submit to our investigations in such a way as to be conformable to our purposes” - the only thinking subject whose inner sense one can investigate is oneself.
  5. “Even the observation itself alters and distorts the state of the object observed”. Indeed, introspection can be bad for the health: it is a road to “mental illness” (‘Illuminism and Terrorism’, 1798, Ak. VII:133; see 161).

In these critical passages, it is not clear why he didn’t respect what he called anthropology more highly as an empirical study of the mind, given that he himself did it. He did so elsewhere. In the Anthropology, for example, he links ‘self-observation’ and observation of others and calls them both sources of anthropology

Whatever, no kind of empirical psychology can yield necessary truths about the mind. In the light of this limitation, how should we study the mind? Kant’s answer was: transcendental method using transcendental arguments (notions introduced earlier). If we cannot observe the connections among the denizens of inner sense to any purpose, we can study what the mind must be like and what capacities and structures (in Kant’s jargon, faculties) it must have if it is to represent things as it does. With this method we can find universally true, that is to say, ‘transcendental’ psychological propositions. We have already seen what some of them are: minds must be able to synthesize and minds must have a distinctive unity, for example. Let us turn now to these substantive claims.

Synthesis and Faculties#

We have already discussed Kant’s view of the mind’s handling of space and time, so we can proceed directly to his doctrine of synthesis. As Kant put it in one of his most famous passages, “Concepts without intuitions are empty, intuitions without concepts are blind”. Experience requires both percepts and concepts. As we might say now, to discriminate, we need information; but for information to be of any use to us, we must organize the information. This organization is provided by acts of synthesis.

By synthesis, in its most general sense, I understand the act of putting different representations together, and of grasping what is manifold in them in one knowledge

If the doctrine of space and time is the first major part of his model of the mind, the doctrine of synthesis is the second. Kant claimed, as we saw earlier, that three kinds of synthesis are required to organize information, namely apprehending in intuition, reproducing in imagination, and recognizing in concepts. Each of the three kinds of synthesis relates to a different aspect of Kant’s fundamental duality of intuition and concept. Synthesis of apprehension concerns raw perceptual input, synthesis of recognition concerns concepts, and synthesis of reproduction in imagination allows the mind to go from the one to the other.

They also relate to three fundamental faculties of the mind. One is the province of Sensibility, one is the province of Understanding, and the one in the middle is the province of a faculty that has a far less settled position than the other two, namely, Imagination

The first two, apprehension and reproduction, are inseparable; one cannot occur without the other. The third, recognition, requires the other two but is not required by them. It seems that only the third requires the use of concepts; this problem of non-concept-using syntheses and their relationship to use of the categories becomes a substantial issue in the second edition, where Kant tries to save the universality of the objective deduction by arguing that all three kinds of syntheses are required to represent objects.

Acts of synthesis are performed on that to which we are passive in experience, namely intuitions (Anschauungen). Intuitions are quite different from sense-data as classically understood; we can become conscious of intuitions only after acts of synthesis and only by inference from these acts, not directly. Thus they are something more like theoretical entities (better, events) postulated to explain something in what we do recognize. What they explain is the non-conceptual element in representations, an element over which we have no control. Intuitions determine how our representations will serve to confirm or refute theories, aid or impede our efforts to reach various goals.

Synthesis of Apprehension in Intuition#

Kant's View of the Mind and Consciousness of Self
https://leadership.qubitpi.org/posts/kant-view-of-mind-and-consciousness/
Author
【烬火】胡桃
Published at
2024-07-27
\ No newline at end of file diff --git a/posts/leibniz-theodicy/index.html b/posts/leibniz-theodicy/index.html index 7aed76946..189e22db5 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>
521 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#

On page 138 of Theodicy, the only book-length treatise that he published during his lifetime2, 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 possible3.

Footnotes#

  1. Wikipedia - Gottfried Wilhelm Leibniz 2 3

  2. Stanford Encyclopedia of Philosophy, Leibniz on the Problem of Evil

  3. 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>
521 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#

On page 138 of Theodicy, the only book-length treatise that he published during his lifetime2, 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 possible3.

Footnotes#

  1. Wikipedia - Gottfried Wilhelm Leibniz 2 3

  2. Stanford Encyclopedia of Philosophy, Leibniz on the Problem of Evil

  3. 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 diff --git a/posts/literate-programming/index.html b/posts/literate-programming/index.html index 10c970cdb..1e65b1285 100644 --- a/posts/literate-programming/index.html +++ b/posts/literate-programming/index.html @@ -1 +1 @@ -Literate Programming - Jiaqi's Leadership Blog
218 words
1 minutes
Literate Programming

I was studying Jupyter Documentation and stumbled upon this article which introduced to me the first time Literate Programming.

I read about it and ended up couldn’t agree with it more. Literate Programming significantly improves documentation of programs for human by concentrating on explaining to human beings what we want a computer to do.

The practitioner of literate programming can be regarded as an essayist, whose main concern is with exposition and excellence of style. Such an author, with thesaurus in hand, chooses the names of variables carefully and explains what each variable means. He or she strives for a program that is comprehensible because its concepts have been introduced in an order that is best for human understanding, using a mixture of formal and informal methods that reinforce each other.

As a leader who has been a beneficiary of excellent code readability and maintainability, it is my responsibility to coach my team to follow the same practice of Literate Programming.

Literate Programming has her perfect fit in Jupyter Notebooks

Those above are for engineers. But how about the manager or leader to leads the team? How would we boost a proactive mindset among the team where each one of them has the consciousness?

To be continued…

Literate Programming
https://leadership.qubitpi.org/posts/literate-programming/
Author
【烬火】胡桃
Published at
2024-08-07
\ No newline at end of file +Literate Programming - Jiaqi's Leadership Blog
218 words
1 minutes
Literate Programming

I was studying Jupyter Documentation and stumbled upon this article which introduced to me the first time Literate Programming.

I read about it and ended up couldn’t agree with it more. Literate Programming significantly improves documentation of programs for human by concentrating on explaining to human beings what we want a computer to do.

The practitioner of literate programming can be regarded as an essayist, whose main concern is with exposition and excellence of style. Such an author, with thesaurus in hand, chooses the names of variables carefully and explains what each variable means. He or she strives for a program that is comprehensible because its concepts have been introduced in an order that is best for human understanding, using a mixture of formal and informal methods that reinforce each other.

As a leader who has been a beneficiary of excellent code readability and maintainability, it is my responsibility to coach my team to follow the same practice of Literate Programming.

Literate Programming has her perfect fit in Jupyter Notebooks

Those above are for engineers. But how about the manager or leader to leads the team? How would we boost a proactive mindset among the team where each one of them has the consciousness?

To be continued…

Literate Programming
https://leadership.qubitpi.org/posts/literate-programming/
Author
【烬火】胡桃
Published at
2024-08-07
\ No newline at end of file diff --git a/posts/managing-tech-assets-common-lib-or-not/index.html b/posts/managing-tech-assets-common-lib-or-not/index.html index 68a2baac9..99cbbfd2f 100644 --- a/posts/managing-tech-assets-common-lib-or-not/index.html +++ b/posts/managing-tech-assets-common-lib-or-not/index.html @@ -1 +1 @@ -Managing Tech Assets - Is a Common Library a Good Idea? No - Jiaqi's Leadership Blog
1673 words
8 minutes
Managing Tech Assets - Is a Common Library a Good Idea? No

A Story - A Person Created a Common Library and Then…#

“Embarrassingly I introduced a “common” library, named as such, in a team environment a couple of decades back. I didn’t really understand the dynamics back then of what could happen in a loosely-coordinated team setting in just a matter of months.

When I introduced it I thought I made it clear and also documented that it’s for things we’d all agree we find useful on a daily basis, that it’s intended to be a minimalist library, and that the library should depend on nothing else besides the standard library so that it’s as easy to deploy as possible in new projects. My thinking at the time was that it was our own little extension to the standard library for things that, in our particular domain, we found useful on a daily basis.

And it started off well enough. We started off with a math library (common/math*) of routines which we all used on a daily basis, since we were working on computer graphics which was often heavy on the linear algebra. And since we were often interoping with C code, we agreed on some useful utility functions like find_index which, unlike std::find in C++, would return an index to an element found in a sequence instead of an iterator which mimicked how our C functions worked — things of this sort — a little bit eclectic but minimalist and widely used enough to remain familiar and practical to everyone, and instant familiarity is an extremely important criteria as I see it in trying to make anything that is “common” or “standard” since if it truly is “common”, it should have that familiar quality about it as a result of its wide adoption and daily usage.

But over time the design intentions of the library slipped out of my fingers as people started to add things they used personally that they merely thought might be of use to someone else, only to find no one else using it. And later someone started adding functions that depended on OpenGL for common GL-related routines. Further on we adopted Qt and people started adding code that depended on Qt, so already the common library was dependent on two external libraries. At some point someone added common shader routines which was dependent on our application-specific shader library, and at that point you couldn’t even deploy it in a new project without bringing in Qt, OGL, and our application-specific shader library and writing a non-trivial build script for your project. So it turned into this eclectic, interdependent mess. Later on people even added GUI-dependent code to it.

But I’ve also found by debating what should and shouldn’t go into this library that what is considered “common” can easily turn into a very subjective idea if you don’t set a very hard line rule that what’s “common” is what everyone tends to find useful on a daily basis. Any loosening of the standards and it quickly degrades from things everyone finds useful on a daily basis to something a single developer finds useful that might have the possibility of being beneficial to someone else, and at that point the library degrades into an eclectic mess really fast.

But furthermore when you reach that point, some developers can start adding things for the simple reason that they don’t like the programming language. They might not like the syntax of a for loop or a function call, at which point the library is starting to get filled with things that’s just fighting the fundamental syntax of the language, replacing a couple of lines of straightforward code which isn’t really duplicating any logic down to a single terse line of exotic code only familiar to the developer who introduced such a shorthand. Then such a developer might start adding more functionality to the common library implemented using such shorthands, at which point significant sections of the common library become interwoven with these exotic shorthands which might seem beautiful and intuitive to the developer who introduced it but ugly and foreign and hard to understand for everyone else. And at that point I think you know that any hope of making something truly “common” is lost, since “common” and “unfamiliar” are polar opposite ideas.

So there’s all kinds of cans of worms there, at least in a loosely-coordinated team environment, with a library with ambitions as broad and as generalized as just “commonly-used stuff”. And while the underlying problem might have been the loose coordination above all else, at least multiple libraries intended to serve a more singular purpose, like a library intended to provide math routines and nothing else, probably wouldn’t degrade as significantly in terms of its design purity and dependencies as a “common” library. So in retrospect I think it would be much better to err on the side of libraries which have much more clear design intentions. I’ve also found over the years that narrow in purpose and narrow in applicability are radically different ideas. Often the most widely applicable things are the narrowest and most singular in purpose, since you can then say, “aha, this is exactly what I need”, as opposed to wading through an eclectic library of disparate functionality trying to see if it has something you need.

Also I’m admittedly at least a little bit impractical and care maybe a bit too much about aesthetics, but the way I tend to perceive my idea of a library’s quality (and maybe even “beauty”) is judged more by its weakest link than its strongest, in a similar way that if you presented me the most appetitizing food in the world but, on the same plate, put something rotting on there that smells really bad, I tend to want to reject the entire plate. And if you’re like me in that regard and make something that invites all sorts of additions as something called “common”, you might find yourself looking at that analogical plate with something rotting on the side. So likewise I think it’s good if a library is organized and named and documented in a way such that it doesn’t invite more and more and more additions over time. And that can even apply to your personal creations, since I’ve certainly created some rotten stuff here and there, and it “taints” a lot less if it’s not being added to the biggest plate. Separating things out into small, very singular libraries has a tendency to better decouple code as well, if only by the sheer virtue that it becomes far less convenient to start coupling everything.

TIP

Code deduplication has been hammered into me over the years but I feel like I should try it this time around.

What I might suggest in your case is to start to take it easy on code deduplication. I’m not saying to copy and paste big snippets of poorly-tested, error-prone code around or anything of this sort, or duplicating huge amounts of non-trivial code that has a decent probability of requiring changes in the future.

But especially if you are of the mindset to create a “common” library, for which I assume your desire is to create something widely-applicable, highly reusable, and perhaps ideally something you find just as useful today as you do a decade from now, then sometimes you might even need or want some duplication to achieve this elusive quality. Because the duplication might actually serve as a decoupling mechanism. It’s like if you want to separate a video player from an MP3 player, then you at least have to duplicate some things like batteries and hard drives. They can’t share these things or else they’re indivisibly coupled and cannot be used independently of each other, and at that point people might not be interested in the device anymore if all they want to do is play MP3s. But some time after you split these two devices apart, you might find that the MP3 player can benefit from a different battery design or smaller hard drive than the video player, at which point you’re no longer duplicating anything; what initially started out as duplication to allow this interdependent device to split into two separate, independent devices might later turn out to yield designs and implementations that are no longer redundant at all.

It’s worth considering things from the perspective of the one using a library. Would you actually want to use a library that minimizes code duplication? Chances are that you won’t because one that does will naturally depend on other libraries. And those other libraries might depend on other libraries to avoid duplicating their code, and so on, until you might need to import/link 50 different libraries to just to get some basic functionality like loading and playing an audio file, and that becomes very unwieldy. Meanwhile if such an audio library deliberately chose to duplicate some things here and there to achieve its independence, it becomes so much easier to use in new projects, and chances are that it won’t need to be updated nearly as often since it won’t need to change as a result of one its dependent external libraries changing which might be trying to fulfill a much more generalized purpose than what the audio library needs.

So sometimes it’s worth deliberately choosing to duplicate a little bit (consciously, never out of laziness — actually out of diligence) in order to decouple a library and make it independent because, through that independence, it achieves a wider range of practical applicability and even stability (no more afferent couplings). If you want to design the most reusable libraries possible that will last you from one project to the next and over the years, then on top of narrowing its scope to the minimum, I would actually suggest considering duplicating a little bit here. And naturally write unit tests and make sure it’s really thoroughly tested and reliable at what it’s doing. This is only for the libraries that you really want to take the time to generalize to a point that goes far beyond a single project.”

Managing Tech Assets - Is a Common Library a Good Idea? No
https://leadership.qubitpi.org/posts/managing-tech-assets-common-lib-or-not/
Author
【烬火】胡桃
Published at
2024-07-17
\ No newline at end of file +Managing Tech Assets - Is a Common Library a Good Idea? No - Jiaqi's Leadership Blog
1673 words
8 minutes
Managing Tech Assets - Is a Common Library a Good Idea? No

A Story - A Person Created a Common Library and Then…#

“Embarrassingly I introduced a “common” library, named as such, in a team environment a couple of decades back. I didn’t really understand the dynamics back then of what could happen in a loosely-coordinated team setting in just a matter of months.

When I introduced it I thought I made it clear and also documented that it’s for things we’d all agree we find useful on a daily basis, that it’s intended to be a minimalist library, and that the library should depend on nothing else besides the standard library so that it’s as easy to deploy as possible in new projects. My thinking at the time was that it was our own little extension to the standard library for things that, in our particular domain, we found useful on a daily basis.

And it started off well enough. We started off with a math library (common/math*) of routines which we all used on a daily basis, since we were working on computer graphics which was often heavy on the linear algebra. And since we were often interoping with C code, we agreed on some useful utility functions like find_index which, unlike std::find in C++, would return an index to an element found in a sequence instead of an iterator which mimicked how our C functions worked — things of this sort — a little bit eclectic but minimalist and widely used enough to remain familiar and practical to everyone, and instant familiarity is an extremely important criteria as I see it in trying to make anything that is “common” or “standard” since if it truly is “common”, it should have that familiar quality about it as a result of its wide adoption and daily usage.

But over time the design intentions of the library slipped out of my fingers as people started to add things they used personally that they merely thought might be of use to someone else, only to find no one else using it. And later someone started adding functions that depended on OpenGL for common GL-related routines. Further on we adopted Qt and people started adding code that depended on Qt, so already the common library was dependent on two external libraries. At some point someone added common shader routines which was dependent on our application-specific shader library, and at that point you couldn’t even deploy it in a new project without bringing in Qt, OGL, and our application-specific shader library and writing a non-trivial build script for your project. So it turned into this eclectic, interdependent mess. Later on people even added GUI-dependent code to it.

But I’ve also found by debating what should and shouldn’t go into this library that what is considered “common” can easily turn into a very subjective idea if you don’t set a very hard line rule that what’s “common” is what everyone tends to find useful on a daily basis. Any loosening of the standards and it quickly degrades from things everyone finds useful on a daily basis to something a single developer finds useful that might have the possibility of being beneficial to someone else, and at that point the library degrades into an eclectic mess really fast.

But furthermore when you reach that point, some developers can start adding things for the simple reason that they don’t like the programming language. They might not like the syntax of a for loop or a function call, at which point the library is starting to get filled with things that’s just fighting the fundamental syntax of the language, replacing a couple of lines of straightforward code which isn’t really duplicating any logic down to a single terse line of exotic code only familiar to the developer who introduced such a shorthand. Then such a developer might start adding more functionality to the common library implemented using such shorthands, at which point significant sections of the common library become interwoven with these exotic shorthands which might seem beautiful and intuitive to the developer who introduced it but ugly and foreign and hard to understand for everyone else. And at that point I think you know that any hope of making something truly “common” is lost, since “common” and “unfamiliar” are polar opposite ideas.

So there’s all kinds of cans of worms there, at least in a loosely-coordinated team environment, with a library with ambitions as broad and as generalized as just “commonly-used stuff”. And while the underlying problem might have been the loose coordination above all else, at least multiple libraries intended to serve a more singular purpose, like a library intended to provide math routines and nothing else, probably wouldn’t degrade as significantly in terms of its design purity and dependencies as a “common” library. So in retrospect I think it would be much better to err on the side of libraries which have much more clear design intentions. I’ve also found over the years that narrow in purpose and narrow in applicability are radically different ideas. Often the most widely applicable things are the narrowest and most singular in purpose, since you can then say, “aha, this is exactly what I need”, as opposed to wading through an eclectic library of disparate functionality trying to see if it has something you need.

Also I’m admittedly at least a little bit impractical and care maybe a bit too much about aesthetics, but the way I tend to perceive my idea of a library’s quality (and maybe even “beauty”) is judged more by its weakest link than its strongest, in a similar way that if you presented me the most appetitizing food in the world but, on the same plate, put something rotting on there that smells really bad, I tend to want to reject the entire plate. And if you’re like me in that regard and make something that invites all sorts of additions as something called “common”, you might find yourself looking at that analogical plate with something rotting on the side. So likewise I think it’s good if a library is organized and named and documented in a way such that it doesn’t invite more and more and more additions over time. And that can even apply to your personal creations, since I’ve certainly created some rotten stuff here and there, and it “taints” a lot less if it’s not being added to the biggest plate. Separating things out into small, very singular libraries has a tendency to better decouple code as well, if only by the sheer virtue that it becomes far less convenient to start coupling everything.

TIP

Code deduplication has been hammered into me over the years but I feel like I should try it this time around.

What I might suggest in your case is to start to take it easy on code deduplication. I’m not saying to copy and paste big snippets of poorly-tested, error-prone code around or anything of this sort, or duplicating huge amounts of non-trivial code that has a decent probability of requiring changes in the future.

But especially if you are of the mindset to create a “common” library, for which I assume your desire is to create something widely-applicable, highly reusable, and perhaps ideally something you find just as useful today as you do a decade from now, then sometimes you might even need or want some duplication to achieve this elusive quality. Because the duplication might actually serve as a decoupling mechanism. It’s like if you want to separate a video player from an MP3 player, then you at least have to duplicate some things like batteries and hard drives. They can’t share these things or else they’re indivisibly coupled and cannot be used independently of each other, and at that point people might not be interested in the device anymore if all they want to do is play MP3s. But some time after you split these two devices apart, you might find that the MP3 player can benefit from a different battery design or smaller hard drive than the video player, at which point you’re no longer duplicating anything; what initially started out as duplication to allow this interdependent device to split into two separate, independent devices might later turn out to yield designs and implementations that are no longer redundant at all.

It’s worth considering things from the perspective of the one using a library. Would you actually want to use a library that minimizes code duplication? Chances are that you won’t because one that does will naturally depend on other libraries. And those other libraries might depend on other libraries to avoid duplicating their code, and so on, until you might need to import/link 50 different libraries to just to get some basic functionality like loading and playing an audio file, and that becomes very unwieldy. Meanwhile if such an audio library deliberately chose to duplicate some things here and there to achieve its independence, it becomes so much easier to use in new projects, and chances are that it won’t need to be updated nearly as often since it won’t need to change as a result of one its dependent external libraries changing which might be trying to fulfill a much more generalized purpose than what the audio library needs.

So sometimes it’s worth deliberately choosing to duplicate a little bit (consciously, never out of laziness — actually out of diligence) in order to decouple a library and make it independent because, through that independence, it achieves a wider range of practical applicability and even stability (no more afferent couplings). If you want to design the most reusable libraries possible that will last you from one project to the next and over the years, then on top of narrowing its scope to the minimum, I would actually suggest considering duplicating a little bit here. And naturally write unit tests and make sure it’s really thoroughly tested and reliable at what it’s doing. This is only for the libraries that you really want to take the time to generalize to a point that goes far beyond a single project.”

Managing Tech Assets - Is a Common Library a Good Idea? No
https://leadership.qubitpi.org/posts/managing-tech-assets-common-lib-or-not/
Author
【烬火】胡桃
Published at
2024-07-17
\ No newline at end of file diff --git a/posts/oliver-twist/index.html b/posts/oliver-twist/index.html index 86e362c47..ac7fb5e6a 100644 --- a/posts/oliver-twist/index.html +++ b/posts/oliver-twist/index.html @@ -1 +1 @@ -Oliver Twist - Jiaqi's Leadership Blog
449 words
2 minutes
Oliver Twist

The Movie#

Major Themes and Symbols#

In Oliver Twist, Dickens mixes grim realism with merciless satire to describe the effects of industrialism on 19th-century England and to criticise the harsh new Poor Laws. Oliver, an innocent child, is trapped in a world where his only options seem to be the workhouse, a life of crime symbolised by Fagin’s gang, a prison, or an early grave. From this unpromising industrial/institutional setting, however, a fairy tale also emerges. In the midst of corruption and degradation, the essentially passive Oliver remains pure-hearted; he steers away from evil when those around him give in to it, and in proper fairy-tale fashion, he eventually receives his reward - leaving for a peaceful life in the country, surrounded by kind friends. On the way to this happy ending, Dickens explores the kind of life an outcast, orphan boy could expect to lead in 1830s London

Nancy, by contrast, redeems herself at the cost of her own life and dies in a prayerful pose. She is one of the few characters in Oliver Twist to display much ambivalence. Her storyline in the novel strongly reflects themes of domestic violence and psychological abuse at the hands of Bill. Although Nancy is a full-fledged criminal, indoctrinated and trained by Fagin since childhood, she retains enough empathy to repent her role in Oliver’s kidnapping, and to take steps to try to atone. As one of Fagin’s victims, corrupted but not yet morally dead, she gives eloquent voice to the horrors of the old man’s little criminal empire. She wants to save Oliver from a similar fate; at the same time, she recoils from the idea of turning traitor, especially to Bill Sikes, whom she loves. When Dickens was later criticised for giving to a “thieving, whoring slut of the streets” such an unaccountable reversal of character, he ascribed her change of heart to “the last fair drop of water at the bottom of a dried-up, weed-choked well”.

Leadership is, at root, about Influencing Others#

At the end of the day, the movie symbolizes the Golden Rule

When dealing with the huge pressure of meeting deadlines or attaining shareholder profitability targets, in most cases, the Golden Rule tends to be forgotten by employers. In this respect, business leaders need to stop putting corporate priorities and greed above the needs of employees. I am not arguing for an end of profit, but to prevent businesses from profiting from employee harm and potential exploitation. Profits should be a product of an organisation’s purpose, but not the purpose of the organisation.

“Great leaders are willing to sacrifice the numbers to save the people” (Simon Sinek)

Oliver Twist
https://leadership.qubitpi.org/posts/oliver-twist/
Author
【烬火】胡桃
Published at
2024-07-25
\ No newline at end of file +Oliver Twist - Jiaqi's Leadership Blog
449 words
2 minutes
Oliver Twist

The Movie#

Major Themes and Symbols#

In Oliver Twist, Dickens mixes grim realism with merciless satire to describe the effects of industrialism on 19th-century England and to criticise the harsh new Poor Laws. Oliver, an innocent child, is trapped in a world where his only options seem to be the workhouse, a life of crime symbolised by Fagin’s gang, a prison, or an early grave. From this unpromising industrial/institutional setting, however, a fairy tale also emerges. In the midst of corruption and degradation, the essentially passive Oliver remains pure-hearted; he steers away from evil when those around him give in to it, and in proper fairy-tale fashion, he eventually receives his reward - leaving for a peaceful life in the country, surrounded by kind friends. On the way to this happy ending, Dickens explores the kind of life an outcast, orphan boy could expect to lead in 1830s London

Nancy, by contrast, redeems herself at the cost of her own life and dies in a prayerful pose. She is one of the few characters in Oliver Twist to display much ambivalence. Her storyline in the novel strongly reflects themes of domestic violence and psychological abuse at the hands of Bill. Although Nancy is a full-fledged criminal, indoctrinated and trained by Fagin since childhood, she retains enough empathy to repent her role in Oliver’s kidnapping, and to take steps to try to atone. As one of Fagin’s victims, corrupted but not yet morally dead, she gives eloquent voice to the horrors of the old man’s little criminal empire. She wants to save Oliver from a similar fate; at the same time, she recoils from the idea of turning traitor, especially to Bill Sikes, whom she loves. When Dickens was later criticised for giving to a “thieving, whoring slut of the streets” such an unaccountable reversal of character, he ascribed her change of heart to “the last fair drop of water at the bottom of a dried-up, weed-choked well”.

Leadership is, at root, about Influencing Others#

At the end of the day, the movie symbolizes the Golden Rule

When dealing with the huge pressure of meeting deadlines or attaining shareholder profitability targets, in most cases, the Golden Rule tends to be forgotten by employers. In this respect, business leaders need to stop putting corporate priorities and greed above the needs of employees. I am not arguing for an end of profit, but to prevent businesses from profiting from employee harm and potential exploitation. Profits should be a product of an organisation’s purpose, but not the purpose of the organisation.

“Great leaders are willing to sacrifice the numbers to save the people” (Simon Sinek)

Oliver Twist
https://leadership.qubitpi.org/posts/oliver-twist/
Author
【烬火】胡桃
Published at
2024-07-25
\ No newline at end of file diff --git a/posts/pro-lege-manilia/index.html b/posts/pro-lege-manilia/index.html index 026f63d8b..b6528d79a 100644 --- a/posts/pro-lege-manilia/index.html +++ b/posts/pro-lege-manilia/index.html @@ -1 +1 @@ -Pro Lege Manilia - Jiaqi's Leadership Blog
6579 words
33 minutes
Pro Lege Manilia

Quamquam mihi semper frequens conspectus vester multo iucundissimus, hic autem locus ad agendum amplissimus, ad dicendum ornatissimus est visus, Quirites, tamen hoc aditu laudis, qui semper optimo cuique maxime patuit, non mea me voluntas adhuc, sed vitae meae rationes ab ineunte aetate susceptae prohibuerunt. Nam cum antea per aetatem nondum huius auctoritatem loci attingere auderem, statueremque nihil huc nisi perfectum ingenio, elaboratum industria adferri oportere, omne meum tempus amicorum temporibus transmittendum putavi.

Ita neque hic locus vacuus umquam fuit ab eis qui vestram causam defenderent, et meus labor, in privatorum periculis caste integreque versatus, ex vestro iudicio fructum est amplissimum consecutus. Nam cum propter dilationem comitiorum ter praetor primus centuriis cunctis renuntiatus sum, facile intellexi, Quirites, et quid de me iudicaretis, et quid aliis praescriberetis. Nunc cum et auctoritatis in me tantum sit, quantum vos honoribus mandandis esse voluistis, et ad agendum facultatis tantum, quantum homini vigilanti ex forensi usu prope cotidiana dicendi exercitatio potuit adferre, certe et si quid auctoritatis in me est, apud eos utar qui eam mihi dederunt, et si quid in dicendo consequi possum, eis ostendam potissimum, qui ei quoque rei fructum suo iudicio tribuendum esse duxerunt.

Atque illud in primis mihi laetandum iure esse video, quod in hac insolita mihi ex hoc loco ratione dicendi causa talis oblata est, in qua oratio deesse nemini possit. Dicendum est enim de Cn. Pompei singulari eximiaque virtute: huius autem orationis difficilius est exitum quam principium invenire. Ita mihi non tam copia quam modus in dicendo quaerendus est.

Atque,—ut inde oratio mea proficiscatur, unde haec omnis causa ducitur,—bellum grave et periculosum vestris vectigalibus ac sociis a duobus potentissimis regibus infertur, Mithridate et Tigrane, quorum alter relictus, alter lacessitus, occasionem sibi ad occupandam Asiam oblatam esse arbitrantur. Equitibus Romanis, honestissimis viris, adferuntur ex Asia cotidie litterae, quorum magnae res aguntur in vestris vectigalibus exercendis occupatae: qui ad me, pro necessitudine quae mihi est cum illo ordine, causam rei publicae periculaque rerum suarum detulerunt:

Bithyniae, quae nunc vestra provincia est, vicos exustos esse compluris; regnum Ariobarzanis, quod finitimum est vestris vectigalibus, totum esse in hostium potestate; L. Lucullum, magnis rebus gestis, ab eo bello discedere; huic qui successerit non satis esse paratum ad tantum bellum administrandum; unum ab omnibus sociis et civibus ad id bellum imperatorem deposci atque expeti, eundem hunc unum ab hostibus metui, praeterea neminem.

Causa quae sit videtis: nunc quid agendum sit considerate. Primum mihi videtur de genere belli, deinde de magnitudine, tum de imperatore deligendo esse dicendum. Genus est belli eius modi, quod maxime vestros animos excitare atque inflammare ad persequendi studium debeat: in quo agitur populi Romani gloria, quae vobis a maioribus cum magna in omnibus rebus tum summa in re militari tradita est; agitur salus sociorum atque amicorum, pro qua multa maiores vestri magna et gravia bella gesserunt; aguntur certissma populi Romani vectigalia et maxima, quibus amissis et pacis ornamenta et subsidia belli requiretis; aguntur bona multorum civium, quibus est a vobis et ipsorum et rei publicae causa consulendum.

Et quoniam semper appetentes gloriae praeter ceteras gentis atque avidi laudis fuistis, delenda est vobis ill macula Mithridatico bello superiore concepta, quae penitus iam insedit ac nimis inveteravit in populi Romani nomine,—quod is, qui uno die, tota in Asia, tot in civitatibus, uno nuntio atque una significatione [litterarum] civis Romanos necandos trucidandosque denotavit, non modo adhuc poenam nullam suo dignam scelere suscepit, sed ab illo tempore annum iam tertium et vicesimum regnat, et ita regnat, ut se non Ponti neque Cappadociae latebris occultare velit, sed emergere ex patrio regno atque in vestris vectigalibus, hoc est, in Asiae luce versari.

Etenim adhuc ita nostri cum illo rege contenderunt imperatores, ut ab illo insignia victoriae, non victoriam reportarent. Triumphavit L. Sulla, triumphavit L. Murena de Mithridate, duo fortissimi viri et summi imperatores; sed ita triumpharunt, ut ille pulsus superatusque regnaret. Verum tamen illis imperatoribus laus est tribuenda quod egerunt, venia dandaquod reliquerunt, propterea quod ab eo bello Sullam in Italiam res publica, Murenam Sulla revocavit.

Mithridates autem omne reliquum tempus non ad oblivionem veteris belli, sed ad comparationem novi contulit: qui [postea] cum maximas aedificasset ornassetque classis exercitusque permagnos quibuscumque ex gentibus potuisset comparasset, et se Bosporanis finitimis suis bellum inferre similaret, usque in Hispaniam legatos ac litteras misit ad eos duces quibuscum tum bellum gerebamus, ut, cum duobus in locis disiunctissimis maximeque diversis uno consilio a binis hostium copiis bellum terra marique gereretur, vos ancipiti contentione districti de imperio dimicaretis.

Sed tamen alterius partis periculum, Sertorianae atque Hispaniensis, quae multo plus firmamenti ac roboris habebat, Cn. Pompei divino consilio ac singulari virtute depulsum est; in altera parte ita res a L. Lucullo summo viro est administrata, ut initia illa rerum gestarum magna atque praeclara non felicitati eius, sed virtuti, haec autem extrema, quae nuper acciderunt, non culpae, sed fortunae tribuenda esse videantur. Sed de Lucullo dicam alio loco, et ita dicam, Quirites, ut neque vera laus ei detracta oratione mea neque falsa adficta esse videatur:

de vestri imperi dignitate atque gloria—quoniam is est exorsus orationis meae— videte quem vobis animum suscipiendum putetis. Maiores nostri saepe mercatoribus aut naviculariis nostris iniuriosius tractatis bella gesserunt: vos, tot milibus civium Romanorum uno nuntio atque uno tempore necatis, quo tandem animo esse debetis? Legati quod erant appellati superbius, Corinthum patres vestri totius Graeciae lumen exstinctum esse voluerunt: vos eum regem inultum esse patiemini, qui legatum populi Romani consularem vinculis ac verberibus atque omni supplicio excruciatum necavit? Illi libertatem imminutam civium Romanorum non tulerunt: vos ereptam vitam neglegetis? ius legationis verbo violatum illi persecuti sunt: vos legatum omni supplicio interfectum relinquetis?

Videte ne, ut illis pulcherrimum fuit tantam vobis imperi gloriam tradere, sic vobis turpissimum sit, id quod accepistis tueri et conservare non posse. Quid? quod salus sociorum summum in periculum ac discrimen vocatur, quo tandem animo ferre debetis? Regno est expulsus Ariobarzanes rex, socius populi Romani atque amicus; imminent duo reges toti Asiae non solum vobis inimicissimi, sed etiam vestris sociis atque amicis; civitates autem omnes cuncta Asia atque Graecia vestrum auxilium exspectare propter periculi magnitudinem coguntur; imperatorem a vobis certum deposcere, cum praesertim vos alium miseritis, neque audent, neque se id facere sine summo periculo posse arbitrantur.

Vident et sentiunt hoc idem quod vos,—unum virum esse, in quo summa sint omnia, et eum propter esse, quo etiam carent aegrius; cuius adventus ipso atque nomine, tametsi ille ad maritimum bellum venerit, tamen impetus hostium repressos esse intellegunt ac retardatos. His vos, quoniam libere loqui non licet, tacite rogant, ut se quoque, sicut ceterarum provinciarum socios, dignos existimetis, quorum salutem tali viro commendetis; atque hoc etiam magis, quod ceteros in provinciam eius modi homines cum imperio mittimus, ut etiam si ab hoste defendant, tamen ipsorum adventus in urbis sociorum non multum ab hostili expugnatione differant. Hunc audiebant antea, nunc praesentem vident, tanta temperantia, tanta mansuetudine, tanta humanitate, ut ei beatissimi esse videantur, apud quod ille diutissime commoratur.

Qua re si propter socios, nulla ipsi iniuria lacessiti, maiores nostri cum Antiocho, cum Philippo, cum Aetolis, cum Poenis bella gesserunt, quanto vos studio convenit iniuriis provocatos sociorum salutem una cum imperi vestri dignitate defendere, praesertim cum de maximis vestris vectigalibus agatur? Nam ceterarum provinciarum vectigalia, Quirites, tanta sunt, ut eis ad ipsas provincias tutandas vix contenti esse possimus: Asia vero tam opima est ac fertilis, ut et ubertate agrorum et varietate fructuum et magnitudine pastionis et multitudine earum rerum quae exportantur, facile omnibus terris antecellat. Itaque haec vobis provincia, Quirites, si et belli utilitatem et pacis dignitatem retinere voltis, non modo a calamitate, sed etiam a metu calamitatis est defenda.

Nam in ceteris rebus cum venit calamitas, tum detrimentum accipitur; at in vectigalibus non solum adventus mali, sed etiam metus ipse adfert calamitatem. Nam cum hostium copiae non longe absunt, etiam si inruptio nulla facta est, tamen pecuaria relinquitur, agri cultura deseritur, mercatorum navigatio conquiescit. Ita neque ex portu neque ex decumis neque ex scriptura vectigal conservari potest: qua re saepe totius anni fructus uno rumore periculi atque uno belli terrore amittitur.

Quo tandem igitur animo esse existimatis aut eos qui vectigalia nobis pensitant, aut eos qui exercent atque exigunt, cum duo reges cum maximis copiis propter adsint? cum una excursio equitatus perbrevi tempore totius anni vectigal auferre possit? cum publicani familias maximas, quas in saltibus habent, quas in agris, quas in portubus atque custodiis, magno periculo se habere arbitrentur? Putatisne vos illis rebus frui posse, nisi eos qui vobis fructui sunt conservaritis non solum (ut ante dixi) calamitate, sed etiam calamitatis formidine liberatos?

Ac ne illud quidem vobis neglegendum est, quod mihi ego extremum proposueram, cum essem de belli genere dicturus, quod ad multorum bona civium Romanorum pertinet, quorum vobis pro vesta sapientia, Quirites, habenda est ratio diligenter. Nam et publicani, homines honestissimi atque ornatissimi, suas rationes et copias in illam provinciam contulerunt, quorum ipsorum per se res et fortunae vobis curae esse debent. Etenim si vectigalia nervos esse rei publicae semper duximus, eum certe ordinem, qui exercet illa, firmamentum ceterorum ordinum recte esse dicemus.

Deinde ex ceteris ordinibus homines gnavi atque industrii partim ipsi in Asia negotiantur, quibus vos absentibus consulere debetis, partim eorum in ea provincia pecunias magnas conlocatas habent. Est igitur humanitatis vestrae magnum numerum eorum civium calamitate prohibere, sapientiae videre multorum civium calamitatem a re publica seiunctam esse non posse. Etenim primum illud parvi refert, vos publicanis amissa vectigalia postea victoria recuperare; neque enim isdem redimendi facultas erit propter calamitatem, neque aliis voluntas propter timorem.

Deinde quod nos eadem Asia atque idem iste Mithridates initio belli Asiatici docuit, id quidem certe calamitate docti memoria retinere debemus. Nam tum, cum in Asia res magnas permulti, amiserant, scimus Romae, solutione impedita, fidem concidisse. Non enim possunt una in civitate multi rem ac fortunas amittere, ut non plures secum in eandem trahant calamitatem. A quo periculo prohibete rem publicam, et mihi credite id quod ipsi videtis: haec fides atque haec ratio pecuniarum, quae Romae, quae in foro versatur, implicata est cum illis pecuniis Asiaticis et cohaeret. Ruere illa non possunt, ut haec non eodem labefacta motu concidant. Qua re videte num dubitandum vobis sit omni studio ad id bellum incumbere, in quo gloria nominis vestri, salus sociorum, vectigalia maxima, fortunae plurimorum civium coniunctae cum re publica defendantur.

Quoniam de genere belli dixi, nunc de magnitudine pauca dicam. Potest hoc enim dici, belli genus esse ita necessarium ut sit gerendum, non esse ita magnum ut sit pertimescendum. In quo maxime elaborandum est, ne forte ea vobis quae diligentissime providenda sunt, contemnenda esse videantur. Atque ut omnes intellegant me L. Lucullo tantum impertire laudis, quantum forti viro et sapienti homini et magno imperatori debeatur, dico eius adventu maximas Mithridati copias omnibus rebus ornatus atque instructas fuisse, urbemque Asiae clarissimam nobisque amicissimam, Cyzicenorum, obsessam esse ab ipso rege maxima multitudine et oppugnatam vehementissime, quam L. Lucullus virtute, adsiduitate, consilio, summis obsidionis periculis liberavit:

ab eodem imperatore classem magnam et ornatam, quae ducibus Sertorianis ad Italiam studio atque odio inflammata raperetur, superatam esse atque depressami magnas hostium praeterea copias multis proeliis esse deletas, patefactumque nostris legionibs esse Pontum, qui antea populo Romano ex omni aditu clausus fuisset; Sinopen atque Amisum, quibus in oppidis erant domicilia regis, omnibus rebus ornatus ac refertas, ceterasque urbis Ponti et Cappadociae permultas, uno aditu adventuque esse captas; regem, spoliatum regno patrio atque avito, ad alios se reges atque ad alias gentis supplicem contulisse; atque haec omnia salvis populi Romani sociis atque integris vectigalibus esse gesta. Satis opinor haec esse laudis, atque ita, Quirites, ut hoc vos intellegatis, a nullo istorum, qui huic obtrectant legi atque causae, L. Lucullum similiter ex hoc loco esse laudatum.

Requiretur fortasse nunc quem ad modum, cum haec ita sint, reliquum possit magnum esse bellum. Cognoscite, Quirites. Non enim hoc sine causa quaeri videtur. Primum ex suo regno sic Mithridates profugit, ut ex eodem Ponto Medea illa quondam profugisse dicitur, quam praedicant in fuga fratris sui membra in eis locis, qua se parens persequeretur, dissipavisse, ut eorum conlectio dispersa, maerorque patrius, celeritatem persequendi retardaret. Sic Mithridates fugiens maximam vim auri atque argenti pulcherrimarumque rerum omnium, quas et a maioribus acceperat et ipse bello superiore ex tota Asia direptas in suum regnum congesserat, in Ponto omnem reliquit. Haec dum nostri conligunt omnia diligentius, rex ipse e manibus effugit. Ita illum in persequendi studio maeror, hos laetitia tardavit.

Hunc in illo timore et fuga Tigranes rex Armenius excepit, diffidentemque rebus suis confirmavit, et adflictum erexit, perditumque recreavit. Cuius in regnum postea quam L. Lucullus cum exercitu venit, plures etiam gentes contra imperatorem nostrum concitatae sunt. Erat enim metus iniectus eis nationibus, quas numquam populus Romanus neque lacessendas bello neque temptandas putavit: erat etiam alia gravis atque vehemens opinio, quae animos gentium barbarum pervaserat, fani locupletissimi et religiosissimi diripiendi causa in eas oras nostrum esse exercitum adductum. Ita nationes multae atque magnae novo quodam terrore ac metu concitabantur. Noster autem exercitus, tametsi urbem ex Tigrani regno ceperat, et proeliis usus erat secundis, tamen nimia longinquitate locorum ac desiderio suorum commovebatur.

Hic iam plura non dicam. Fuit enim illud extremum ut ex eis locis a militibus nostris reditus magis maturus quam processio longior quaereretur. Mithridates autem et suam manum iam confirmarat, [et eorum] qui se ex ipsius regno conlegerant, et magnis adventiciis auxiliis multorum regum et nationum iuvabatur. iam hoc fere sic fieri solere accepimus, ut regem adflictae fortunae facile multorum opes adliciant ad misericordiam, maximeque eorum qui aut reges sunt aut vivunt in regno, ut eis nomen regale magnum et sanctum esse videatur.

Itaque tantum victus efficere potuit, quantum incolumis numquam est ausus optare. Nam cum se in regnum suum recepisset, non fuit eo contentus, quod ei praeter spem acciderat,—ut illam, postea quam pulsus erat, terram umquam attingeret,—sed in exercitum nostrum clarum atque victorem impetum fecit. Sinite hoc loco, Quirites, sicut poetae solent, qui res Romanas scribunt, praeterire me nostram calamitatem, quae tanta fuit, ut eam ad auris [Luculli] imperatoris non ex proelio nuntius, sed ex sermone rumor adferret.

Hic in illo ipso malo gravissimaque belli offensione, L. Lucullus, qui tamen aliqua ex parte eis incommodis mederi fortasse potuisset, vestro iussu coactus,—qui imperi diuturnitati modum statuendum vetere exemplo putavistis,—partem militum, qui iam stipendiis confecti erant, dimisit, partem M’. Glabrioni tradidit. Multa praetereo consulto, sed ea vos coniectura perspicite, quantum illud bellum factum putetis, quod coniungant reges potentissimi, renovent agitatae nationes, suscipiant integrae gentes, novus imperator noster accipiat, vetere exercitu pulso.

Satis mihi multa verba fecisse videor, qua re esset hoc bellum genere ipso necessarium, magnitudine periculosum. Restat ut de imperatore ad id bellum delingendo ac tantis rebus praeficiendo dicendum esse videatur. Utinam, Quirites, virorum fortium atque innocentium copiam tantam haberetis, ut haec vobis deliberatio difficilis esset, quemnam potissimum tantis rebus ac tanto bello praeficiendum putaretis! Nunc vero—cum sit unus Cn. Pompeius, qui non modo eorum hominum qui nunc sunt gloriam, sed etiam antiquitatis memoriam virtute superarit—quae res est quae cuiusquam animum in hac causa dubium facere possit?

Ego enim sic existimo, in summo imperatore quattuor has res inesse oportere,—scientiam rei militaris, virtutem, auctoritatem, felicitatem. Quis igitur hoc homine scientior umquam aut fuit aut esse debuit? qui e ludo atque e pueritiae disciplinis bello maximo atque acerrimis hostibus ad patris exercitum atque in militiae disciplinam profectus est; qui extrema pueritia miles in exercitu fuit simmi imperatoris, ineunte adulescentia maximi ipse exercitus imperator; qui saepius cum hoste conflixit quam quisquam cum inimice concertavit, plura bello gessit quam ceteri legerunt, plures provincias confecit quam alii concupiverunt; cuius adulescentia ad scientiam rei militaris non alienis praeceptis sed suis imperiis, non offensionibus belli sed victoriis, non stipendiis sed triumphis est erudita. Quod denique genus esse belli potest, in quo illum non exercuerit fortuna rei publicae? Civile, Africanum, Transalpinum, Hispaniense [mixtum ex civitatibus atque ex bellicosissimis nationibus], servile, navale bellum, varia et diversa genera et bellorum et hostium, non solum gesta ab hoc uno, sed etiam confecta, nullam rem esse declarant in usu positam militari, quae huius viri scientiam fugere possit.

iam vero virtuti Cn. Pompei quae potest oratio par inveniri? Quid est quod quisquam aut illo dignum aut vobis novum aut cuiquam inauditum possit adferre? Neque enim illae sunt solae virtutes imperatoriae, quae volgo existimantur,—labor in negotiis, fortitudo in periculis, industria in agendo, celeritas in conficiendo, consilium in providiendo: quae tanta sunt in hoc uno, quanta in omnibus reliquis imperatoribus, quos aut vidimus aut audivimus, non fuerunt.

Testis est Italia, quam ille ipse victor L. Sulla huius virtute et subsidio confessus est liberata. Testis est Sicilia, quam multis undique cinctam periculis non terrore belli, sed consili celeritate explicavit. Testis est Africa, quae, magnis oppressa hostium copiis, eorum ipsorum sanguine redundavit. Testis est Gallia, per quam legionibus nostris iter in Hispaniam Gallorum internecione patefactum est. Testis est Hispania, quae saepissime plurimos hostis ab hoc superatos prostratosque conspexit. Testis est iterum et saepius Italia, quae cum servili bello taetro periculosoque premeretur, ab hoc auxilium absente expetivit: quod bellum exspectatione eius attentuatum atque imminutum est, adventu sublatum ac sepultum.

Testes nunc vero iam omnes orae atque omnes exterae gentes ac nationes, denique maria omnia cum universa, tum in singulis oris omnes sinus at portus. Quis enim toto mari locus per hos annos aut tam firmum habuit praesidium ut tutus esset, aut tam fuit abditus ut lateret? Quis navigavit qui non se aut mortis aut servitutis periculo committeret, cum aut hieme aut referto praedonum mari navigaret? Hoc tantum belum, tam turpe, tam vetus, tam late divisum atque dispersum, quis umquam arbitraretur aut ab omnibus imperatoribus uno anno aut omnibus annis ab uno imperatore confici posse?

Quam provinciam tenuistis a praedonibus liberam per hosce annos? quod vectigal vobis tutum fuit? quem socium defendistis? cui praesidio classibus vestris fuistis? quam multas existimatis insulas esse desertas? quam multas aut metu relictas aut a praedonibus captas urbis esse sociorum? Sed quid ego longinqua commemoro? Fuit hoc quondam, fuit proprium populi Romani, longe a domo bellare, et propugnaculis imperi sociorum fortunas, non sua tecta defendere. Sociis ego nostris mare per hos annos clausum fuisse dicam, cum exercitus vestri numquam a Brundisio nisi hieme summa transmiserint? Qui ad vos ab exteris nationibus venirent captos querar, cum legati populi Romani redempti sint? Mercatoribus tutum mare non fuisse dicam, cum duodecim secures in praedonum potestatem pervenerint?

Cnidum aut Colophonem aut Samum, nobilissimas urbis, innumerabilisque alias captas esse commemorem, cum vestros portus, atque eos portus quibus vitam ac spiritum ducitis, in praedonum fuisse potestatem sciatis? An vero ignoratis portum Caietae celeberrimum ac plenissimum navium inspectante praetore a praedonibus esse direptum? ex Miseno autem eius ipsius liberos, qui cum praedonibus antea ibi bellum gesserat, a praedonibus esse sublatos? Nam quid ego Ostiense incommodum atque illam labem atque ignominiam rei publicae querar, cum, prope inspectantibus vobis, classis ea, cui consul populi Romani praepositus esset, a praedonibus capta atque oppressa est? Pro di immortales! tantamne unius hominis incredibilis ac divina virtus tam brevi tempore lucem adferre rei publicae potuit, ut vos, qui modo anti ostium Tiberinum classem hostium videbatis, ei nunc nullam intra Oceani ostium praedonum navem esse audiatis?

Atque haec qua celeritate gesta sint quamquam videtis, tamen a me in dicendo praetereunda non sunt. Quis enim umquam aut obeundi negoti aut consequendi quaestus studio tam brevi tempore tot loca adire, tantos cursus conficere potuit, quam celeriter Cn. Pompeio duce tanti belli impetus navigavit? Qui nondum tempestivo ad navigandum mari Siciliam adiit, Africam exploravit; inde Sardiniam cum classe venit, atque haec tria frumentaria subsidia rei publicae firmissimis praesidiis classibusque munivit;

inde cum se in Italiam recepisset, duabus Hispanis et Gallia [transalpina] praesidiis ac navibus confirmata, missis item in oram Illyrici maris et in Achaiam omnemque Graeciam navibus, Italiae duo maria maximis classibus firmissimisque praesidiis adornavit; ipse autem ut Brundisio profectus est, undequinquagesimo die totam ad imperium populi Romani Ciliciam adiunxit; omnes, qui ubique praedones fuerunt, partim capti interfectique sunt, partim unius huius se imperio ac potestati dediderunt. Idem Cretensibus, cum ad eum usque in Pamphyliam legatos deprecatoresque misissent, spem deditionis non ademit, obsidesque imperavit. Ita tantum bellum, tam diuturunum, tam longe lateque dispersum, quo bello omnes gentes ac nationes premebantur, Cn. Pompeius extrema hieme apparavit, ineunte vere susceptit, media aestate confecit.

Est haec divina atque incredibilis virtus imperatoris. Quid ceterae, quas paulo ante commemorare coeperam, quantae atque quam multae sunt? Non enim bellandi virtus solum in summo ac perfecto imperatore quaerenda est, sed multae sunt artes eximiae huius administrae comitesque virtutis. Ac primum, quanta innocentia debent esse imperatores? quanta deinde in omnibus rebus temperantia? quanta fide? quanta facilitate? quanto ingenio? quanta humanitate? Quae breviter qualia sint in Cn. Pompeio consideremus: summa enim omnia sunt, Quirites, sed ea magis ex aliorum contentione quam ipsa per sese cognosci atque intellegi possunt.

Quem enim imperatorem possumus ullo in numero putare, cuius in exercitu centuriatus veneant atque venierint? Quid hunc hominem magnum aut amplum de re publica cogitare, qui pecuniam, ex aerario depromptam ad bellum administrandum, aut propter cupiditatem provinciae magistratibus diviserit, aut propter avaritiam Romae in quaestu reliquerit? Vestra admurmuratio facit, Quirites, ut agnoscere videamini qui haec fecerint: ego autem nomino neminem; qua re irasci mihi nemo poterit, nisi qui ante de se voluerit confiteri. Itaque propter hanc avaritiam imperatorum quantas calamitates, quocumque ventum est, nostri exercitus ferant quis ignorat?

Itinera quae per hosce annos in Italia per agros atque oppida civium Romanorum nostri imperatores fecerint recordamini: tum facilius statuetis quid apud exteras nationes fieri existimetis. Utrum pluris arbitramini per hosce annos militum vestrorum armis hostium urbis, an hibernis sociorum civitates esse deletas? Neque enim potest exercitum is continere imperator, qui se ipse non continet, neque severus esse in iudicando, qui alios in se severos esse iudices non volt.

Hic miramur hunc hominem tantum excellere ceteris, cuius legiones sic in Asiam pervenerint, ut non modo manus tanti exercitus, sed ne vestigium quidem cuiquam pacato nocuisse dicatur? iam vero quem ad modum milites hibernent cotidie sermones ac litterae perferuntur: non modo ut sumptum faciat in militem nemini vis adfertur, sed ne cupienti quidem cuiquam permittitur. Hiemis enim, non avaritiae perfugium maiores nostri in sociorum atque amicorum tectis esse voluerunt.

Age vero: ceteris in rebus quali sit temperantia considerate. Unde illam tantam celeritatem et tam incredibilem cursum inventum putatis? Non enim illum eximia vis remigum aut ars inaudita quaedam gubernandi aut venti aliqui novi tam celeriter in ultimas terras pertulerunt; sed eae res quae ceteros remorari solent, non retardarunt: non avaritia ab instituto cursu ad praedam aliquam devocavit, non libido ad voluptatem, non amoenitas ad delectationem, non nobilitas urbis ad cognitionem, non denique labor ipse ad quietem; postremo signa et tabulas ceteraque ornamenta Graecorum oppidorum, quae ceteri tellenda esse arbitrantur, ea sibi ille ne visenda quidem existimavit.

Itaque omnes nunc in eis locis Cn. Pompeium sicut aliquem non ex hac urbe missum, sed de caelo delapsum intuentur. Nunc denique incipiunt credere fuisse homines Romanos hac quondam continentia, quod iam nationibus exteris incredibile ac falso memoriae proditum videbatur. Nunc imperi vestri splendor illis gentibus lucem adferre coepit. Nunc intellegunt non sine causa maiores suos, tum cum ea temperantia magistratus habebamus, servire populo Romano quam imperare aliis maluisse. iam vero ita faciles aditus ad eum privatorum, ita liberae querimonia de aliorum iniuriis esse dicuntur, ut is, qui dignitate principibus excellit, facilitate infimis par esse videatur.

iam quantum consilio, quantum dicendi gravitate et copia valeat,—in quo ipso inest quaedam dignitas imperatoria,—vos, Quirites, hoc ipso ex loco saepe cognovistis. Fidem vero eius quantam inter socios existimari putatis, quam hostes omnes omnium generum sanctissimam iudicarint? Humanitate iam tanta est, ut difficile dictu sit utrum hostes magis virtutem eius pugnantes timuerint, an mansuetudinem victi dilexerint. Et quisquam dubitabit quin huic hoc tantum bellum transmittendum sit, qui ad omnia nostrae memoriae bella conficienda divino quodam consilio natus esse videatur?

Et quoniam auctoritas quoque in bellis administrandis multum atque in imperio militari valet, certe nemini dubium est quin ea re idem ille imperator plurimum possit. Vehementer autem pertinere ad bella administranda quid hostes, quid socii de imperatoribus nostris existiment quis ignorat, cum sciamus homines in tantis rebus, ut aut contemnant aut metuant aut oderint aut ament, opinione non minus et fama quam aliqua ratione certa commoveri? Quod igitur nomen umquam in orbe terrarum clarius fuit? cuius res gestae pares? de quo homine vos,—id quod maxime facit auctoritatem,—tanta et tam praeclara iudicia fecistis?

An vero ullam usquam esse oram tam desertam putatis, quo non illius diei fama pervaserit, cum universus populus Romanus, referto foro completisque omnibus templis ex quibus hic locus conspici potest, unum sibi ad commune omnium gentium bellum Cn. Pompeium imperatorem deposcit? Itaque—ut plura non dicam, neque aliorum exemplis confirmem quantum [huius] auctoritas valeat in bello—ab eodem Cn. Pompeio omnium rerum egregiarum exempla sumantur: qui quo die a vobis maritimo bello praepositus est imperator, tanta repente vilitas annonae ex summa inopia et caritate rei frumentariae consecuta est unius hominis spe ac nomine, quantum vix in summa ubertate agrorum diuturna pax efficere potuisset.

iam accepta in Ponto calamitate ex eo proelio, de quo vos paulo ante invitus admonui,—cum socii pertimuissent, hostium opes animique crevissent, satis firmum praesidium provincia non haberet,—amisissetis Asiam, Quirites, nisi ad ipsum discrimen eius temporis divinitus Cn. Pompeium ad eas regiones fortuna populi Romani attulisset. Huius adventus et Mithridatem insolita inflammatum victoria continuit, et Tigranem magnis copiis minitantem Asiae retardavit. Et quisquam dubitabit quid virtute perfecturus sit, qui tantum auctoritate perfecerit? aut quam facile imperio atque exercitu socios et vectigalia conservaturus sit, qui ipso nomine ac rumore defenderit?

Age vero, illa res quantam declarat eiusdem hominis apud hostis populi Romani autoritatem, quod ex locis tam longinquis tamque diversis tam brevi tempore omnes huic se uni dediderunt? quod a communi Cretensium legati, cum in eorum insula noster imperator exercitusque esset, ad Cn. Pompeium in ultimas prope terras venerunt, eique se omnis Cretensium civitates dedere velle dixerunt? Quid? idem iste Mithridates nonne ad eundem Cn. Pompeium legatum usque in Hispaniam misit? eum quem Pompeius legatum semper iudicavit, ei quibus erat [semper] molestum ad eum potissimum esse missum, speculatorem quam legatum iudicari maluerunt. Potestis igitur iam constituere, Quirites, hanc auctoritatem, multis postea rebus gestis magnisque vestris iudiciis amplificatam, quantum apud illos reges, quantum apud exteras nationes valituram esse existimetis.

Reliquum est ut de felicitate (quam praestare de se ipso nemo potest, meminisse et commemorare de altero possumus, sicut aequum est homines de potestate deorum) timide et pauca dicamus. Ego enim sic existimo: Maximo, Marcello, Scipioni, Mario, et ceteris magnis imperatoribus non solum propter virtutem, sed etiam propter fortunam saepius imperia mandata atque exercitus esse commissos. Fuit enim profecto quibusdam summis viris quaedam ad amplitudinem et ad gloriam et ad res magnas bene gerendas divinitus adiuncta fortuna. De huius autem hominis felicitate, de quo nunc agimus, hac utar moderatione dicendi, non ut in illius potestate fortunam positam esse dicam, sed ut praeterita meminisse, reliqua sperare videamur, ne aut invisa dis immortalibus oratio nostra aut ingrata esse videatur.

Itaque non sum praedicaturus quantas ille res domi militiae, terra marique, quantaque felicitate gesserit; ut eius semper voluntatibus non modo cives adsenserint, socii obtemperarint, hostes obedierint, sed etiam venti tempestatesque obsecundarint: hoc brevissime dicam, neminem umquam tam impudentem fuisse, qui ab dis immortalibus tot et tantas res tacitus auderet optare, quot et quantas di immortales ad Cn. Pompeium detulerunt. Quod ut illi proprium ac perpetuum sit, Quirites, cum communis solutis atque imperi tum ipsius hominis causa, sicuti facitis, velle et optare debetis.

Qua re,—cum et bellum sit ita necessarium ut neglegi non possit, ita magnum ut accuratissime sit administrandum; et cum ei imperatorem praeficere possitis, in quo sit eximia belli scientia, singularis virtus, clarissima auctoritas, egregia fortuna,—dubitatis Quirites, quin hoc tantum boni, quod vobis ab dis immortalibus oblatum et datum est, in rem publicam conservandam atque amplificandam conferatis?

Quod si Romae Cn. Pompeius privatus esset hoc tempore, tamen ad tantum bellum is erat deligendus atque mittendus: nunc cum ad ceteras summas utilitates haec quoque opportunitas adiungatur, ut in eis ipsis locis adsit, ut habeat exercitum, ut ab eis qui habent accipere statim possit, quid exspectamus? aut cur non dicibus dis immortalibus eidem, cui cetera summa cum salute rei publicae commissa sunt, hoc quoque bellum regium committamus?

At enim vir clarissimus, amantissimus rei publicae, vestris beneficiis amplissimis adfectus, Q. Catulus, itemque summis ornamentis honoris, fortunae, virtutis, ingeni praeditus, Q. Hortensius, ab hac ratione dissentiunt. Quorum ego auctoritatem apud vos multis locis plurimum valuisse et valere oportere confiteor; sed in hac causa, tametsi cognoscitis auctoritates contrarias virorum fortissimorum et clarissimorum, tamen omissis auctoritatibus ipsa re ac ratione exquirere possumus veritatem, atque hoc facilius, quod ea omnia quae a me adhuc dicta sunt, eidem isti vera esse concedunt,—et necessarium bellum esse et magnum, et in uno Cn. Pompeio summa esse omnia.

Quid igitur ait Hortensius? Si uni omnia tribuenda sint, dignissimum esse Pompeium, sed ad unum tamen omnia deferri non oportere. Obsolevit iam ista oratio, re multo magis quam verbis refutata. Nam tu idem, Q. Hortensi, multa pro tua summa copia ac singulari facultate dicendi et in senatu contra virum fortem, A. Gabinium, graviter ornateque dixisti, cum is de uno imperatore contra praedones constituendo legem promulgasset, et ex hoc ipso loco permuta item contra eam legem verba fecisti.

Quid? tum (per deos immortalis!) si plus apud populum Romanum auctoritas tua quam ipsius populi Romani salus et vera causa valuisset, hodie hanc gloriam atque hoc orbis terrae imperium teneremus? An tibi tum imperium hoc esse videbatur, cum populi Romani legati quaestores praetoresque capiebantur? cum ex omnibus provinciis commeatu et privato et publico prohibebamur? cum ita clausa nobis erant maria omnia, ut neque privatam rem transmarinam neque publicam iam obire possemus?

Quae civitas antea umquam fuit,—non dico Atheniensium, quae satis late quondam mare tenuisse dicitur; non Karthaginiensium, qui permultum classe ac maritimis rebus valuerunt; non Rhodiorum, quorum usque ad nostram memoriam disciplina navalis et gloria remansit,—sed quae civitas umquam antea tam tenuis, quae tam parva insula fuit, quae non portus suos et agros et aliquam partem regionis atque orae maritimae per se ipsa defenderet? At (hercule) aliquot annos continuos ante legem Gabiniam ille populus Romanus, cuius usque ad nostram memoriam nomen invictum in navalibus pugnis permanserit, magna ac multo maxima parte non modo utilitatis, sed dignitatis atque imperi caruit.

Nos, quorum maiores Antiochum regem classe Persenque superarunt, omnibus navalibus pugnis Karthaginiensis, homines in maritimis rebus exercitatissimos paratissimosque, vicerunt, ei nullo in loco iam praedonibus pares esse poteramus: nos, qui antea non modo Italiam tutam habebamus, sed omnis socios in ultimis oris auctoritate nostri imperi salvos praestare poteramus,—tum cum insula Delos, tam procul a nobis in Aegaeo mari posita, quo omnes undique cum mercibus atque oneribus commeabant, referta divitiis, parva, sine muro, nihil timebat,—eidem non modo provinciis atque oris Italiae maritimis ac portubus nostris, sed etiam Appia iam via carebamus; et eis temporibus non pudebat magistratus populi Romani in hunc ipsum locum escendere, cum eum nobis maiores nostri exuviis nauticis et classium spoliis ornatum reliquissent.

Bono te animo tum, Q. Hortensi, populus Romanus et ceteros qui erant in eadem sententia, dicere existimavit ea quae sentiebatis: sed tamen in salute communi idem populus Romanus dolori suo maluit quam auctoritati vestrae obtemperare. Itaque una lex, unus vir, unus annus non modo nos illa miseria ac turpitudine liberavit, sed etiam effecit, ut aliquando vere videremur omnibus gentibus ac nationibus terra marique imperare.

Quo mihi etiam indignius videtur obtrectatum esse adhuc,—Gabinio dicam anne Pompeio, an utrique, id quod est verius?—ne legaretur A. Gabinius Cn. Pompeio expetenti ac postulanti. Utrum ille, qui postulat ad tantum bellum legatum quem velit, idoneus non est qui impetret, cum ceteri ad expilandos socios diripiendasque provincias quos voluerunt legatos eduxerint; an ipse, cuius lege salus ac dignitas populo Romano atque omnibus gentibus constituta est, expers esse debet gloriae eius imperatoris atque eius exercitus, qui consilio ipsius ac periculo est constitutus?

An C. Falcidius, Q. Metellus, Q. Caelius Latiniensis, Cn. Lentulus, quos omnis honoris causa nomino, cum tribuni plebi fuissent, anno proximo legati ese potuerunt: in uno Gabinio sunt tam diligentes, qui in hoc bello, quod lege Gabinia geritur, in hoc imperatore atque exercitu, quem per vos ipse constituit, etiam praecipuo iure esse deberet? De quo legando consules spero ad senatum relaturos. Qui si dubitabunt aur gravabuntur, ego me profiteor relaturum. Neque me impediet cuiusquam inimicum edictum, quo minus vobis fretus vestrum ius beneficiumque defendam; neque praeter intercessionem quicquam audiam, de qua (ut arbitror) isti ipsi, qui minantur, etiam atque etiam quid liceat considerabunt. Mea quidem sentenia, Quirites, unus A. Gabinius belli maritimi rerumque gestarum Cn. Ponpeio socius ascribitur, propterea quod alter uni illud bellum suscipiendum vestris suffragiis detulit, alter delatum susceptumque confecit.

Reliquum est ut de Q. Catuli auctoritate et sententia dicendum esse videatur. Qui cum ex vobis quaereret, si in uno Cn. Pompeio omnia poneretis, si quid eo factum esset, in quo spem essetis habituri,—cepit magnum suae virtutis fructum ac dignitatis, cum omnes una prope voce in [eo] ipso vos spem habituros esse dixistis. Etenim talis est vir, ut nulla res tanta sit ac tam difficilis, quam ille non et consilio regere et integritate tueri et virtute conficere possit. Sed in hoc ipso ab eo vehementissime dissentio; quod, quo minus certa est hominum ac minus diuturna vita, hoc magis res publica, dum per deos immortalis licet, frui debet summi viri vita atque virtute.

‘At enim ne quid novi fiat contra exempla atque instituta maiorum.’ Non dicam hoc loco maiores nostros semper in pace consuetudini, in bello utilitati paruisse; semper ad novos casus temporum novorom consiliorum rationes adcommodasse: non dicam duo bella maxima, Punicum atque Hispaniense, ab uno imperatore esse confecta, duasque urbis potentissimas, quae huic imperio maxime minitabantur, Karthaginem atque Numantiam, ab eodem Scipione esse deletas: non commemorabo nuper ita vobis patribusque vestris esse visum, ut in uno C. Mario spes imperi poneretur, ut idem cum iugurtha, idem cum Cimbris, idem cum Teutonis bellum administraret.

In ipso Cn. Pompeio, in quo novi constitui nihil volt Q. Catulus, quam multa sint nova summa Q. Catuli voluntate constituta recordamini. Quid tam novum quam adulescentulum privatum exercitum difficili rei publicae temporare conficere? Confecit. Huic praeesse? Praefuit. Rem optime ductu suo gerere? Gessit. Quid tam praeter consuetudinem quam homini peradulescenti, cuius aetas a senatorio gradu longe abesset, imperium atque exercitum dari, Siciliam permitti, atque Africam bellumque in ea provincia administrandum? Fuit in his provinciis singulari innocentia, gravitate, virtute: bellum in Africa maximum confecit, victorem exercitum deportavit. Quid vero tam inauditum quam equitem Romanum triumphare? At eam quoque rem populus Romanus non modo vidit, sed omnium etiam studio visendam et concelebrandam putavit.

Quid tam inusitatum quam ut, cum duo consules clarissimi fortissimique essent, eques Romanus ad bellum maximum formidolosissimumque pro consule mitteretur? Missus est. Quo quidem tempore, cum esset non nemo in senatu qui diceret ’ non oportere mitti hominem privatum pro consule,’ L. Philippus dixisse dicitur non se illum sua sententia pro consule, sed pro consulibus mittere. Tanta in eo rei publicae bene gerendae spes constituebatur, ut duorum consulum munus unius adulescentis virtuti committeretur. Quid tam singulare quam ut ex senatus consuto legibus solutus consul ante fieret, quam ullum alium magistratum per leges capere licuisset? quid tam incredibile quam ut iterum eques Romanus ex senatus consulto triumpharet? Quae in omnibus hominibus nova post hominum memoriam constituta sunt, ea tam multa non sunt quam haec, quae in hoc uno homine videmus.

Atque haec tot exempla, tanta ac tam nova, profecta sunt in eundem hominem a Q. Catuli atque a ceterorum eiusdem dignitatis amplissimorum hominum auctoritate. Qua re videant ne sit periniquum et non ferundum, illorum auctoritatem de Cn. Pompei dignitate a vobis comprobatam semper esse, vestrum ab illis de eodem homine iudicium populique Romani auctoritatem improbari; praesertim cum iam suo iure populus Romanus in hoc homine suam auctoritatem vel contra omnis qui dissentiunt possit defendere, propterea quod, isdem istis reclamantibus, vos unum illum ex omnibus delegistis quem bello praedonum praeponeretis.

Hoc si vos temere fecistis, et rei publicae parum consuluistis, recte isti studia vestra suis consiliis regere conantur. Sin autem vos plus tum in re publica vidistis, vos eis repugnantibus per vosmet ipsos dignitatem huic imperio, salutem orbi terrarum attulistis, aliquando isti principes et sibi et ceteris populi Romani universi auctoritati parendum esse fateantur. Atque in hoc bello Asiatico et regio non solum militaris illa virtus, quae est in Cn. Pompeio singularis, sed aliae quoque virtutes animi magnae et multae requiruntur. Difficile est in Asia, Cilicia, Syria regnisque interiorum nationum ita versari nostrum imperatorem, ut nihil nisi de hoste ac de laude cogitet. Deinde etiam si qui sunt pudore ac temperantia moderatiores, tamen eos esse talis propter multitudinem cupidiorum hominum nemo arbitratur.

Difficile est dictu, Quirites, quanto in odio simus apud exteras nationes propter eorum, quos ad eas per hos annos cum imperio misimus, libidines et iniurias. Quod enim fanum putatis in illis terris nostris magistratibus religiosum, quam civitatem sanctam, quam domum satis clausam ac munitam fuisse? Urbes iam locupletes et copiosae requiruntur, quibus causa belli propter diripiendi cupiditatem inferatur.

Libenter haec coram cum Q. Catulo et Q. Hortensio, summis et clarissimis viris, disputarem. Noverunt enim sociorum volnera, vident eorum calamitates, querimonias audiunt. Pro sociis vos contra hostis exercitum mittere putatis, an hostium simulatione contra socios atque amicos? Quae civitas est in Asia quae non modo imperatoris aut legati, sed unius tribuni militum animos ac spiritus capere possit? Qua re, etiam si quem habetis qui conlatis signis exercitus regios superare posse videatur, tamen nisi erit idem, qui se a pecuniis sociorum, qui ab eorum coniugibus ac liberis, qui ab ornamentis fanorum atque oppidorum, qui ab auro gazaque regia manus, oculos, animum cohibere possit, non erit idoneus qui ad bellum Asiaticum regiumque mittatur.

Ecquam putatis civitatem pacatam fuisse quae locuples sit? ecquam esse locupletem quae istis pacata esse videatur? Ora maritima, Quirites, Cn. Pompeium non solum propter rei militaris gloriam, sed etiam propter animi continentiam requisivit. Videbat enim praetores locupletari quot annis pecunia publica praeter paucos; neque eos quicquam aliud adsequi, classium nomine, nisi ut detrimentis accipiendis maiore adfici turpitudine videremur. Nunc qua cupiditate homines in provincias, quibus iacturis et quibus condicionibus proficiscantur, ignorant videlicet isti, qui ad unum deferenda omnia esse non arbitrantur? Quasi vero Cn. Pompeium non cum suis virtutibus tum etiam alienis vitiis magnum esse videamus.

Qua re nolite dubitare quin huic uni credatis omnia, qui inter tot annos unus inventus sit, quem socii in urbis suas cum exercitu venisse gaudeant. Quod si auctoritatibus hanc causam, Quirites, confirmandam putatis, est vobis auctor vir bellorum omnium maximarumque rerum peritissimus, P. Servilius, cuius tantae res gestae terra marique exstiterunt, ut cum de bello deliberetis, auctor vobis gravior nemo esse debeat; est C. Curio, summis vestris beneficiis maximisque rebus gestis, summo ingenio et prudentia praeditus; est Cn. Lentulus, in quo omnes pro amplissimis vestris honoribus summum consilium, summam gravitatem esse cognovistis; est C. Cassius, integritate, virtute, constantia singulari. Que re videte ut horum auctoritatibus illorum orationi qui dissentiunt, respondere posse videamur.

Que cum ita sint, C. Manlili, primum istam tuam et legem et voluntatem et sententiam laudo vehementissimeque comprobo: deinde te hortor, ut auctore populo Romano maneas in sententia, neve cuiusquam vim aut minas pertimescas. Primum in te satis esse animi perseverantiaeque arbitror: deinde cum tantam multitudinem cum tanto studio adesse videamus, quantam iterum nunc in eodem homine praeficiendo videmus, quid est quod aut de re aut de perficiendi facultate dubitemus? Ego autem quicquid est in me studi, consili, laboris, ingeni, quicquid hoc beneficio populi Romani atque hac potestate praetoria, quicquid auctoritate, fide, constantia possum, id omne ad hanc re conficiendam tibi et populo Romano polliceor ac defero:

testorque omnis deos, et eos maxime qui huic loco temploque praesident, qui omnium mentis eorum qui ad rem publicam adeunt maxime perspiciunt, me hoc neque rogatu facere cuiusquam, neque quo Cn. Pompei gratiam mihi per hanc causam conciliari putem, neque quo mihi ex cuiusquam amplitudine aut praesidia periculis aut adiumenta honoribus quaeram; propterea quod pericula facile, ut hominem praestare oportet, innocentia tecti repellemus, honorem autem neque ab uno neque ex hoc loco, sed eadem illa nostra laboriosissima ratione vitae, si vestra voluntas feret, consequemur.

Quam ob rem quicquid in hac causa mihi susceptum est, Quirites, id ego omne me rei publicae causa suscepisse confirmo; tantumque abest ut aliquam mihi bonam gratiam quaesisse videar, ut multas me etiam simultates partim obscuras, partim apertas intellegam mihi non necessarias, vobis non inutilis suscepisse. Sed ego me hoc honore praeditum, tantis vestris beneficiis adfectum statui, Quirites, vestram voluntatem et rei publicae dignitatem et salutem provinciarum atque sociorum meis omnibus commodis et rationibus praeferre oportere.

Pro Lege Manilia
https://leadership.qubitpi.org/posts/pro-lege-manilia/
Author
【烬火】胡桃
Published at
2024-08-03
\ No newline at end of file +Pro Lege Manilia - Jiaqi's Leadership Blog
6579 words
33 minutes
Pro Lege Manilia

Quamquam mihi semper frequens conspectus vester multo iucundissimus, hic autem locus ad agendum amplissimus, ad dicendum ornatissimus est visus, Quirites, tamen hoc aditu laudis, qui semper optimo cuique maxime patuit, non mea me voluntas adhuc, sed vitae meae rationes ab ineunte aetate susceptae prohibuerunt. Nam cum antea per aetatem nondum huius auctoritatem loci attingere auderem, statueremque nihil huc nisi perfectum ingenio, elaboratum industria adferri oportere, omne meum tempus amicorum temporibus transmittendum putavi.

Ita neque hic locus vacuus umquam fuit ab eis qui vestram causam defenderent, et meus labor, in privatorum periculis caste integreque versatus, ex vestro iudicio fructum est amplissimum consecutus. Nam cum propter dilationem comitiorum ter praetor primus centuriis cunctis renuntiatus sum, facile intellexi, Quirites, et quid de me iudicaretis, et quid aliis praescriberetis. Nunc cum et auctoritatis in me tantum sit, quantum vos honoribus mandandis esse voluistis, et ad agendum facultatis tantum, quantum homini vigilanti ex forensi usu prope cotidiana dicendi exercitatio potuit adferre, certe et si quid auctoritatis in me est, apud eos utar qui eam mihi dederunt, et si quid in dicendo consequi possum, eis ostendam potissimum, qui ei quoque rei fructum suo iudicio tribuendum esse duxerunt.

Atque illud in primis mihi laetandum iure esse video, quod in hac insolita mihi ex hoc loco ratione dicendi causa talis oblata est, in qua oratio deesse nemini possit. Dicendum est enim de Cn. Pompei singulari eximiaque virtute: huius autem orationis difficilius est exitum quam principium invenire. Ita mihi non tam copia quam modus in dicendo quaerendus est.

Atque,—ut inde oratio mea proficiscatur, unde haec omnis causa ducitur,—bellum grave et periculosum vestris vectigalibus ac sociis a duobus potentissimis regibus infertur, Mithridate et Tigrane, quorum alter relictus, alter lacessitus, occasionem sibi ad occupandam Asiam oblatam esse arbitrantur. Equitibus Romanis, honestissimis viris, adferuntur ex Asia cotidie litterae, quorum magnae res aguntur in vestris vectigalibus exercendis occupatae: qui ad me, pro necessitudine quae mihi est cum illo ordine, causam rei publicae periculaque rerum suarum detulerunt:

Bithyniae, quae nunc vestra provincia est, vicos exustos esse compluris; regnum Ariobarzanis, quod finitimum est vestris vectigalibus, totum esse in hostium potestate; L. Lucullum, magnis rebus gestis, ab eo bello discedere; huic qui successerit non satis esse paratum ad tantum bellum administrandum; unum ab omnibus sociis et civibus ad id bellum imperatorem deposci atque expeti, eundem hunc unum ab hostibus metui, praeterea neminem.

Causa quae sit videtis: nunc quid agendum sit considerate. Primum mihi videtur de genere belli, deinde de magnitudine, tum de imperatore deligendo esse dicendum. Genus est belli eius modi, quod maxime vestros animos excitare atque inflammare ad persequendi studium debeat: in quo agitur populi Romani gloria, quae vobis a maioribus cum magna in omnibus rebus tum summa in re militari tradita est; agitur salus sociorum atque amicorum, pro qua multa maiores vestri magna et gravia bella gesserunt; aguntur certissma populi Romani vectigalia et maxima, quibus amissis et pacis ornamenta et subsidia belli requiretis; aguntur bona multorum civium, quibus est a vobis et ipsorum et rei publicae causa consulendum.

Et quoniam semper appetentes gloriae praeter ceteras gentis atque avidi laudis fuistis, delenda est vobis ill macula Mithridatico bello superiore concepta, quae penitus iam insedit ac nimis inveteravit in populi Romani nomine,—quod is, qui uno die, tota in Asia, tot in civitatibus, uno nuntio atque una significatione [litterarum] civis Romanos necandos trucidandosque denotavit, non modo adhuc poenam nullam suo dignam scelere suscepit, sed ab illo tempore annum iam tertium et vicesimum regnat, et ita regnat, ut se non Ponti neque Cappadociae latebris occultare velit, sed emergere ex patrio regno atque in vestris vectigalibus, hoc est, in Asiae luce versari.

Etenim adhuc ita nostri cum illo rege contenderunt imperatores, ut ab illo insignia victoriae, non victoriam reportarent. Triumphavit L. Sulla, triumphavit L. Murena de Mithridate, duo fortissimi viri et summi imperatores; sed ita triumpharunt, ut ille pulsus superatusque regnaret. Verum tamen illis imperatoribus laus est tribuenda quod egerunt, venia dandaquod reliquerunt, propterea quod ab eo bello Sullam in Italiam res publica, Murenam Sulla revocavit.

Mithridates autem omne reliquum tempus non ad oblivionem veteris belli, sed ad comparationem novi contulit: qui [postea] cum maximas aedificasset ornassetque classis exercitusque permagnos quibuscumque ex gentibus potuisset comparasset, et se Bosporanis finitimis suis bellum inferre similaret, usque in Hispaniam legatos ac litteras misit ad eos duces quibuscum tum bellum gerebamus, ut, cum duobus in locis disiunctissimis maximeque diversis uno consilio a binis hostium copiis bellum terra marique gereretur, vos ancipiti contentione districti de imperio dimicaretis.

Sed tamen alterius partis periculum, Sertorianae atque Hispaniensis, quae multo plus firmamenti ac roboris habebat, Cn. Pompei divino consilio ac singulari virtute depulsum est; in altera parte ita res a L. Lucullo summo viro est administrata, ut initia illa rerum gestarum magna atque praeclara non felicitati eius, sed virtuti, haec autem extrema, quae nuper acciderunt, non culpae, sed fortunae tribuenda esse videantur. Sed de Lucullo dicam alio loco, et ita dicam, Quirites, ut neque vera laus ei detracta oratione mea neque falsa adficta esse videatur:

de vestri imperi dignitate atque gloria—quoniam is est exorsus orationis meae— videte quem vobis animum suscipiendum putetis. Maiores nostri saepe mercatoribus aut naviculariis nostris iniuriosius tractatis bella gesserunt: vos, tot milibus civium Romanorum uno nuntio atque uno tempore necatis, quo tandem animo esse debetis? Legati quod erant appellati superbius, Corinthum patres vestri totius Graeciae lumen exstinctum esse voluerunt: vos eum regem inultum esse patiemini, qui legatum populi Romani consularem vinculis ac verberibus atque omni supplicio excruciatum necavit? Illi libertatem imminutam civium Romanorum non tulerunt: vos ereptam vitam neglegetis? ius legationis verbo violatum illi persecuti sunt: vos legatum omni supplicio interfectum relinquetis?

Videte ne, ut illis pulcherrimum fuit tantam vobis imperi gloriam tradere, sic vobis turpissimum sit, id quod accepistis tueri et conservare non posse. Quid? quod salus sociorum summum in periculum ac discrimen vocatur, quo tandem animo ferre debetis? Regno est expulsus Ariobarzanes rex, socius populi Romani atque amicus; imminent duo reges toti Asiae non solum vobis inimicissimi, sed etiam vestris sociis atque amicis; civitates autem omnes cuncta Asia atque Graecia vestrum auxilium exspectare propter periculi magnitudinem coguntur; imperatorem a vobis certum deposcere, cum praesertim vos alium miseritis, neque audent, neque se id facere sine summo periculo posse arbitrantur.

Vident et sentiunt hoc idem quod vos,—unum virum esse, in quo summa sint omnia, et eum propter esse, quo etiam carent aegrius; cuius adventus ipso atque nomine, tametsi ille ad maritimum bellum venerit, tamen impetus hostium repressos esse intellegunt ac retardatos. His vos, quoniam libere loqui non licet, tacite rogant, ut se quoque, sicut ceterarum provinciarum socios, dignos existimetis, quorum salutem tali viro commendetis; atque hoc etiam magis, quod ceteros in provinciam eius modi homines cum imperio mittimus, ut etiam si ab hoste defendant, tamen ipsorum adventus in urbis sociorum non multum ab hostili expugnatione differant. Hunc audiebant antea, nunc praesentem vident, tanta temperantia, tanta mansuetudine, tanta humanitate, ut ei beatissimi esse videantur, apud quod ille diutissime commoratur.

Qua re si propter socios, nulla ipsi iniuria lacessiti, maiores nostri cum Antiocho, cum Philippo, cum Aetolis, cum Poenis bella gesserunt, quanto vos studio convenit iniuriis provocatos sociorum salutem una cum imperi vestri dignitate defendere, praesertim cum de maximis vestris vectigalibus agatur? Nam ceterarum provinciarum vectigalia, Quirites, tanta sunt, ut eis ad ipsas provincias tutandas vix contenti esse possimus: Asia vero tam opima est ac fertilis, ut et ubertate agrorum et varietate fructuum et magnitudine pastionis et multitudine earum rerum quae exportantur, facile omnibus terris antecellat. Itaque haec vobis provincia, Quirites, si et belli utilitatem et pacis dignitatem retinere voltis, non modo a calamitate, sed etiam a metu calamitatis est defenda.

Nam in ceteris rebus cum venit calamitas, tum detrimentum accipitur; at in vectigalibus non solum adventus mali, sed etiam metus ipse adfert calamitatem. Nam cum hostium copiae non longe absunt, etiam si inruptio nulla facta est, tamen pecuaria relinquitur, agri cultura deseritur, mercatorum navigatio conquiescit. Ita neque ex portu neque ex decumis neque ex scriptura vectigal conservari potest: qua re saepe totius anni fructus uno rumore periculi atque uno belli terrore amittitur.

Quo tandem igitur animo esse existimatis aut eos qui vectigalia nobis pensitant, aut eos qui exercent atque exigunt, cum duo reges cum maximis copiis propter adsint? cum una excursio equitatus perbrevi tempore totius anni vectigal auferre possit? cum publicani familias maximas, quas in saltibus habent, quas in agris, quas in portubus atque custodiis, magno periculo se habere arbitrentur? Putatisne vos illis rebus frui posse, nisi eos qui vobis fructui sunt conservaritis non solum (ut ante dixi) calamitate, sed etiam calamitatis formidine liberatos?

Ac ne illud quidem vobis neglegendum est, quod mihi ego extremum proposueram, cum essem de belli genere dicturus, quod ad multorum bona civium Romanorum pertinet, quorum vobis pro vesta sapientia, Quirites, habenda est ratio diligenter. Nam et publicani, homines honestissimi atque ornatissimi, suas rationes et copias in illam provinciam contulerunt, quorum ipsorum per se res et fortunae vobis curae esse debent. Etenim si vectigalia nervos esse rei publicae semper duximus, eum certe ordinem, qui exercet illa, firmamentum ceterorum ordinum recte esse dicemus.

Deinde ex ceteris ordinibus homines gnavi atque industrii partim ipsi in Asia negotiantur, quibus vos absentibus consulere debetis, partim eorum in ea provincia pecunias magnas conlocatas habent. Est igitur humanitatis vestrae magnum numerum eorum civium calamitate prohibere, sapientiae videre multorum civium calamitatem a re publica seiunctam esse non posse. Etenim primum illud parvi refert, vos publicanis amissa vectigalia postea victoria recuperare; neque enim isdem redimendi facultas erit propter calamitatem, neque aliis voluntas propter timorem.

Deinde quod nos eadem Asia atque idem iste Mithridates initio belli Asiatici docuit, id quidem certe calamitate docti memoria retinere debemus. Nam tum, cum in Asia res magnas permulti, amiserant, scimus Romae, solutione impedita, fidem concidisse. Non enim possunt una in civitate multi rem ac fortunas amittere, ut non plures secum in eandem trahant calamitatem. A quo periculo prohibete rem publicam, et mihi credite id quod ipsi videtis: haec fides atque haec ratio pecuniarum, quae Romae, quae in foro versatur, implicata est cum illis pecuniis Asiaticis et cohaeret. Ruere illa non possunt, ut haec non eodem labefacta motu concidant. Qua re videte num dubitandum vobis sit omni studio ad id bellum incumbere, in quo gloria nominis vestri, salus sociorum, vectigalia maxima, fortunae plurimorum civium coniunctae cum re publica defendantur.

Quoniam de genere belli dixi, nunc de magnitudine pauca dicam. Potest hoc enim dici, belli genus esse ita necessarium ut sit gerendum, non esse ita magnum ut sit pertimescendum. In quo maxime elaborandum est, ne forte ea vobis quae diligentissime providenda sunt, contemnenda esse videantur. Atque ut omnes intellegant me L. Lucullo tantum impertire laudis, quantum forti viro et sapienti homini et magno imperatori debeatur, dico eius adventu maximas Mithridati copias omnibus rebus ornatus atque instructas fuisse, urbemque Asiae clarissimam nobisque amicissimam, Cyzicenorum, obsessam esse ab ipso rege maxima multitudine et oppugnatam vehementissime, quam L. Lucullus virtute, adsiduitate, consilio, summis obsidionis periculis liberavit:

ab eodem imperatore classem magnam et ornatam, quae ducibus Sertorianis ad Italiam studio atque odio inflammata raperetur, superatam esse atque depressami magnas hostium praeterea copias multis proeliis esse deletas, patefactumque nostris legionibs esse Pontum, qui antea populo Romano ex omni aditu clausus fuisset; Sinopen atque Amisum, quibus in oppidis erant domicilia regis, omnibus rebus ornatus ac refertas, ceterasque urbis Ponti et Cappadociae permultas, uno aditu adventuque esse captas; regem, spoliatum regno patrio atque avito, ad alios se reges atque ad alias gentis supplicem contulisse; atque haec omnia salvis populi Romani sociis atque integris vectigalibus esse gesta. Satis opinor haec esse laudis, atque ita, Quirites, ut hoc vos intellegatis, a nullo istorum, qui huic obtrectant legi atque causae, L. Lucullum similiter ex hoc loco esse laudatum.

Requiretur fortasse nunc quem ad modum, cum haec ita sint, reliquum possit magnum esse bellum. Cognoscite, Quirites. Non enim hoc sine causa quaeri videtur. Primum ex suo regno sic Mithridates profugit, ut ex eodem Ponto Medea illa quondam profugisse dicitur, quam praedicant in fuga fratris sui membra in eis locis, qua se parens persequeretur, dissipavisse, ut eorum conlectio dispersa, maerorque patrius, celeritatem persequendi retardaret. Sic Mithridates fugiens maximam vim auri atque argenti pulcherrimarumque rerum omnium, quas et a maioribus acceperat et ipse bello superiore ex tota Asia direptas in suum regnum congesserat, in Ponto omnem reliquit. Haec dum nostri conligunt omnia diligentius, rex ipse e manibus effugit. Ita illum in persequendi studio maeror, hos laetitia tardavit.

Hunc in illo timore et fuga Tigranes rex Armenius excepit, diffidentemque rebus suis confirmavit, et adflictum erexit, perditumque recreavit. Cuius in regnum postea quam L. Lucullus cum exercitu venit, plures etiam gentes contra imperatorem nostrum concitatae sunt. Erat enim metus iniectus eis nationibus, quas numquam populus Romanus neque lacessendas bello neque temptandas putavit: erat etiam alia gravis atque vehemens opinio, quae animos gentium barbarum pervaserat, fani locupletissimi et religiosissimi diripiendi causa in eas oras nostrum esse exercitum adductum. Ita nationes multae atque magnae novo quodam terrore ac metu concitabantur. Noster autem exercitus, tametsi urbem ex Tigrani regno ceperat, et proeliis usus erat secundis, tamen nimia longinquitate locorum ac desiderio suorum commovebatur.

Hic iam plura non dicam. Fuit enim illud extremum ut ex eis locis a militibus nostris reditus magis maturus quam processio longior quaereretur. Mithridates autem et suam manum iam confirmarat, [et eorum] qui se ex ipsius regno conlegerant, et magnis adventiciis auxiliis multorum regum et nationum iuvabatur. iam hoc fere sic fieri solere accepimus, ut regem adflictae fortunae facile multorum opes adliciant ad misericordiam, maximeque eorum qui aut reges sunt aut vivunt in regno, ut eis nomen regale magnum et sanctum esse videatur.

Itaque tantum victus efficere potuit, quantum incolumis numquam est ausus optare. Nam cum se in regnum suum recepisset, non fuit eo contentus, quod ei praeter spem acciderat,—ut illam, postea quam pulsus erat, terram umquam attingeret,—sed in exercitum nostrum clarum atque victorem impetum fecit. Sinite hoc loco, Quirites, sicut poetae solent, qui res Romanas scribunt, praeterire me nostram calamitatem, quae tanta fuit, ut eam ad auris [Luculli] imperatoris non ex proelio nuntius, sed ex sermone rumor adferret.

Hic in illo ipso malo gravissimaque belli offensione, L. Lucullus, qui tamen aliqua ex parte eis incommodis mederi fortasse potuisset, vestro iussu coactus,—qui imperi diuturnitati modum statuendum vetere exemplo putavistis,—partem militum, qui iam stipendiis confecti erant, dimisit, partem M’. Glabrioni tradidit. Multa praetereo consulto, sed ea vos coniectura perspicite, quantum illud bellum factum putetis, quod coniungant reges potentissimi, renovent agitatae nationes, suscipiant integrae gentes, novus imperator noster accipiat, vetere exercitu pulso.

Satis mihi multa verba fecisse videor, qua re esset hoc bellum genere ipso necessarium, magnitudine periculosum. Restat ut de imperatore ad id bellum delingendo ac tantis rebus praeficiendo dicendum esse videatur. Utinam, Quirites, virorum fortium atque innocentium copiam tantam haberetis, ut haec vobis deliberatio difficilis esset, quemnam potissimum tantis rebus ac tanto bello praeficiendum putaretis! Nunc vero—cum sit unus Cn. Pompeius, qui non modo eorum hominum qui nunc sunt gloriam, sed etiam antiquitatis memoriam virtute superarit—quae res est quae cuiusquam animum in hac causa dubium facere possit?

Ego enim sic existimo, in summo imperatore quattuor has res inesse oportere,—scientiam rei militaris, virtutem, auctoritatem, felicitatem. Quis igitur hoc homine scientior umquam aut fuit aut esse debuit? qui e ludo atque e pueritiae disciplinis bello maximo atque acerrimis hostibus ad patris exercitum atque in militiae disciplinam profectus est; qui extrema pueritia miles in exercitu fuit simmi imperatoris, ineunte adulescentia maximi ipse exercitus imperator; qui saepius cum hoste conflixit quam quisquam cum inimice concertavit, plura bello gessit quam ceteri legerunt, plures provincias confecit quam alii concupiverunt; cuius adulescentia ad scientiam rei militaris non alienis praeceptis sed suis imperiis, non offensionibus belli sed victoriis, non stipendiis sed triumphis est erudita. Quod denique genus esse belli potest, in quo illum non exercuerit fortuna rei publicae? Civile, Africanum, Transalpinum, Hispaniense [mixtum ex civitatibus atque ex bellicosissimis nationibus], servile, navale bellum, varia et diversa genera et bellorum et hostium, non solum gesta ab hoc uno, sed etiam confecta, nullam rem esse declarant in usu positam militari, quae huius viri scientiam fugere possit.

iam vero virtuti Cn. Pompei quae potest oratio par inveniri? Quid est quod quisquam aut illo dignum aut vobis novum aut cuiquam inauditum possit adferre? Neque enim illae sunt solae virtutes imperatoriae, quae volgo existimantur,—labor in negotiis, fortitudo in periculis, industria in agendo, celeritas in conficiendo, consilium in providiendo: quae tanta sunt in hoc uno, quanta in omnibus reliquis imperatoribus, quos aut vidimus aut audivimus, non fuerunt.

Testis est Italia, quam ille ipse victor L. Sulla huius virtute et subsidio confessus est liberata. Testis est Sicilia, quam multis undique cinctam periculis non terrore belli, sed consili celeritate explicavit. Testis est Africa, quae, magnis oppressa hostium copiis, eorum ipsorum sanguine redundavit. Testis est Gallia, per quam legionibus nostris iter in Hispaniam Gallorum internecione patefactum est. Testis est Hispania, quae saepissime plurimos hostis ab hoc superatos prostratosque conspexit. Testis est iterum et saepius Italia, quae cum servili bello taetro periculosoque premeretur, ab hoc auxilium absente expetivit: quod bellum exspectatione eius attentuatum atque imminutum est, adventu sublatum ac sepultum.

Testes nunc vero iam omnes orae atque omnes exterae gentes ac nationes, denique maria omnia cum universa, tum in singulis oris omnes sinus at portus. Quis enim toto mari locus per hos annos aut tam firmum habuit praesidium ut tutus esset, aut tam fuit abditus ut lateret? Quis navigavit qui non se aut mortis aut servitutis periculo committeret, cum aut hieme aut referto praedonum mari navigaret? Hoc tantum belum, tam turpe, tam vetus, tam late divisum atque dispersum, quis umquam arbitraretur aut ab omnibus imperatoribus uno anno aut omnibus annis ab uno imperatore confici posse?

Quam provinciam tenuistis a praedonibus liberam per hosce annos? quod vectigal vobis tutum fuit? quem socium defendistis? cui praesidio classibus vestris fuistis? quam multas existimatis insulas esse desertas? quam multas aut metu relictas aut a praedonibus captas urbis esse sociorum? Sed quid ego longinqua commemoro? Fuit hoc quondam, fuit proprium populi Romani, longe a domo bellare, et propugnaculis imperi sociorum fortunas, non sua tecta defendere. Sociis ego nostris mare per hos annos clausum fuisse dicam, cum exercitus vestri numquam a Brundisio nisi hieme summa transmiserint? Qui ad vos ab exteris nationibus venirent captos querar, cum legati populi Romani redempti sint? Mercatoribus tutum mare non fuisse dicam, cum duodecim secures in praedonum potestatem pervenerint?

Cnidum aut Colophonem aut Samum, nobilissimas urbis, innumerabilisque alias captas esse commemorem, cum vestros portus, atque eos portus quibus vitam ac spiritum ducitis, in praedonum fuisse potestatem sciatis? An vero ignoratis portum Caietae celeberrimum ac plenissimum navium inspectante praetore a praedonibus esse direptum? ex Miseno autem eius ipsius liberos, qui cum praedonibus antea ibi bellum gesserat, a praedonibus esse sublatos? Nam quid ego Ostiense incommodum atque illam labem atque ignominiam rei publicae querar, cum, prope inspectantibus vobis, classis ea, cui consul populi Romani praepositus esset, a praedonibus capta atque oppressa est? Pro di immortales! tantamne unius hominis incredibilis ac divina virtus tam brevi tempore lucem adferre rei publicae potuit, ut vos, qui modo anti ostium Tiberinum classem hostium videbatis, ei nunc nullam intra Oceani ostium praedonum navem esse audiatis?

Atque haec qua celeritate gesta sint quamquam videtis, tamen a me in dicendo praetereunda non sunt. Quis enim umquam aut obeundi negoti aut consequendi quaestus studio tam brevi tempore tot loca adire, tantos cursus conficere potuit, quam celeriter Cn. Pompeio duce tanti belli impetus navigavit? Qui nondum tempestivo ad navigandum mari Siciliam adiit, Africam exploravit; inde Sardiniam cum classe venit, atque haec tria frumentaria subsidia rei publicae firmissimis praesidiis classibusque munivit;

inde cum se in Italiam recepisset, duabus Hispanis et Gallia [transalpina] praesidiis ac navibus confirmata, missis item in oram Illyrici maris et in Achaiam omnemque Graeciam navibus, Italiae duo maria maximis classibus firmissimisque praesidiis adornavit; ipse autem ut Brundisio profectus est, undequinquagesimo die totam ad imperium populi Romani Ciliciam adiunxit; omnes, qui ubique praedones fuerunt, partim capti interfectique sunt, partim unius huius se imperio ac potestati dediderunt. Idem Cretensibus, cum ad eum usque in Pamphyliam legatos deprecatoresque misissent, spem deditionis non ademit, obsidesque imperavit. Ita tantum bellum, tam diuturunum, tam longe lateque dispersum, quo bello omnes gentes ac nationes premebantur, Cn. Pompeius extrema hieme apparavit, ineunte vere susceptit, media aestate confecit.

Est haec divina atque incredibilis virtus imperatoris. Quid ceterae, quas paulo ante commemorare coeperam, quantae atque quam multae sunt? Non enim bellandi virtus solum in summo ac perfecto imperatore quaerenda est, sed multae sunt artes eximiae huius administrae comitesque virtutis. Ac primum, quanta innocentia debent esse imperatores? quanta deinde in omnibus rebus temperantia? quanta fide? quanta facilitate? quanto ingenio? quanta humanitate? Quae breviter qualia sint in Cn. Pompeio consideremus: summa enim omnia sunt, Quirites, sed ea magis ex aliorum contentione quam ipsa per sese cognosci atque intellegi possunt.

Quem enim imperatorem possumus ullo in numero putare, cuius in exercitu centuriatus veneant atque venierint? Quid hunc hominem magnum aut amplum de re publica cogitare, qui pecuniam, ex aerario depromptam ad bellum administrandum, aut propter cupiditatem provinciae magistratibus diviserit, aut propter avaritiam Romae in quaestu reliquerit? Vestra admurmuratio facit, Quirites, ut agnoscere videamini qui haec fecerint: ego autem nomino neminem; qua re irasci mihi nemo poterit, nisi qui ante de se voluerit confiteri. Itaque propter hanc avaritiam imperatorum quantas calamitates, quocumque ventum est, nostri exercitus ferant quis ignorat?

Itinera quae per hosce annos in Italia per agros atque oppida civium Romanorum nostri imperatores fecerint recordamini: tum facilius statuetis quid apud exteras nationes fieri existimetis. Utrum pluris arbitramini per hosce annos militum vestrorum armis hostium urbis, an hibernis sociorum civitates esse deletas? Neque enim potest exercitum is continere imperator, qui se ipse non continet, neque severus esse in iudicando, qui alios in se severos esse iudices non volt.

Hic miramur hunc hominem tantum excellere ceteris, cuius legiones sic in Asiam pervenerint, ut non modo manus tanti exercitus, sed ne vestigium quidem cuiquam pacato nocuisse dicatur? iam vero quem ad modum milites hibernent cotidie sermones ac litterae perferuntur: non modo ut sumptum faciat in militem nemini vis adfertur, sed ne cupienti quidem cuiquam permittitur. Hiemis enim, non avaritiae perfugium maiores nostri in sociorum atque amicorum tectis esse voluerunt.

Age vero: ceteris in rebus quali sit temperantia considerate. Unde illam tantam celeritatem et tam incredibilem cursum inventum putatis? Non enim illum eximia vis remigum aut ars inaudita quaedam gubernandi aut venti aliqui novi tam celeriter in ultimas terras pertulerunt; sed eae res quae ceteros remorari solent, non retardarunt: non avaritia ab instituto cursu ad praedam aliquam devocavit, non libido ad voluptatem, non amoenitas ad delectationem, non nobilitas urbis ad cognitionem, non denique labor ipse ad quietem; postremo signa et tabulas ceteraque ornamenta Graecorum oppidorum, quae ceteri tellenda esse arbitrantur, ea sibi ille ne visenda quidem existimavit.

Itaque omnes nunc in eis locis Cn. Pompeium sicut aliquem non ex hac urbe missum, sed de caelo delapsum intuentur. Nunc denique incipiunt credere fuisse homines Romanos hac quondam continentia, quod iam nationibus exteris incredibile ac falso memoriae proditum videbatur. Nunc imperi vestri splendor illis gentibus lucem adferre coepit. Nunc intellegunt non sine causa maiores suos, tum cum ea temperantia magistratus habebamus, servire populo Romano quam imperare aliis maluisse. iam vero ita faciles aditus ad eum privatorum, ita liberae querimonia de aliorum iniuriis esse dicuntur, ut is, qui dignitate principibus excellit, facilitate infimis par esse videatur.

iam quantum consilio, quantum dicendi gravitate et copia valeat,—in quo ipso inest quaedam dignitas imperatoria,—vos, Quirites, hoc ipso ex loco saepe cognovistis. Fidem vero eius quantam inter socios existimari putatis, quam hostes omnes omnium generum sanctissimam iudicarint? Humanitate iam tanta est, ut difficile dictu sit utrum hostes magis virtutem eius pugnantes timuerint, an mansuetudinem victi dilexerint. Et quisquam dubitabit quin huic hoc tantum bellum transmittendum sit, qui ad omnia nostrae memoriae bella conficienda divino quodam consilio natus esse videatur?

Et quoniam auctoritas quoque in bellis administrandis multum atque in imperio militari valet, certe nemini dubium est quin ea re idem ille imperator plurimum possit. Vehementer autem pertinere ad bella administranda quid hostes, quid socii de imperatoribus nostris existiment quis ignorat, cum sciamus homines in tantis rebus, ut aut contemnant aut metuant aut oderint aut ament, opinione non minus et fama quam aliqua ratione certa commoveri? Quod igitur nomen umquam in orbe terrarum clarius fuit? cuius res gestae pares? de quo homine vos,—id quod maxime facit auctoritatem,—tanta et tam praeclara iudicia fecistis?

An vero ullam usquam esse oram tam desertam putatis, quo non illius diei fama pervaserit, cum universus populus Romanus, referto foro completisque omnibus templis ex quibus hic locus conspici potest, unum sibi ad commune omnium gentium bellum Cn. Pompeium imperatorem deposcit? Itaque—ut plura non dicam, neque aliorum exemplis confirmem quantum [huius] auctoritas valeat in bello—ab eodem Cn. Pompeio omnium rerum egregiarum exempla sumantur: qui quo die a vobis maritimo bello praepositus est imperator, tanta repente vilitas annonae ex summa inopia et caritate rei frumentariae consecuta est unius hominis spe ac nomine, quantum vix in summa ubertate agrorum diuturna pax efficere potuisset.

iam accepta in Ponto calamitate ex eo proelio, de quo vos paulo ante invitus admonui,—cum socii pertimuissent, hostium opes animique crevissent, satis firmum praesidium provincia non haberet,—amisissetis Asiam, Quirites, nisi ad ipsum discrimen eius temporis divinitus Cn. Pompeium ad eas regiones fortuna populi Romani attulisset. Huius adventus et Mithridatem insolita inflammatum victoria continuit, et Tigranem magnis copiis minitantem Asiae retardavit. Et quisquam dubitabit quid virtute perfecturus sit, qui tantum auctoritate perfecerit? aut quam facile imperio atque exercitu socios et vectigalia conservaturus sit, qui ipso nomine ac rumore defenderit?

Age vero, illa res quantam declarat eiusdem hominis apud hostis populi Romani autoritatem, quod ex locis tam longinquis tamque diversis tam brevi tempore omnes huic se uni dediderunt? quod a communi Cretensium legati, cum in eorum insula noster imperator exercitusque esset, ad Cn. Pompeium in ultimas prope terras venerunt, eique se omnis Cretensium civitates dedere velle dixerunt? Quid? idem iste Mithridates nonne ad eundem Cn. Pompeium legatum usque in Hispaniam misit? eum quem Pompeius legatum semper iudicavit, ei quibus erat [semper] molestum ad eum potissimum esse missum, speculatorem quam legatum iudicari maluerunt. Potestis igitur iam constituere, Quirites, hanc auctoritatem, multis postea rebus gestis magnisque vestris iudiciis amplificatam, quantum apud illos reges, quantum apud exteras nationes valituram esse existimetis.

Reliquum est ut de felicitate (quam praestare de se ipso nemo potest, meminisse et commemorare de altero possumus, sicut aequum est homines de potestate deorum) timide et pauca dicamus. Ego enim sic existimo: Maximo, Marcello, Scipioni, Mario, et ceteris magnis imperatoribus non solum propter virtutem, sed etiam propter fortunam saepius imperia mandata atque exercitus esse commissos. Fuit enim profecto quibusdam summis viris quaedam ad amplitudinem et ad gloriam et ad res magnas bene gerendas divinitus adiuncta fortuna. De huius autem hominis felicitate, de quo nunc agimus, hac utar moderatione dicendi, non ut in illius potestate fortunam positam esse dicam, sed ut praeterita meminisse, reliqua sperare videamur, ne aut invisa dis immortalibus oratio nostra aut ingrata esse videatur.

Itaque non sum praedicaturus quantas ille res domi militiae, terra marique, quantaque felicitate gesserit; ut eius semper voluntatibus non modo cives adsenserint, socii obtemperarint, hostes obedierint, sed etiam venti tempestatesque obsecundarint: hoc brevissime dicam, neminem umquam tam impudentem fuisse, qui ab dis immortalibus tot et tantas res tacitus auderet optare, quot et quantas di immortales ad Cn. Pompeium detulerunt. Quod ut illi proprium ac perpetuum sit, Quirites, cum communis solutis atque imperi tum ipsius hominis causa, sicuti facitis, velle et optare debetis.

Qua re,—cum et bellum sit ita necessarium ut neglegi non possit, ita magnum ut accuratissime sit administrandum; et cum ei imperatorem praeficere possitis, in quo sit eximia belli scientia, singularis virtus, clarissima auctoritas, egregia fortuna,—dubitatis Quirites, quin hoc tantum boni, quod vobis ab dis immortalibus oblatum et datum est, in rem publicam conservandam atque amplificandam conferatis?

Quod si Romae Cn. Pompeius privatus esset hoc tempore, tamen ad tantum bellum is erat deligendus atque mittendus: nunc cum ad ceteras summas utilitates haec quoque opportunitas adiungatur, ut in eis ipsis locis adsit, ut habeat exercitum, ut ab eis qui habent accipere statim possit, quid exspectamus? aut cur non dicibus dis immortalibus eidem, cui cetera summa cum salute rei publicae commissa sunt, hoc quoque bellum regium committamus?

At enim vir clarissimus, amantissimus rei publicae, vestris beneficiis amplissimis adfectus, Q. Catulus, itemque summis ornamentis honoris, fortunae, virtutis, ingeni praeditus, Q. Hortensius, ab hac ratione dissentiunt. Quorum ego auctoritatem apud vos multis locis plurimum valuisse et valere oportere confiteor; sed in hac causa, tametsi cognoscitis auctoritates contrarias virorum fortissimorum et clarissimorum, tamen omissis auctoritatibus ipsa re ac ratione exquirere possumus veritatem, atque hoc facilius, quod ea omnia quae a me adhuc dicta sunt, eidem isti vera esse concedunt,—et necessarium bellum esse et magnum, et in uno Cn. Pompeio summa esse omnia.

Quid igitur ait Hortensius? Si uni omnia tribuenda sint, dignissimum esse Pompeium, sed ad unum tamen omnia deferri non oportere. Obsolevit iam ista oratio, re multo magis quam verbis refutata. Nam tu idem, Q. Hortensi, multa pro tua summa copia ac singulari facultate dicendi et in senatu contra virum fortem, A. Gabinium, graviter ornateque dixisti, cum is de uno imperatore contra praedones constituendo legem promulgasset, et ex hoc ipso loco permuta item contra eam legem verba fecisti.

Quid? tum (per deos immortalis!) si plus apud populum Romanum auctoritas tua quam ipsius populi Romani salus et vera causa valuisset, hodie hanc gloriam atque hoc orbis terrae imperium teneremus? An tibi tum imperium hoc esse videbatur, cum populi Romani legati quaestores praetoresque capiebantur? cum ex omnibus provinciis commeatu et privato et publico prohibebamur? cum ita clausa nobis erant maria omnia, ut neque privatam rem transmarinam neque publicam iam obire possemus?

Quae civitas antea umquam fuit,—non dico Atheniensium, quae satis late quondam mare tenuisse dicitur; non Karthaginiensium, qui permultum classe ac maritimis rebus valuerunt; non Rhodiorum, quorum usque ad nostram memoriam disciplina navalis et gloria remansit,—sed quae civitas umquam antea tam tenuis, quae tam parva insula fuit, quae non portus suos et agros et aliquam partem regionis atque orae maritimae per se ipsa defenderet? At (hercule) aliquot annos continuos ante legem Gabiniam ille populus Romanus, cuius usque ad nostram memoriam nomen invictum in navalibus pugnis permanserit, magna ac multo maxima parte non modo utilitatis, sed dignitatis atque imperi caruit.

Nos, quorum maiores Antiochum regem classe Persenque superarunt, omnibus navalibus pugnis Karthaginiensis, homines in maritimis rebus exercitatissimos paratissimosque, vicerunt, ei nullo in loco iam praedonibus pares esse poteramus: nos, qui antea non modo Italiam tutam habebamus, sed omnis socios in ultimis oris auctoritate nostri imperi salvos praestare poteramus,—tum cum insula Delos, tam procul a nobis in Aegaeo mari posita, quo omnes undique cum mercibus atque oneribus commeabant, referta divitiis, parva, sine muro, nihil timebat,—eidem non modo provinciis atque oris Italiae maritimis ac portubus nostris, sed etiam Appia iam via carebamus; et eis temporibus non pudebat magistratus populi Romani in hunc ipsum locum escendere, cum eum nobis maiores nostri exuviis nauticis et classium spoliis ornatum reliquissent.

Bono te animo tum, Q. Hortensi, populus Romanus et ceteros qui erant in eadem sententia, dicere existimavit ea quae sentiebatis: sed tamen in salute communi idem populus Romanus dolori suo maluit quam auctoritati vestrae obtemperare. Itaque una lex, unus vir, unus annus non modo nos illa miseria ac turpitudine liberavit, sed etiam effecit, ut aliquando vere videremur omnibus gentibus ac nationibus terra marique imperare.

Quo mihi etiam indignius videtur obtrectatum esse adhuc,—Gabinio dicam anne Pompeio, an utrique, id quod est verius?—ne legaretur A. Gabinius Cn. Pompeio expetenti ac postulanti. Utrum ille, qui postulat ad tantum bellum legatum quem velit, idoneus non est qui impetret, cum ceteri ad expilandos socios diripiendasque provincias quos voluerunt legatos eduxerint; an ipse, cuius lege salus ac dignitas populo Romano atque omnibus gentibus constituta est, expers esse debet gloriae eius imperatoris atque eius exercitus, qui consilio ipsius ac periculo est constitutus?

An C. Falcidius, Q. Metellus, Q. Caelius Latiniensis, Cn. Lentulus, quos omnis honoris causa nomino, cum tribuni plebi fuissent, anno proximo legati ese potuerunt: in uno Gabinio sunt tam diligentes, qui in hoc bello, quod lege Gabinia geritur, in hoc imperatore atque exercitu, quem per vos ipse constituit, etiam praecipuo iure esse deberet? De quo legando consules spero ad senatum relaturos. Qui si dubitabunt aur gravabuntur, ego me profiteor relaturum. Neque me impediet cuiusquam inimicum edictum, quo minus vobis fretus vestrum ius beneficiumque defendam; neque praeter intercessionem quicquam audiam, de qua (ut arbitror) isti ipsi, qui minantur, etiam atque etiam quid liceat considerabunt. Mea quidem sentenia, Quirites, unus A. Gabinius belli maritimi rerumque gestarum Cn. Ponpeio socius ascribitur, propterea quod alter uni illud bellum suscipiendum vestris suffragiis detulit, alter delatum susceptumque confecit.

Reliquum est ut de Q. Catuli auctoritate et sententia dicendum esse videatur. Qui cum ex vobis quaereret, si in uno Cn. Pompeio omnia poneretis, si quid eo factum esset, in quo spem essetis habituri,—cepit magnum suae virtutis fructum ac dignitatis, cum omnes una prope voce in [eo] ipso vos spem habituros esse dixistis. Etenim talis est vir, ut nulla res tanta sit ac tam difficilis, quam ille non et consilio regere et integritate tueri et virtute conficere possit. Sed in hoc ipso ab eo vehementissime dissentio; quod, quo minus certa est hominum ac minus diuturna vita, hoc magis res publica, dum per deos immortalis licet, frui debet summi viri vita atque virtute.

‘At enim ne quid novi fiat contra exempla atque instituta maiorum.’ Non dicam hoc loco maiores nostros semper in pace consuetudini, in bello utilitati paruisse; semper ad novos casus temporum novorom consiliorum rationes adcommodasse: non dicam duo bella maxima, Punicum atque Hispaniense, ab uno imperatore esse confecta, duasque urbis potentissimas, quae huic imperio maxime minitabantur, Karthaginem atque Numantiam, ab eodem Scipione esse deletas: non commemorabo nuper ita vobis patribusque vestris esse visum, ut in uno C. Mario spes imperi poneretur, ut idem cum iugurtha, idem cum Cimbris, idem cum Teutonis bellum administraret.

In ipso Cn. Pompeio, in quo novi constitui nihil volt Q. Catulus, quam multa sint nova summa Q. Catuli voluntate constituta recordamini. Quid tam novum quam adulescentulum privatum exercitum difficili rei publicae temporare conficere? Confecit. Huic praeesse? Praefuit. Rem optime ductu suo gerere? Gessit. Quid tam praeter consuetudinem quam homini peradulescenti, cuius aetas a senatorio gradu longe abesset, imperium atque exercitum dari, Siciliam permitti, atque Africam bellumque in ea provincia administrandum? Fuit in his provinciis singulari innocentia, gravitate, virtute: bellum in Africa maximum confecit, victorem exercitum deportavit. Quid vero tam inauditum quam equitem Romanum triumphare? At eam quoque rem populus Romanus non modo vidit, sed omnium etiam studio visendam et concelebrandam putavit.

Quid tam inusitatum quam ut, cum duo consules clarissimi fortissimique essent, eques Romanus ad bellum maximum formidolosissimumque pro consule mitteretur? Missus est. Quo quidem tempore, cum esset non nemo in senatu qui diceret ’ non oportere mitti hominem privatum pro consule,’ L. Philippus dixisse dicitur non se illum sua sententia pro consule, sed pro consulibus mittere. Tanta in eo rei publicae bene gerendae spes constituebatur, ut duorum consulum munus unius adulescentis virtuti committeretur. Quid tam singulare quam ut ex senatus consuto legibus solutus consul ante fieret, quam ullum alium magistratum per leges capere licuisset? quid tam incredibile quam ut iterum eques Romanus ex senatus consulto triumpharet? Quae in omnibus hominibus nova post hominum memoriam constituta sunt, ea tam multa non sunt quam haec, quae in hoc uno homine videmus.

Atque haec tot exempla, tanta ac tam nova, profecta sunt in eundem hominem a Q. Catuli atque a ceterorum eiusdem dignitatis amplissimorum hominum auctoritate. Qua re videant ne sit periniquum et non ferundum, illorum auctoritatem de Cn. Pompei dignitate a vobis comprobatam semper esse, vestrum ab illis de eodem homine iudicium populique Romani auctoritatem improbari; praesertim cum iam suo iure populus Romanus in hoc homine suam auctoritatem vel contra omnis qui dissentiunt possit defendere, propterea quod, isdem istis reclamantibus, vos unum illum ex omnibus delegistis quem bello praedonum praeponeretis.

Hoc si vos temere fecistis, et rei publicae parum consuluistis, recte isti studia vestra suis consiliis regere conantur. Sin autem vos plus tum in re publica vidistis, vos eis repugnantibus per vosmet ipsos dignitatem huic imperio, salutem orbi terrarum attulistis, aliquando isti principes et sibi et ceteris populi Romani universi auctoritati parendum esse fateantur. Atque in hoc bello Asiatico et regio non solum militaris illa virtus, quae est in Cn. Pompeio singularis, sed aliae quoque virtutes animi magnae et multae requiruntur. Difficile est in Asia, Cilicia, Syria regnisque interiorum nationum ita versari nostrum imperatorem, ut nihil nisi de hoste ac de laude cogitet. Deinde etiam si qui sunt pudore ac temperantia moderatiores, tamen eos esse talis propter multitudinem cupidiorum hominum nemo arbitratur.

Difficile est dictu, Quirites, quanto in odio simus apud exteras nationes propter eorum, quos ad eas per hos annos cum imperio misimus, libidines et iniurias. Quod enim fanum putatis in illis terris nostris magistratibus religiosum, quam civitatem sanctam, quam domum satis clausam ac munitam fuisse? Urbes iam locupletes et copiosae requiruntur, quibus causa belli propter diripiendi cupiditatem inferatur.

Libenter haec coram cum Q. Catulo et Q. Hortensio, summis et clarissimis viris, disputarem. Noverunt enim sociorum volnera, vident eorum calamitates, querimonias audiunt. Pro sociis vos contra hostis exercitum mittere putatis, an hostium simulatione contra socios atque amicos? Quae civitas est in Asia quae non modo imperatoris aut legati, sed unius tribuni militum animos ac spiritus capere possit? Qua re, etiam si quem habetis qui conlatis signis exercitus regios superare posse videatur, tamen nisi erit idem, qui se a pecuniis sociorum, qui ab eorum coniugibus ac liberis, qui ab ornamentis fanorum atque oppidorum, qui ab auro gazaque regia manus, oculos, animum cohibere possit, non erit idoneus qui ad bellum Asiaticum regiumque mittatur.

Ecquam putatis civitatem pacatam fuisse quae locuples sit? ecquam esse locupletem quae istis pacata esse videatur? Ora maritima, Quirites, Cn. Pompeium non solum propter rei militaris gloriam, sed etiam propter animi continentiam requisivit. Videbat enim praetores locupletari quot annis pecunia publica praeter paucos; neque eos quicquam aliud adsequi, classium nomine, nisi ut detrimentis accipiendis maiore adfici turpitudine videremur. Nunc qua cupiditate homines in provincias, quibus iacturis et quibus condicionibus proficiscantur, ignorant videlicet isti, qui ad unum deferenda omnia esse non arbitrantur? Quasi vero Cn. Pompeium non cum suis virtutibus tum etiam alienis vitiis magnum esse videamus.

Qua re nolite dubitare quin huic uni credatis omnia, qui inter tot annos unus inventus sit, quem socii in urbis suas cum exercitu venisse gaudeant. Quod si auctoritatibus hanc causam, Quirites, confirmandam putatis, est vobis auctor vir bellorum omnium maximarumque rerum peritissimus, P. Servilius, cuius tantae res gestae terra marique exstiterunt, ut cum de bello deliberetis, auctor vobis gravior nemo esse debeat; est C. Curio, summis vestris beneficiis maximisque rebus gestis, summo ingenio et prudentia praeditus; est Cn. Lentulus, in quo omnes pro amplissimis vestris honoribus summum consilium, summam gravitatem esse cognovistis; est C. Cassius, integritate, virtute, constantia singulari. Que re videte ut horum auctoritatibus illorum orationi qui dissentiunt, respondere posse videamur.

Que cum ita sint, C. Manlili, primum istam tuam et legem et voluntatem et sententiam laudo vehementissimeque comprobo: deinde te hortor, ut auctore populo Romano maneas in sententia, neve cuiusquam vim aut minas pertimescas. Primum in te satis esse animi perseverantiaeque arbitror: deinde cum tantam multitudinem cum tanto studio adesse videamus, quantam iterum nunc in eodem homine praeficiendo videmus, quid est quod aut de re aut de perficiendi facultate dubitemus? Ego autem quicquid est in me studi, consili, laboris, ingeni, quicquid hoc beneficio populi Romani atque hac potestate praetoria, quicquid auctoritate, fide, constantia possum, id omne ad hanc re conficiendam tibi et populo Romano polliceor ac defero:

testorque omnis deos, et eos maxime qui huic loco temploque praesident, qui omnium mentis eorum qui ad rem publicam adeunt maxime perspiciunt, me hoc neque rogatu facere cuiusquam, neque quo Cn. Pompei gratiam mihi per hanc causam conciliari putem, neque quo mihi ex cuiusquam amplitudine aut praesidia periculis aut adiumenta honoribus quaeram; propterea quod pericula facile, ut hominem praestare oportet, innocentia tecti repellemus, honorem autem neque ab uno neque ex hoc loco, sed eadem illa nostra laboriosissima ratione vitae, si vestra voluntas feret, consequemur.

Quam ob rem quicquid in hac causa mihi susceptum est, Quirites, id ego omne me rei publicae causa suscepisse confirmo; tantumque abest ut aliquam mihi bonam gratiam quaesisse videar, ut multas me etiam simultates partim obscuras, partim apertas intellegam mihi non necessarias, vobis non inutilis suscepisse. Sed ego me hoc honore praeditum, tantis vestris beneficiis adfectum statui, Quirites, vestram voluntatem et rei publicae dignitatem et salutem provinciarum atque sociorum meis omnibus commodis et rationibus praeferre oportere.

Pro Lege Manilia
https://leadership.qubitpi.org/posts/pro-lege-manilia/
Author
【烬火】胡桃
Published at
2024-08-03
\ No newline at end of file diff --git a/posts/project-management/index.html b/posts/project-management/index.html index cb66e81fc..1dd54128f 100644 --- a/posts/project-management/index.html +++ b/posts/project-management/index.html @@ -1 +1 @@ -Studying the Science of Project Management - Jiaqi's Leadership Blog
1749 words
9 minutes
Studying the Science of Project Management

Overview#

Project management is the process of supervising the work of a team to achieve all project goals within the given constraints1. This information is usually described in project documentation, created at the beginning of the development process. The primary constraints are scope, time and budget. The secondary challenge is to optimize the allocation of necessary inputs and apply them to meet predefined objectives.

A project is a temporary and unique endeavor designed to produce a product, service or result with a defined beginning and end (usually time-constrained, often constrained by funding or staffing) undertaken to meet unique goals and objectives, typically to bring about beneficial change or added value.2 The temporary nature of projects stands in contrast with business as usual (or operations), which are repetitive, permanent or semi-permanent functional activities to produce products or services.

TIP
  • “Temporary” means that the project has an end date. “Unique” means that the project’s end result is different from the results of other functions of the organization1
  • This “temporary” nature contrasts with the idea of Infinite Game
  • But since an infinite-game must be conducted by every concrete steps, we can consider an instance of project management an atomic unity of such step; just as how the book of Infinite Game stats:

Idealistic - big, bold and ultimately unachievable3

When the signers of the Declaration of Independence affirmed that all men “are created equal” and “endowed … with certain unalienable Rights,” they were referring primarily to white, Anglo-Saxon, Protestant men. Almost immediately, however, there were efforts to advance a more expansive and inclusive understanding of the ideal. During the Revolutionary War, for example, George Washington forbade anti-Catholic organizing in his armies and regularly attended Catholic services to model the behavior he expected of his men. Nearly a hundred years later, the Civil War brought about an end to slavery, and soon after that the Fourteenth Amendment granted citizenship and equal rights to African Americans and former slaves. The women’s suffrage movement took another step toward America’s Just Cause when it gained the vote for women in 1920. The Civil Rights Act of 1964 and the Voting Rights Act of 1965, which protected African Americans and others from discrimination, were two more steps. The nation took yet another step in 2015 with the Supreme Court decision in Obergefell v. Hodges, which extended the protections guaranteed by the Fourteenth Amendment to gay marriage.

Indeed, the abolition of slavery, women’s suffrage, the Civil Rights Act and gay rights are some of the big steps the nation has taken to realize its Cause. And though each of those movements, infinite in their own right, are still far from complete, they still represent clear steps along the nation’s march toward the ideals enshrined in the Declaration of Independence. It is important to celebrate our victories, but we cannot linger on them. For the Infinite Game is still going and there is still much work to be done. Those victories must serve as milestones of our progress toward an idealized future. They give us a glimpse of what our idealized future can look like and serve as an inspiration to keep moving forward.

This is what the idealized journey of a Just Cause feels like - no matter how much we have achieved, we always feel we have further to go. Think of a Just Cause like an iceberg. All we ever see is the tip of that iceberg, the things we have already accomplished. In an organization, it is often the founders and early contributors who have the clearest vision of the unknown future, of what, to everyone else, remains unseen. The clearer the words of the Just Cause, the more likely they will attract and invite the innovators and early adopters, those willing to take the first risks to advance something that exists almost entirely in their imaginations. With each success, a little more of the iceberg is revealed to others; the vision becomes more visible to others. And when others can see a vision become something real, skeptics become believers and even more people feel inspired by the possibility and willingly commit their time and energy, ideas and talents to help advance the Cause further. But no matter how much of the iceberg we can see, our leaders have the responsibility to remind us that the vast majority still lies unexplored. For no matter how much success we may enjoy, the Just Cause for which we are working lies ahead and not behind.

For this, we must define the end of a project as the start of the next continuing effort and make sure each managed project contributed to the infinite game of an organization

In addition, a project must support the higher vision of the organization and the project manager must understand why the project is being created and what ist purpose in the organization1. Specifically, the larger entities, organizations, companies, or communities wil have direct influence over the project itself illustrated below:

  • Why is the project important to our organization?
  • What is the project purpose?
  • How can the work be accomplished?

Organizational Pyramid

History#

Until 1900, civil engineering projects were generally managed by creative architects, engineers, and master builders themselves. In the 1950s, organizations started to apply project-management tools and techniques more systematically to complex engineering projects.

NOTE

Project management is not needed for simple project

As a discipline, project management developed from several fields of application including civil construction, engineering, and heavy defense activity.

The 1950s marked the beginning of the modern project management era

Defining a Project (Projects vs. Operations)#

When we look at marketing, sales, manufacturing, and so on. These activities are day-to-day works that goes on in an organization. They are already on the track of “infinite-game”. They are operations, not projects. The sign of a project, however, is that it has an end date and is unique from these activities. Some examples of projects include

  • Designing a new product or service
  • Converting from one computer application to another
  • Building a new warehouse
  • Moving from one building to another
  • Organizing a political campaign
  • Designing and building a new airplane

The end results of projects can result in endless operations

Defining a Project
  • A project is all about initiatives or changes
  • A project is a temporary endeavor undertaken to create a unique product or service.
  • A project eventually ends

All projects begin as a concept, progress through iterative implementation, and completes by fulfilling the initial need.

Types of Project Management#

Organizations fall into one of three models:

  • Completing projects for others These entities swoop into other organizations and complete the project work based on specifications, details, and specification documents. Classical examples of these types of organizations include consultants and technology integration companies.
  • Completing projects internally through a system Usually SaaS
  • Completing projects as needed Staggering governmental or financial institutions which really doesn’t do projects as much

Defining Project Management#

Project management is the supervision and control of the work required to complete the project vision and is comprised of 9 knowledge areas:

  1. Project Integration Management
  2. Project Scope Management
  3. Project Time Management
  4. Project Cost Management
  5. Project Quality Management
  6. Project Human Resource Management
  7. Project Communications Management
  8. Project Risk Management
  9. Project Procurement Management

It is important to keep in mind that those 9 are not separate but are disolved into the 5 PM processes

Project Management Processes (Project Life Cycle)#

  1. Initiating

    • Defining needs, such as

      • Reducing costs
      • Increasing revenues
      • Eliminating wastes
      • Increasing productivity/efficiency
      • Solving a business/functional problem
      • Taking advantages of market opportunities
      • etc.
    • Project Feasibility Study for the needs (worthiness, cost, time, etc.)

  2. Planning

    • scope: defining deliverables - what’s going to be implemented, what’s not
    • schedule
    • cost
    • defined acceptance level of quality in the end
  3. Executing & Controlling: Overseeing the implementation of project team and reporting progress to the stakeholders

    Knowing Stakeholders
    • Every stakeholder expects differently so it’s crucial to know each one of them and their requests
    • Project manager must be able to meet the customer’s expectation first and then manage expectations from multiple stakeholders at the same time
  4. Closing

Skills of a Project Manager#

  • Communication Skill/Active Listening
  • Organizing a Project: ensuring thorough, fast, and reliable access to project data
  • Negotiation Skills
  • Team Leadership: manage things and lead people

Executing Project Management#

  • Break projects into phases, each of which comes with a deliverable (or milestone) at the end

  • Verify each deliverable before continuing into the next phase:

    • Sign-offs from the customer
    • Regulatory inspections and audits
    • Quality metrics
    • Performance metrics
    • Security audits
    • etc.

Project Management is Highly Coupled with Organization’s Environment#

Organizations are structured into one of 6 models. Project management in them are very different:

  1. Functional Organizations (Classical): Functional organizations do complete projects, but these projects are specific to the function of the department the project falls into. For example, the TI Department could implement new software for the Finance Department. The role of the TI Department is separate from the Finance Department, but the coordination between the two functional departments would be evident. Communication between departments flows through functional managers down to the project team. The figure below depicts the relationship between business departments and the flow of communication between projects and departments. Project managers of each belonging Project team in functional organizations have the following attributes:

    • Little power
    • Little autonomy
    • Report directly to a functional manager
    • The project manager may be known as a Project Coordinator or Team Leader
    • The project manager’s role is part-time
    • The project team is part-time
    • The project manager may have little or no administrative staff to expedite the project management activities

    Functional Organization

    CAUTION

    This organizing of specialization by departments leads to operational efficiency, where employees become specialists within their own realm of expertise. Such organization also has the downside of rigid, slow, and inflexible communication and execution. A functional organization is best suited as a producer of standardized goods and services at large volume and low cost.

  2. Matrix Structures: The matrix structure is a mix of functional and decentralized forms in order to remedy the weakness of the former. An example would be a company that produces 2 products, “product A” and “product B”. Using the matrix structure, this company would organize functions within the company as follows: “product A” sales department, “product A” customer service department, “product A” accounting, “product B” sales department, “product B” customer service department, “product B” accounting department.

    • Weak Matrix (strongly functional): A project manager with only limited authority is assigned to oversee the cross-functional aspects of the project. The functional managers maintain control over their resources and project areas.
    • Balanced Matrix: A project manager is assigned to oversee the project. Power is shared equally between the project manager and the functional managers
    • String Matrix (strongly decentralized): A project manager is primarily responsible for the project. Functional managers provide technical expertise and assign resources as needed.
  3. Projectized Structure

  4. Hybrid Structure mixing the structures above

Footnotes#

  1. Phillips, Joseph (2004). PMP Project Management Professional Study Guide. McGraw-Hill/Osborne. p. 354. ISBN 0072230622. 2 3

  2. Nokes, Sebastian; Kelly, Sean (2007). The Definitive Guide to Project Management: The Fast Track to Getting the Job Done on Time and on Budget. Pearson Education. Prentice Hall Financial Times. ISBN 9780273710974.

  3. Sinek, Simon (2019). The Infinite Game. Portfolio/Penguin. ISBN 9780735213500.

Studying the Science of Project Management
https://leadership.qubitpi.org/posts/project-management/
Author
【烬火】胡桃
Published at
2024-11-29
\ No newline at end of file +Studying the Science of Project Management - Jiaqi's Leadership Blog
1749 words
9 minutes
Studying the Science of Project Management

Overview#

Project management is the process of supervising the work of a team to achieve all project goals within the given constraints1. This information is usually described in project documentation, created at the beginning of the development process. The primary constraints are scope, time and budget. The secondary challenge is to optimize the allocation of necessary inputs and apply them to meet predefined objectives.

A project is a temporary and unique endeavor designed to produce a product, service or result with a defined beginning and end (usually time-constrained, often constrained by funding or staffing) undertaken to meet unique goals and objectives, typically to bring about beneficial change or added value.2 The temporary nature of projects stands in contrast with business as usual (or operations), which are repetitive, permanent or semi-permanent functional activities to produce products or services.

TIP
  • “Temporary” means that the project has an end date. “Unique” means that the project’s end result is different from the results of other functions of the organization1
  • This “temporary” nature contrasts with the idea of Infinite Game
  • But since an infinite-game must be conducted by every concrete steps, we can consider an instance of project management an atomic unity of such step; just as how the book of Infinite Game stats:

Idealistic - big, bold and ultimately unachievable3

When the signers of the Declaration of Independence affirmed that all men “are created equal” and “endowed … with certain unalienable Rights,” they were referring primarily to white, Anglo-Saxon, Protestant men. Almost immediately, however, there were efforts to advance a more expansive and inclusive understanding of the ideal. During the Revolutionary War, for example, George Washington forbade anti-Catholic organizing in his armies and regularly attended Catholic services to model the behavior he expected of his men. Nearly a hundred years later, the Civil War brought about an end to slavery, and soon after that the Fourteenth Amendment granted citizenship and equal rights to African Americans and former slaves. The women’s suffrage movement took another step toward America’s Just Cause when it gained the vote for women in 1920. The Civil Rights Act of 1964 and the Voting Rights Act of 1965, which protected African Americans and others from discrimination, were two more steps. The nation took yet another step in 2015 with the Supreme Court decision in Obergefell v. Hodges, which extended the protections guaranteed by the Fourteenth Amendment to gay marriage.

Indeed, the abolition of slavery, women’s suffrage, the Civil Rights Act and gay rights are some of the big steps the nation has taken to realize its Cause. And though each of those movements, infinite in their own right, are still far from complete, they still represent clear steps along the nation’s march toward the ideals enshrined in the Declaration of Independence. It is important to celebrate our victories, but we cannot linger on them. For the Infinite Game is still going and there is still much work to be done. Those victories must serve as milestones of our progress toward an idealized future. They give us a glimpse of what our idealized future can look like and serve as an inspiration to keep moving forward.

This is what the idealized journey of a Just Cause feels like - no matter how much we have achieved, we always feel we have further to go. Think of a Just Cause like an iceberg. All we ever see is the tip of that iceberg, the things we have already accomplished. In an organization, it is often the founders and early contributors who have the clearest vision of the unknown future, of what, to everyone else, remains unseen. The clearer the words of the Just Cause, the more likely they will attract and invite the innovators and early adopters, those willing to take the first risks to advance something that exists almost entirely in their imaginations. With each success, a little more of the iceberg is revealed to others; the vision becomes more visible to others. And when others can see a vision become something real, skeptics become believers and even more people feel inspired by the possibility and willingly commit their time and energy, ideas and talents to help advance the Cause further. But no matter how much of the iceberg we can see, our leaders have the responsibility to remind us that the vast majority still lies unexplored. For no matter how much success we may enjoy, the Just Cause for which we are working lies ahead and not behind.

For this, we must define the end of a project as the start of the next continuing effort and make sure each managed project contributed to the infinite game of an organization

In addition, a project must support the higher vision of the organization and the project manager must understand why the project is being created and what ist purpose in the organization1. Specifically, the larger entities, organizations, companies, or communities wil have direct influence over the project itself illustrated below:

  • Why is the project important to our organization?
  • What is the project purpose?
  • How can the work be accomplished?

Organizational Pyramid

History#

Until 1900, civil engineering projects were generally managed by creative architects, engineers, and master builders themselves. In the 1950s, organizations started to apply project-management tools and techniques more systematically to complex engineering projects.

NOTE

Project management is not needed for simple project

As a discipline, project management developed from several fields of application including civil construction, engineering, and heavy defense activity.

The 1950s marked the beginning of the modern project management era

Defining a Project (Projects vs. Operations)#

When we look at marketing, sales, manufacturing, and so on. These activities are day-to-day works that goes on in an organization. They are already on the track of “infinite-game”. They are operations, not projects. The sign of a project, however, is that it has an end date and is unique from these activities. Some examples of projects include

  • Designing a new product or service
  • Converting from one computer application to another
  • Building a new warehouse
  • Moving from one building to another
  • Organizing a political campaign
  • Designing and building a new airplane

The end results of projects can result in endless operations

Defining a Project
  • A project is all about initiatives or changes
  • A project is a temporary endeavor undertaken to create a unique product or service.
  • A project eventually ends

All projects begin as a concept, progress through iterative implementation, and completes by fulfilling the initial need.

Types of Project Management#

Organizations fall into one of three models:

  • Completing projects for others These entities swoop into other organizations and complete the project work based on specifications, details, and specification documents. Classical examples of these types of organizations include consultants and technology integration companies.
  • Completing projects internally through a system Usually SaaS
  • Completing projects as needed Staggering governmental or financial institutions which really doesn’t do projects as much

Defining Project Management#

Project management is the supervision and control of the work required to complete the project vision and is comprised of 9 knowledge areas:

  1. Project Integration Management
  2. Project Scope Management
  3. Project Time Management
  4. Project Cost Management
  5. Project Quality Management
  6. Project Human Resource Management
  7. Project Communications Management
  8. Project Risk Management
  9. Project Procurement Management

It is important to keep in mind that those 9 are not separate but are disolved into the 5 PM processes

Project Management Processes (Project Life Cycle)#

  1. Initiating

    • Defining needs, such as

      • Reducing costs
      • Increasing revenues
      • Eliminating wastes
      • Increasing productivity/efficiency
      • Solving a business/functional problem
      • Taking advantages of market opportunities
      • etc.
    • Project Feasibility Study for the needs (worthiness, cost, time, etc.)

  2. Planning

    • scope: defining deliverables - what’s going to be implemented, what’s not
    • schedule
    • cost
    • defined acceptance level of quality in the end
  3. Executing & Controlling: Overseeing the implementation of project team and reporting progress to the stakeholders

    Knowing Stakeholders
    • Every stakeholder expects differently so it’s crucial to know each one of them and their requests
    • Project manager must be able to meet the customer’s expectation first and then manage expectations from multiple stakeholders at the same time
  4. Closing

Skills of a Project Manager#

  • Communication Skill/Active Listening
  • Organizing a Project: ensuring thorough, fast, and reliable access to project data
  • Negotiation Skills
  • Team Leadership: manage things and lead people

Executing Project Management#

  • Break projects into phases, each of which comes with a deliverable (or milestone) at the end

  • Verify each deliverable before continuing into the next phase:

    • Sign-offs from the customer
    • Regulatory inspections and audits
    • Quality metrics
    • Performance metrics
    • Security audits
    • etc.

Project Management is Highly Coupled with Organization’s Environment#

Organizations are structured into one of 6 models. Project management in them are very different:

  1. Functional Organizations (Classical): Functional organizations do complete projects, but these projects are specific to the function of the department the project falls into. For example, the TI Department could implement new software for the Finance Department. The role of the TI Department is separate from the Finance Department, but the coordination between the two functional departments would be evident. Communication between departments flows through functional managers down to the project team. The figure below depicts the relationship between business departments and the flow of communication between projects and departments. Project managers of each belonging Project team in functional organizations have the following attributes:

    • Little power
    • Little autonomy
    • Report directly to a functional manager
    • The project manager may be known as a Project Coordinator or Team Leader
    • The project manager’s role is part-time
    • The project team is part-time
    • The project manager may have little or no administrative staff to expedite the project management activities

    Functional Organization

    CAUTION

    This organizing of specialization by departments leads to operational efficiency, where employees become specialists within their own realm of expertise. Such organization also has the downside of rigid, slow, and inflexible communication and execution. A functional organization is best suited as a producer of standardized goods and services at large volume and low cost.

  2. Matrix Structures: The matrix structure is a mix of functional and decentralized forms in order to remedy the weakness of the former. An example would be a company that produces 2 products, “product A” and “product B”. Using the matrix structure, this company would organize functions within the company as follows: “product A” sales department, “product A” customer service department, “product A” accounting, “product B” sales department, “product B” customer service department, “product B” accounting department.

    • Weak Matrix (strongly functional): A project manager with only limited authority is assigned to oversee the cross-functional aspects of the project. The functional managers maintain control over their resources and project areas.
    • Balanced Matrix: A project manager is assigned to oversee the project. Power is shared equally between the project manager and the functional managers
    • String Matrix (strongly decentralized): A project manager is primarily responsible for the project. Functional managers provide technical expertise and assign resources as needed.
  3. Projectized Structure

  4. Hybrid Structure mixing the structures above

Footnotes#

  1. Phillips, Joseph (2004). PMP Project Management Professional Study Guide. McGraw-Hill/Osborne. p. 354. ISBN 0072230622. 2 3

  2. Nokes, Sebastian; Kelly, Sean (2007). The Definitive Guide to Project Management: The Fast Track to Getting the Job Done on Time and on Budget. Pearson Education. Prentice Hall Financial Times. ISBN 9780273710974.

  3. Sinek, Simon (2019). The Infinite Game. Portfolio/Penguin. ISBN 9780735213500.

Studying the Science of Project Management
https://leadership.qubitpi.org/posts/project-management/
Author
【烬火】胡桃
Published at
2024-11-29
\ No newline at end of file diff --git a/posts/reading-notes-critique-of-pure-reason/index.html b/posts/reading-notes-critique-of-pure-reason/index.html index e15bc641b..e633fdf18 100644 --- a/posts/reading-notes-critique-of-pure-reason/index.html +++ b/posts/reading-notes-critique-of-pure-reason/index.html @@ -1 +1 @@ -Reading Notes of "Critique of Pure Reason" - Jiaqi's Leadership Blog
678 words
3 minutes
Reading Notes of "Critique of Pure Reason"

Kant argues that our mathematical, physical, and quotidian knowledge of nature requires certain judgments that are “synthetic” rather than “analytic,” that is, going beyond what can be known solely in virtue of the contents of the concepts involved in them and the application of the logical principles of identity and contradiction to these concepts, and yet also knowable a priori, that is, independently of any particular experience since no particular experience could ever be sufficient to establish the universal and necessary validity of these judgments.

Kant agrees with Locke that we have no innate knowledge, that is, no knowledge of any particular propositions implanted in us by God or nature prior to the commencement of our individual experience. I2 But experience is the product both of external objects affecting our sensibility and of the operation of our cognitive faculties in response to this effect, and Kant’s claim is that we can have “pure” or a priori cognition of the contributions to experience made by the operation of these faculties themselves, rather than of the effect of external objects on us in experience. Kant divides our cognitive capacities into our receptivity to the effects of external objects acting on us and giving us sensations, through which these objects are given to us in empirical intuition, and our active faculty for relating the data of intuition by thinking them under concepts, which is called understanding, and forming judgments about them. This division is the basis for Kant’s division of the “Transcendental Doctrine of Elements” into the “Transcendental Aesthetic,” which deals with sensibility and its pure form, and the “Transcendental Logic,” which deals with the operations of the understanding and judgment as well as both the spurious and the legitimate activities of theoretical reason.

Transcendental Aesthetic#

Kant attempts to distinguish the contribution to cognition made by our receptive faculty of sensibility from that made solely by the objects that affect us, and argues that space and time are pure forms of all intuition contributed by our own faculty of sensibility, and therefore forms of which we can have a priori knowledge.

This is the basis for Kant’s resolution of the debate about space and time that had raged between the Newtonians, who held space and time to be self-subsisting entities existing independently of the objects that occupy them, and the Leibnizians, who held space and time to be systems of relations, conceptual constructs based on non-relational properties inhering in the things we think of as spatiotemporally related

Further Reading

The classical presentation of this dispute is in the correspondence between Leibniz and the Newtonian Samuel Clarke, published by Clarke in 1717 after Leibniz’s death the previous year; see H. G . Alexander, ed.,The Leibniz-Clarke Correspondence (Manchester: Manchester University Press, 1956).

Kant’s alternative to both of these positions is that space and time are neither subsistent beings nor inherent in things as they are in themselves, but are rather only forms of our sensibility, hence conditions under which objects of experience can be given at all and the fundamental principle of their representation and individuation

Kant’s thesis that space and time are pure forms of intuition leads him to the paradoxical conclusion that although space and time are empirically real, they are transcendentally ideal, and so are the objects given in them. Although the precise meaning of this claim remains subject to debate, in general terms it is the claim that it is only from the human standpoint that we can speak of space, time, and the spatiotemporality of the objects of experience, thus that we cognize these things not as they are in themselves but only as they appear under the conditions of our sensibility. This is Kant’s famous doctrine of transcendental idealism

Kant’s Transcendental Idealism#

Source

Henry E . Allison, Kant’s Transcendental Idealism, New Haven: Yale University Press, 1983 (CPR, Cambridge, p.706, Book Review)

  • Transcendental idealism is a metaphysical theory that affirms the uncognizability of the “real” (things in themselves) and relegates cognition to the purely subjective realm of representations (appearances).
  • The basic assumption is simply that the mind can acquire these materials only as aresult of being “affected” by things in themselves.
Reading Notes of "Critique of Pure Reason"
https://leadership.qubitpi.org/posts/reading-notes-critique-of-pure-reason/
Author
【烬火】胡桃
Published at
2024-07-29
\ No newline at end of file +Reading Notes of "Critique of Pure Reason" - Jiaqi's Leadership Blog
678 words
3 minutes
Reading Notes of "Critique of Pure Reason"

Kant argues that our mathematical, physical, and quotidian knowledge of nature requires certain judgments that are “synthetic” rather than “analytic,” that is, going beyond what can be known solely in virtue of the contents of the concepts involved in them and the application of the logical principles of identity and contradiction to these concepts, and yet also knowable a priori, that is, independently of any particular experience since no particular experience could ever be sufficient to establish the universal and necessary validity of these judgments.

Kant agrees with Locke that we have no innate knowledge, that is, no knowledge of any particular propositions implanted in us by God or nature prior to the commencement of our individual experience. I2 But experience is the product both of external objects affecting our sensibility and of the operation of our cognitive faculties in response to this effect, and Kant’s claim is that we can have “pure” or a priori cognition of the contributions to experience made by the operation of these faculties themselves, rather than of the effect of external objects on us in experience. Kant divides our cognitive capacities into our receptivity to the effects of external objects acting on us and giving us sensations, through which these objects are given to us in empirical intuition, and our active faculty for relating the data of intuition by thinking them under concepts, which is called understanding, and forming judgments about them. This division is the basis for Kant’s division of the “Transcendental Doctrine of Elements” into the “Transcendental Aesthetic,” which deals with sensibility and its pure form, and the “Transcendental Logic,” which deals with the operations of the understanding and judgment as well as both the spurious and the legitimate activities of theoretical reason.

Transcendental Aesthetic#

Kant attempts to distinguish the contribution to cognition made by our receptive faculty of sensibility from that made solely by the objects that affect us, and argues that space and time are pure forms of all intuition contributed by our own faculty of sensibility, and therefore forms of which we can have a priori knowledge.

This is the basis for Kant’s resolution of the debate about space and time that had raged between the Newtonians, who held space and time to be self-subsisting entities existing independently of the objects that occupy them, and the Leibnizians, who held space and time to be systems of relations, conceptual constructs based on non-relational properties inhering in the things we think of as spatiotemporally related

Further Reading

The classical presentation of this dispute is in the correspondence between Leibniz and the Newtonian Samuel Clarke, published by Clarke in 1717 after Leibniz’s death the previous year; see H. G . Alexander, ed.,The Leibniz-Clarke Correspondence (Manchester: Manchester University Press, 1956).

Kant’s alternative to both of these positions is that space and time are neither subsistent beings nor inherent in things as they are in themselves, but are rather only forms of our sensibility, hence conditions under which objects of experience can be given at all and the fundamental principle of their representation and individuation

Kant’s thesis that space and time are pure forms of intuition leads him to the paradoxical conclusion that although space and time are empirically real, they are transcendentally ideal, and so are the objects given in them. Although the precise meaning of this claim remains subject to debate, in general terms it is the claim that it is only from the human standpoint that we can speak of space, time, and the spatiotemporality of the objects of experience, thus that we cognize these things not as they are in themselves but only as they appear under the conditions of our sensibility. This is Kant’s famous doctrine of transcendental idealism

Kant’s Transcendental Idealism#

Source

Henry E . Allison, Kant’s Transcendental Idealism, New Haven: Yale University Press, 1983 (CPR, Cambridge, p.706, Book Review)

  • Transcendental idealism is a metaphysical theory that affirms the uncognizability of the “real” (things in themselves) and relegates cognition to the purely subjective realm of representations (appearances).
  • The basic assumption is simply that the mind can acquire these materials only as aresult of being “affected” by things in themselves.
Reading Notes of "Critique of Pure Reason"
https://leadership.qubitpi.org/posts/reading-notes-critique-of-pure-reason/
Author
【烬火】胡桃
Published at
2024-07-29
\ No newline at end of file diff --git a/posts/reading-notes-de-administrando-imperio/index.html b/posts/reading-notes-de-administrando-imperio/index.html index d0972cabe..7c187cf61 100644 --- a/posts/reading-notes-de-administrando-imperio/index.html +++ b/posts/reading-notes-de-administrando-imperio/index.html @@ -1 +1 @@ -Πρὸς τὸν ἴδιον υἱὸν αὐτοῦ Ῥωμανὸν - Jiaqi's Leadership Blog
126 words
1 minutes
Πρὸς τὸν ἴδιον υἱὸν αὐτοῦ Ῥωμανὸν

Error loading easter-roman-empire.png

1715 map of the Eastern Roman Empire under Constantine VII Porphyrogenitus’s reign in the 10th Century by Guillaume De L’Isle

Περί τών Πατζινακιτών, καί προς πόσα συμβάλλονται μετά τοΰ βασιλέως ‘Ρωμαίων είρηνεύοντες.#

‘Ψπολαμβάνω γάρ κατά πολύ συμφέρειν αεί τω βασιλεΐ ‘Ρωμαίων ειρήνην έ&έλειν έχειν μετά τοΰ έ&νους τών Πατζινακιτών καί φιλικάς προς αύτούς ποιεΐσ&αι συνθήκας τε καί σπονδάς καί άποστέλλειν κα&* έκαστον χρόνον έντεΰ&εν προς αύτούς άποκρισιάριον μετά ξενίων άρμο6νΡ ζόντων ] καί πρός τό έ&νος επιτηδείων καί άναλαμβάνεσ&αι έκεΐθεν 20 ομήρους, ήτοι δψιδας καί άποκρισιάριον, οΐτινες έν τη &εοφυλάκτω ταύτη πόλει μετά τοΰ καθ-υπουργοΰντος εις ταΰτα συνελεύσονται, καί βασιλικών εύεργεσιών καί φιλοτιμιών τών επαξίων πάντων τοΰ βασι λεύοντος άπολαύσουσιν.

Περί τών πατζινακιτών καί τών ‘Ρώς.#

‘Ότι καί οί ‘Ρώς διά σπουδής έχουσιν ειρήνην έχειν μετά τών Πατζινακιτών.

Πρὸς τὸν ἴδιον υἱὸν αὐτοῦ Ῥωμανὸν
https://leadership.qubitpi.org/posts/reading-notes-de-administrando-imperio/
Author
【烬火】胡桃
Published at
2024-08-02
\ No newline at end of file +Πρὸς τὸν ἴδιον υἱὸν αὐτοῦ Ῥωμανὸν - Jiaqi's Leadership Blog
126 words
1 minutes
Πρὸς τὸν ἴδιον υἱὸν αὐτοῦ Ῥωμανὸν

Error loading easter-roman-empire.png

1715 map of the Eastern Roman Empire under Constantine VII Porphyrogenitus’s reign in the 10th Century by Guillaume De L’Isle

Περί τών Πατζινακιτών, καί προς πόσα συμβάλλονται μετά τοΰ βασιλέως ‘Ρωμαίων είρηνεύοντες.#

‘Ψπολαμβάνω γάρ κατά πολύ συμφέρειν αεί τω βασιλεΐ ‘Ρωμαίων ειρήνην έ&έλειν έχειν μετά τοΰ έ&νους τών Πατζινακιτών καί φιλικάς προς αύτούς ποιεΐσ&αι συνθήκας τε καί σπονδάς καί άποστέλλειν κα&* έκαστον χρόνον έντεΰ&εν προς αύτούς άποκρισιάριον μετά ξενίων άρμο6νΡ ζόντων ] καί πρός τό έ&νος επιτηδείων καί άναλαμβάνεσ&αι έκεΐθεν 20 ομήρους, ήτοι δψιδας καί άποκρισιάριον, οΐτινες έν τη &εοφυλάκτω ταύτη πόλει μετά τοΰ καθ-υπουργοΰντος εις ταΰτα συνελεύσονται, καί βασιλικών εύεργεσιών καί φιλοτιμιών τών επαξίων πάντων τοΰ βασι λεύοντος άπολαύσουσιν.

Περί τών πατζινακιτών καί τών ‘Ρώς.#

‘Ότι καί οί ‘Ρώς διά σπουδής έχουσιν ειρήνην έχειν μετά τών Πατζινακιτών.

Πρὸς τὸν ἴδιον υἱὸν αὐτοῦ Ῥωμανὸν
https://leadership.qubitpi.org/posts/reading-notes-de-administrando-imperio/
Author
【烬火】胡桃
Published at
2024-08-02
\ No newline at end of file diff --git "a/posts/\345\255\231\345\255\220\345\205\265\346\263\225\344\275\234\346\210\230\347\257\207\347\254\254\344\272\214/index.html" "b/posts/\345\255\231\345\255\220\345\205\265\346\263\225\344\275\234\346\210\230\347\257\207\347\254\254\344\272\214/index.html" index 315f69ef0..bf3ee9f04 100644 --- "a/posts/\345\255\231\345\255\220\345\205\265\346\263\225\344\275\234\346\210\230\347\257\207\347\254\254\344\272\214/index.html" +++ "b/posts/\345\255\231\345\255\220\345\205\265\346\263\225\344\275\234\346\210\230\347\257\207\347\254\254\344\272\214/index.html" @@ -1 +1 @@ -孙子兵法(作战篇第二) - Jiaqi's Leadership Blog
359 words
2 minutes
孙子兵法(作战篇第二)

孙子曰:凡用兵之法,驰车千驷,革车千乘,带甲十万,千里馈粮,则内外之费,宾客之用,胶漆之材,车甲之奉,日费千金, 然后十万之师举矣。

TIP

战争都是双方综合实力的较量

其用战也胜,久则钝兵挫锐,攻城则力屈,久暴师则国用不足。夫钝兵挫锐、屈力殚货,则诸侯乘其弊而起,虽有智者,不能善其后矣。 故兵闻拙速,未睹巧之久也。夫兵久而国利者,未之有也。故不尽知用兵之害者,则不能尽知用兵之利也。

注释

殚货:耗尽物力财力

善用兵者,役不再籍,粮不三载,取用于国,因粮于敌,故军食可足也。

国之贫于师者远输,远输则百姓贫;近于师者贵卖,贵卖则百姓财竭,财竭则急于丘役。力屈、财殚,中原内虚于家。百姓之费, 十去其七;公家之费,破车罢马,甲胄矢弩,戟顿楯橹,丘牛大车,十去其六。

故智将务食于敌,食敌一钟,当吾二十钟

故杀敌者,怒也;取敌之利者,货也。故车战得车十乘已上,赏其先得者。而更其旌旗,车杂而乘之,卒善而养之,是谓胜敌而益强。

故兵贵胜,不贵久。

故知兵之将,生民之司命,国家安危之主也。

孙子兵法(作战篇第二)
https://leadership.qubitpi.org/posts/孙子兵法作战篇第二/
Author
【烬火】胡桃
Published at
2024-08-15
\ No newline at end of file +孙子兵法(作战篇第二) - Jiaqi's Leadership Blog
359 words
2 minutes
孙子兵法(作战篇第二)

孙子曰:凡用兵之法,驰车千驷,革车千乘,带甲十万,千里馈粮,则内外之费,宾客之用,胶漆之材,车甲之奉,日费千金, 然后十万之师举矣。

TIP

战争都是双方综合实力的较量

其用战也胜,久则钝兵挫锐,攻城则力屈,久暴师则国用不足。夫钝兵挫锐、屈力殚货,则诸侯乘其弊而起,虽有智者,不能善其后矣。 故兵闻拙速,未睹巧之久也。夫兵久而国利者,未之有也。故不尽知用兵之害者,则不能尽知用兵之利也。

注释

殚货:耗尽物力财力

善用兵者,役不再籍,粮不三载,取用于国,因粮于敌,故军食可足也。

国之贫于师者远输,远输则百姓贫;近于师者贵卖,贵卖则百姓财竭,财竭则急于丘役。力屈、财殚,中原内虚于家。百姓之费, 十去其七;公家之费,破车罢马,甲胄矢弩,戟顿楯橹,丘牛大车,十去其六。

故智将务食于敌,食敌一钟,当吾二十钟

故杀敌者,怒也;取敌之利者,货也。故车战得车十乘已上,赏其先得者。而更其旌旗,车杂而乘之,卒善而养之,是谓胜敌而益强。

故兵贵胜,不贵久。

故知兵之将,生民之司命,国家安危之主也。

孙子兵法(作战篇第二)
https://leadership.qubitpi.org/posts/孙子兵法作战篇第二/
Author
【烬火】胡桃
Published at
2024-08-15
\ No newline at end of file diff --git "a/posts/\345\255\231\345\255\220\345\205\265\346\263\225\350\256\241\347\257\207\347\254\254\344\270\200/index.html" "b/posts/\345\255\231\345\255\220\345\205\265\346\263\225\350\256\241\347\257\207\347\254\254\344\270\200/index.html" index c6d801fb9..004a0f6df 100644 --- "a/posts/\345\255\231\345\255\220\345\205\265\346\263\225\350\256\241\347\257\207\347\254\254\344\270\200/index.html" +++ "b/posts/\345\255\231\345\255\220\345\205\265\346\263\225\350\256\241\347\257\207\347\254\254\344\270\200/index.html" @@ -1 +1 @@ -孙子兵法(计篇第一) - Jiaqi's Leadership Blog
561 words
3 minutes
孙子兵法(计篇第一)

孙子曰:兵者,国之大事,死生之地,存亡之道,不可不察也。

故经之以五事,校之以计,而索其情。一曰道,二曰天,三曰地,四曰将,五曰法。道者,令民与上同意也,故可以与之死, 可以与之生,而不畏危也。天者,阴阳、寒暑、时制也。地者,远近,险易、广狭、死生也。将者,智、信、仁、勇、严也。法者, 曲制、官道、主用也。凡此五者,将莫不闻,知之者胜,不知之者不胜。

注释

校之以计,而索其情:比较分析双方的各种条件,考察双方的实际情况

令民与上同意也,故可以与之死,可以与之生,而不畏危也:就是使民众和君主的心意相同,这样才可以同生共死,而不镇怕危险

曲制:指军队编制制度。

官道:指各级将吏的职责划分 以及统辖管理制度。

主用:掌管物资费用的后勤管理制度。

故校之以计,而索其情。曰:主孰有道?将孰有能?天地孰得?法令孰行?兵众孰强?士卒孰练?赏罚孰明?吾以此知胜负矣。

注释

孰:疑问带刺,谁,哪一方

主熟有道:哪一 方的君主能得民心?

将听吾计,用之必胜,留之;将不听吾计,用之必败,去之。

计利以听,乃为之势,以佐其外。势者,因利而制权也。

注释

计利:分折后有优势,有利于我。

听:听从,采纳。

以佐其外:来协助在外的军事行动

制权:指根据实际科害关系西灵活应变。权,权变,灵 活处置。

兵者,诡道也。故能而示之不能,用而示之不用,近而示之远,远而示之近。利而诱之,乱而取之,实而备之,强而避之,怒而挠之, 卑而骄之,佚而劳之,亲而离之,攻其无备,出其不意。此兵家之胜,不可先传也。

夫未战而庙算胜者,得算多也;未战而庙算不胜者,得算少也。多算胜,少算不胜,而况于无算乎!吾以此观之,胜负见矣。

注释

得算多:指取得胜利的系件多

孙子兵法(计篇第一)
https://leadership.qubitpi.org/posts/孙子兵法计篇第一/
Author
【烬火】胡桃
Published at
2024-08-04
\ No newline at end of file +孙子兵法(计篇第一) - Jiaqi's Leadership Blog
561 words
3 minutes
孙子兵法(计篇第一)

孙子曰:兵者,国之大事,死生之地,存亡之道,不可不察也。

故经之以五事,校之以计,而索其情。一曰道,二曰天,三曰地,四曰将,五曰法。道者,令民与上同意也,故可以与之死, 可以与之生,而不畏危也。天者,阴阳、寒暑、时制也。地者,远近,险易、广狭、死生也。将者,智、信、仁、勇、严也。法者, 曲制、官道、主用也。凡此五者,将莫不闻,知之者胜,不知之者不胜。

注释

校之以计,而索其情:比较分析双方的各种条件,考察双方的实际情况

令民与上同意也,故可以与之死,可以与之生,而不畏危也:就是使民众和君主的心意相同,这样才可以同生共死,而不镇怕危险

曲制:指军队编制制度。

官道:指各级将吏的职责划分 以及统辖管理制度。

主用:掌管物资费用的后勤管理制度。

故校之以计,而索其情。曰:主孰有道?将孰有能?天地孰得?法令孰行?兵众孰强?士卒孰练?赏罚孰明?吾以此知胜负矣。

注释

孰:疑问带刺,谁,哪一方

主熟有道:哪一 方的君主能得民心?

将听吾计,用之必胜,留之;将不听吾计,用之必败,去之。

计利以听,乃为之势,以佐其外。势者,因利而制权也。

注释

计利:分折后有优势,有利于我。

听:听从,采纳。

以佐其外:来协助在外的军事行动

制权:指根据实际科害关系西灵活应变。权,权变,灵 活处置。

兵者,诡道也。故能而示之不能,用而示之不用,近而示之远,远而示之近。利而诱之,乱而取之,实而备之,强而避之,怒而挠之, 卑而骄之,佚而劳之,亲而离之,攻其无备,出其不意。此兵家之胜,不可先传也。

夫未战而庙算胜者,得算多也;未战而庙算不胜者,得算少也。多算胜,少算不胜,而况于无算乎!吾以此观之,胜负见矣。

注释

得算多:指取得胜利的系件多

孙子兵法(计篇第一)
https://leadership.qubitpi.org/posts/孙子兵法计篇第一/
Author
【烬火】胡桃
Published at
2024-08-04
\ No newline at end of file diff --git "a/posts/\353\202\230\354\235\230-\354\225\204\354\240\200\354\224\250-\354\203\201\353\254\264-\354\212\271\354\235\270/index.html" "b/posts/\353\202\230\354\235\230-\354\225\204\354\240\200\354\224\250-\354\203\201\353\254\264-\354\212\271\354\235\270/index.html" index 5644aa88a..031e9317f 100644 --- "a/posts/\353\202\230\354\235\230-\354\225\204\354\240\200\354\224\250-\354\203\201\353\254\264-\354\212\271\354\235\270/index.html" +++ "b/posts/\353\202\230\354\235\230-\354\225\204\354\240\200\354\224\250-\354\203\201\353\254\264-\354\212\271\354\235\270/index.html" @@ -1,4 +1,4 @@ 박동훈 상무 승인 - Jiaqi's Leadership Blog
229 words
1 minutes
박동훈 상무 승인
2024-08-06

나의 아저씨는 명작! 제 인생드라마 이렇게 주인공 많은 드라마는 처음봤습니다 진짜 어른이란 무엇인지 알려주고자 한 멋진 드라마였습니다 그저 무거울줄만 알았는데 착각이었죠 다들 꼭한번 봐보시길 바라봅니다

회사선배중 누가 상무이사되었다고 이렇게 축하해즐까? 그만큼 직원 모두가 좋아하고 존경하는 선배였다는 거겠지. 얼마나 존경받을만한 인물이면 다같이 축하해주냐고. 나의 아저씨 명장면 많은데 난 유달리 이 장면이 제일 기억에 남고 뭉클함 모두가 저렇게 축하해주는 모습이 너무 정겹고 가족같음

박동훈 상무 승인
https://leadership.qubitpi.org/posts/나의-아저씨-상무-승인/
Author
【烬火】胡桃
Published at
2024-08-06
\ No newline at end of file +" name=twitter:description>
229 words
1 minutes
박동훈 상무 승인
2024-08-06

나의 아저씨는 명작! 제 인생드라마 이렇게 주인공 많은 드라마는 처음봤습니다 진짜 어른이란 무엇인지 알려주고자 한 멋진 드라마였습니다 그저 무거울줄만 알았는데 착각이었죠 다들 꼭한번 봐보시길 바라봅니다

회사선배중 누가 상무이사되었다고 이렇게 축하해즐까? 그만큼 직원 모두가 좋아하고 존경하는 선배였다는 거겠지. 얼마나 존경받을만한 인물이면 다같이 축하해주냐고. 나의 아저씨 명장면 많은데 난 유달리 이 장면이 제일 기억에 남고 뭉클함 모두가 저렇게 축하해주는 모습이 너무 정겹고 가족같음

박동훈 상무 승인
https://leadership.qubitpi.org/posts/나의-아저씨-상무-승인/
Author
【烬火】胡桃
Published at
2024-08-06
\ No newline at end of file diff --git "a/posts/\353\202\230\354\235\230-\354\225\204\354\240\200\354\224\250/index.html" "b/posts/\353\202\230\354\235\230-\354\225\204\354\240\200\354\224\250/index.html" index c58e9d256..fac66ce2c 100644 --- "a/posts/\353\202\230\354\235\230-\354\225\204\354\240\200\354\224\250/index.html" +++ "b/posts/\353\202\230\354\235\230-\354\225\204\354\240\200\354\224\250/index.html" @@ -1 +1 @@ -드라마 '나의 아저씨' - Jiaqi's Leadership Blog
1043 words
5 minutes
드라마 '나의 아저씨'
2024-08-01

드라마 ‘나의 아저씨’에 이런 장면과 이런 말이 있다.

이력서에 적힌 건, 장점 ‘달리기’ 하나뿐이고 무죄 판결이 나서 전과조회는 되지 않지만, 정당방위로 사람을 죽인 적이 있는 한 직원을 왜 뽑았냐고 비난하는 장면이다.

그리고 이런 말, 대화가 나온다. ‘법이 그 아이를 보호해 주려고 전과조회도 안 잡히게 해 놨는데, 왜 그걸 들춰냅니까 내가 내 과거를 잊고 싶듯 다른 사람의 과거도 잊어주고 덮어주는 게 인간 아닙니까.’

‘여기 회사야!!!’

‘회사는 기계가 다니는 뎁니까? 인간이 다니는 뎁니다!’

살다 보면 참 잊기 쉬운 말이다. ‘인간’. 신기하게 인간이 살고 있는 세상이고 인간을 위해 쌓아 올린 세상인데 인간이 없다. 아니, 정확하게는 인간성이 없다. 도로 위에 수많은 난폭, 폭력 운전자들. 직장, 일이라는 이유로 인간다움을 마음 한편에 접어두라는 사람들. 돈 없고 힘없으면 무시당해도 되고 서러워도 아무도 신경 쓰지 않는 사람들. 다수가 불편하면 외면당해도 되는 소수들. 어리고 학생이면 선택할 수 없고 저항하면 안 되는.

아무런 의욕도 없이 억지로 살아가는 중년 남자와 태어날 때부터 불행한 운명을 짊어지고 살아온 젊은 여자의 이야기가 이를 본 많은 이들에게 어떻게 ‘인생의 드라마’가 되었는지 궁금할 것입니다. 놀랍게도 그랬습니다. 박동훈과 이지안은 서로를 인간 대 인간으로 완전히 이해했고, 서로에게 큰 위로가 되었습니다. 이지안을 돕는 과정을 통해 박동훈 역시 자신의 내면에서 다른 것을 발견하고, 자신을 더 사랑하는 것에서 벗어나 더 적극적으로 살아갈 수 있었고, 이지안은 다른 사람들과 달리 자신에게 ‘4배 이상’ 잘해주는 박동훈 같은 사람을 만난 이후 ‘처음 살아보는 삶’을 살게 되었습니다. 이 둘이 어둠 속에서 서로에게 빛이 되고 마침내 터널을 벗어나면, 시청자들은 이 힘들고 외로운 삶 속에서 희망을 볼 수 있는 것처럼 경험합니다.

우울한 사람들을 보지만, 어쩐지 희망적인 느낌을 줍니다. 슬픈 사람들을 보지만, 어쩐지 미소를 짓게 만듭니다. 배경에는 추운 겨울날이지만, 여러분의 마음은 한없이 따뜻해질 것입니다. 사회적으로 소외되고 외로운 사람들이 모여서 이야기하는 것 같습니다. “괜찮아요. 이 세상은 여전히 살 가치가 있어요.” 무엇보다도, 여러분의 삶에서 진정한 사람들을 만나거나, 그들 중 한 명이 되고 싶다는 생각을 하게 만듭니다. 어떤 판단도 없이 힘든 시기를 겪고 있는 그 사람을 볼 때, 여러분은 그 사람의 편이 될 수 있는 사람으로 성장하고 싶습니다. 더 중요한 것은, 그런 방식으로, 여러분은 인간이 할 수 있는 최고의 가치를 실천하는 것이 여러분의 삶에서 더 많은 의미를 찾을 수 있기 때문에 더 많은 것을 얻을 수 있습니다.

“어떻게 보면 인생은 외적인 힘과 내적인 힘의 싸움이고, 어떤 일이 있어도 내적인 힘이 있으면 견딜 수 있습니다. (박동훈)”

드라마 '나의 아저씨'
https://leadership.qubitpi.org/posts/나의-아저씨/
Author
【烬火】胡桃
Published at
2024-08-01
\ No newline at end of file +드라마 '나의 아저씨' - Jiaqi's Leadership Blog
1043 words
5 minutes
드라마 '나의 아저씨'
2024-08-01

드라마 ‘나의 아저씨’에 이런 장면과 이런 말이 있다.

이력서에 적힌 건, 장점 ‘달리기’ 하나뿐이고 무죄 판결이 나서 전과조회는 되지 않지만, 정당방위로 사람을 죽인 적이 있는 한 직원을 왜 뽑았냐고 비난하는 장면이다.

그리고 이런 말, 대화가 나온다. ‘법이 그 아이를 보호해 주려고 전과조회도 안 잡히게 해 놨는데, 왜 그걸 들춰냅니까 내가 내 과거를 잊고 싶듯 다른 사람의 과거도 잊어주고 덮어주는 게 인간 아닙니까.’

‘여기 회사야!!!’

‘회사는 기계가 다니는 뎁니까? 인간이 다니는 뎁니다!’

살다 보면 참 잊기 쉬운 말이다. ‘인간’. 신기하게 인간이 살고 있는 세상이고 인간을 위해 쌓아 올린 세상인데 인간이 없다. 아니, 정확하게는 인간성이 없다. 도로 위에 수많은 난폭, 폭력 운전자들. 직장, 일이라는 이유로 인간다움을 마음 한편에 접어두라는 사람들. 돈 없고 힘없으면 무시당해도 되고 서러워도 아무도 신경 쓰지 않는 사람들. 다수가 불편하면 외면당해도 되는 소수들. 어리고 학생이면 선택할 수 없고 저항하면 안 되는.

아무런 의욕도 없이 억지로 살아가는 중년 남자와 태어날 때부터 불행한 운명을 짊어지고 살아온 젊은 여자의 이야기가 이를 본 많은 이들에게 어떻게 ‘인생의 드라마’가 되었는지 궁금할 것입니다. 놀랍게도 그랬습니다. 박동훈과 이지안은 서로를 인간 대 인간으로 완전히 이해했고, 서로에게 큰 위로가 되었습니다. 이지안을 돕는 과정을 통해 박동훈 역시 자신의 내면에서 다른 것을 발견하고, 자신을 더 사랑하는 것에서 벗어나 더 적극적으로 살아갈 수 있었고, 이지안은 다른 사람들과 달리 자신에게 ‘4배 이상’ 잘해주는 박동훈 같은 사람을 만난 이후 ‘처음 살아보는 삶’을 살게 되었습니다. 이 둘이 어둠 속에서 서로에게 빛이 되고 마침내 터널을 벗어나면, 시청자들은 이 힘들고 외로운 삶 속에서 희망을 볼 수 있는 것처럼 경험합니다.

우울한 사람들을 보지만, 어쩐지 희망적인 느낌을 줍니다. 슬픈 사람들을 보지만, 어쩐지 미소를 짓게 만듭니다. 배경에는 추운 겨울날이지만, 여러분의 마음은 한없이 따뜻해질 것입니다. 사회적으로 소외되고 외로운 사람들이 모여서 이야기하는 것 같습니다. “괜찮아요. 이 세상은 여전히 살 가치가 있어요.” 무엇보다도, 여러분의 삶에서 진정한 사람들을 만나거나, 그들 중 한 명이 되고 싶다는 생각을 하게 만듭니다. 어떤 판단도 없이 힘든 시기를 겪고 있는 그 사람을 볼 때, 여러분은 그 사람의 편이 될 수 있는 사람으로 성장하고 싶습니다. 더 중요한 것은, 그런 방식으로, 여러분은 인간이 할 수 있는 최고의 가치를 실천하는 것이 여러분의 삶에서 더 많은 의미를 찾을 수 있기 때문에 더 많은 것을 얻을 수 있습니다.

“어떻게 보면 인생은 외적인 힘과 내적인 힘의 싸움이고, 어떤 일이 있어도 내적인 힘이 있으면 견딜 수 있습니다. (박동훈)”

드라마 '나의 아저씨'
https://leadership.qubitpi.org/posts/나의-아저씨/
Author
【烬火】胡桃
Published at
2024-08-01
\ No newline at end of file