diff options
| author | Paul Buetow <paul@buetow.org> | 2023-04-01 20:18:09 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2023-04-01 20:18:09 +0300 |
| commit | c3ddfcbe897d37e13f5c2ef2008cab090fdb4121 (patch) | |
| tree | 6dcb25098164185fe74adfd1f09185fe52e0a62c /gemfeed | |
| parent | e709691961983205d4e15e9fdc1c1cb88871fa44 (diff) | |
Update content for gemtext
Diffstat (limited to 'gemfeed')
| -rw-r--r-- | gemfeed/2023-04-01-never-split-the-difference-book-notes.gmi | 12 | ||||
| -rw-r--r-- | gemfeed/atom.xml.tmp | 251 |
2 files changed, 263 insertions, 0 deletions
diff --git a/gemfeed/2023-04-01-never-split-the-difference-book-notes.gmi b/gemfeed/2023-04-01-never-split-the-difference-book-notes.gmi index 35c8a48c..3e629244 100644 --- a/gemfeed/2023-04-01-never-split-the-difference-book-notes.gmi +++ b/gemfeed/2023-04-01-never-split-the-difference-book-notes.gmi @@ -4,6 +4,18 @@ These are my personal takeaways after reading "Never split the difference" by Chris Voss. Note that the book contains much more knowledge wisdom and that these notes only contain points I personally found worth writing down. This is mainly for my own use, but you might find it helpful too. +``` + ,.......... .........., + ,..,' '.' ',.., + ,' ,' : ', ', + ,' ,' : ', ', + ,' ,' : ', ', + ,' ,'............., : ,.............', ', +,' '............ '.' ............' ', + '''''''''''''''''';''';'''''''''''''''''' + ''' +``` + ## Tactical listening, spreading empathy Be a mirror, copy each other to be comfy with each other to build up trust. Mirroring is mainly body language. A mirror is to repeat the words the other just said. Simple but effective. diff --git a/gemfeed/atom.xml.tmp b/gemfeed/atom.xml.tmp new file mode 100644 index 00000000..3a844ddc --- /dev/null +++ b/gemfeed/atom.xml.tmp @@ -0,0 +1,251 @@ +<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> + <updated>2023-04-01T20:18:02+03:00</updated> + <title>foo.zone feed</title> + <subtitle>To be in the .zone!</subtitle> + <link href="gemini://foo.zone/gemfeed/atom.xml" rel="self" /> + <link href="gemini://foo.zone/" /> + <id>gemini://foo.zone/</id> + <entry> + <title>'Never split the difference' book notes</title> + <link href="gemini://foo.zone/gemfeed/2023-04-01-never-split-the-difference-book-notes.gmi" /> + <id>gemini://foo.zone/gemfeed/2023-04-01-never-split-the-difference-book-notes.gmi</id> + <updated>2023-04-01T20:00:17+03:00</updated> + <author> + <name>Paul Buetow</name> + <email>hi@paul.cyou</email> + </author> + <summary>These are my personal takeaways after reading 'Never split the difference' by Chris Voss. Note that the book contains much more knowledge wisdom and that these notes only contain points I personally found worth writing down. This is mainly for my own use, but you might find it helpful too.</summary> + <content type="xhtml"> + <div xmlns="http://www.w3.org/1999/xhtml"> + <h1>"Never split the difference" book notes</h1> +<p class="quote"><i>Published at 2023-04-01T20:00:17+03:00</i></p> +<p>These are my personal takeaways after reading "Never split the difference" by Chris Voss. Note that the book contains much more knowledge wisdom and that these notes only contain points I personally found worth writing down. This is mainly for my own use, but you might find it helpful too.</p> +<pre> + ,.......... .........., + ,..,' '.' ',.., + ,' ,' : ', ', + ,' ,' : ', ', + ,' ,' : ', ', + ,' ,'............., : ,.............', ', +,' '............ '.' ............' ', + '''''''''''''''''';''';'''''''''''''''''' + ''' +</pre> +<h2>Tactical listening, spreading empathy</h2> +<p>Be a mirror, copy each other to be comfy with each other to build up trust. Mirroring is mainly body language. A mirror is to repeat the words the other just said. Simple but effective.</p> +<ul> +<li>A mirror needs space and silence between the words. At least 4 seconds.</li> +<li>A mirror might be awkward to be used at first, especially with a question coupled to it.</li> +<li>We fear what's different and are drawn to what is similar.</li> +</ul> +<p>Mirror training is like Jedi training. Simple but effective. A mirror needs space. Be silent after "you want this?" </p> +<h2>Mindset of discovery</h2> +<p>Try to have multiple realities in your mind and use facts to distinguish between real and false.</p> +<ul> +<li>Focus on what the counterpart has to say and what he needs and wants. Understanding him makes him vulnerable.</li> +<li>Empathy understanding the other person from his perspective, but it does not mean agreeing with him.</li> +<li>Detect and label the emotions of others for your powers. </li> +<li>To be understood seems to solve all problems magically.</li> +</ul> +<p>Try: to put a label on someone's emotion and then be silent. Wait for the other to reveal himself. "You seem unhappy about this?"</p> +<h3>More tips </h3> +<ul> +<li>Put on a poker face and don't show emotions.</li> +<li>Slow things down. Don't be a problem solver.</li> +<li>Smile while you are talking, even on the phone. Be easy and encouraging.</li> +<li>Being right is not the key to successful negotiation; being mindful is.</li> +<li>Be in the safe zone of empathy and acknowledge bad news.</li> +</ul> +<h2>"No" starts the conversation</h2> +<p>When the opponent starts with a "no", he feels in control and comfortable. That's why he has to start with "no".</p> +<ul> +<li>"Yes" and "maybe" might be worthless, but "no" starts the conversation.</li> +<li>If someone is saying "no" to you, he will be open to what you have to say next.</li> +<li>"No" is not stopping the negotiation but will open up opportunities you were not thinking about before.</li> +<li>Start with "no". Great negotiators seek "no" because that's when the great discussions begin.</li> +<li>A "no" can be scary if you are not used to it. If your biggest fear is "no", then you can't negotiate.</li> +</ul> +<p>Get a "That's right" when negotiating. Don't get a "you're right". You can summarise the opponent to get a "that's right".</p> +<h2>Win-win</h2> +<p>Win-win is a naive approach when encountering the win-lose counterpart, but always cooperate. Don't compromise, and don't split the difference. We don't compromise because it's right; we do it because it is easy. You must embrace the hard stuff; that's where the great deals are.</p> +<h2>On Deadlines</h2> +<ul> +<li>All deadlines are imaginary.</li> +<li>Most of the time, deadlines unsettle us without a good reason.</li> +<li>They push a deal to a conclusion.</li> +<li>They rush the counterpart to cause pressure and anxiety.</li> +</ul> +<h2>Analyse the opponent</h2> +<ul> +<li>Understand the motivation of people behind the table as well.</li> +<li>Ask how affected they will be.</li> +<li>Determine your and the opposite negotiation style. Accommodation, analyst, assertive.</li> +<li>Treat them how they need to be treated.</li> +</ul> +<p>The person on the other side is never the issue; the problem is the issue. Keep this in mind to avoid emotional issues with the person and focus on the problem, not the person. The bond is essential; never create an enemy.</p> +<h2>Use different ways of saying "no."</h2> +<p class="quote"><i>I had paid my rent always in time. I had positive experiences with the building and would be sad for the landlord to lose a good tenant. I am looking for a win-win agreement between us. Pulling out the research, other neighbours offer much lower prices even if your building is a better location and services. How can I effort 200 more.... </i></p> +<p>...then put an extreme anker.</p> +<p>You always have to embrace thoughtful confrontation for good negotiation and life. Don't avoid honest, clear conflict. It will give you the best deals. Compromises are mostly bad deals for both sides. Most people don't negotiate a win-win but a win-lose. Know the best and worst outcomes and what is acceptable for you.</p> +<h2>Calibrated question</h2> +<p>Calibrated questions. Give the opponent a sense of power. Ask open-how questions to get the opponent to solve your problem and move him in your direction. Calibrated questions are the best tools. Summarise everything, and then ask, "how I am supposed to do that?". Asking for help this way with a calibrated question is a powerful tool for joint problem solving</p> +<p>Being calm and respectful is essential. Without control of your emotions, it won't work. The counterpart will have no idea how constrained they are with your question. Avoid questions which get a yes or short answers. Use "why?".</p> +<p>Counterparts are more involved if these are their solutions. The counterpart must answer with "that's right", not "you are right". He has to own the problem. If not, then add more why questions.</p> +<ul> +<li>Tone and body language need to align with what people are saying.</li> +<li>Deal with it via a labelled question. </li> +<li>Liers tend to talk with "them" and "their" and not with "I".</li> +<li>Also, liars tend to talk in complex sentences.</li> +</ul> +<p>Prepare 3 to 5 calibrated questions for your counterpart. Be curious what is really motivating the other side. You can get out the "Black Swan".</p> +<h2>The black swan </h2> +<p>What we don't know can break our deal. Uncovering it can bring us unexpected success. You get what you ask for in this world, but you must learn to ask correctly. Reveal the black swan by asking questions.</p> +<h2>More</h2> +<p>Establish a range at top places like corp. I get... (e.g. remote London on a project basis). Set a high salary range and not a number. Also, check on LinkedIn premium for the salaries.</p> +<ul> +<li>Give an unexpected gift, e.g. show them my pet project and publicity for engineering.</li> +<li>Use an odd number, which makes you seem to have thought a lot about the sum and calculated it.</li> +<li>Define success and metrics for your next raise.</li> +<li>What does it take to be successful here? Ask the question, and they will tell you and guide you.</li> +<li>Set an extreme anker. Make the counterpart the illusion of losing something.</li> +<li>Hope-based deals. Hope is not a strategy.</li> +<li>Tactical empathy, listening as a martial art. It is emotional intelligence on steroids.</li> +<li>Being right isn't the key to a successful negotiation, but having the correct mindset is.</li> +<li>Don't shop the groceries when you are hungry.</li> +</ul> +<p>Slow.... it.... down....</p> +<p>Other book notes of mine are:</p> +<a class="textlink" href="https://foo.zone/gemfeed/2023-04-01-never-split-the-difference-book-notes.html">2023-04-01 "Never split the difference" book notes (You are currently reading this)</a><br /> +<a class="textlink" href="https://foo.zone/gemfeed/2023-03-16-the-pragmatic-programmer-book-notes.html">2023-03-16 "The Pragmatic Programmer" book notes</a><br /> +<p>E-Mail your comments to hi@paul.cyou :-)</p> +<a class="textlink" href="../">Back to the main site</a><br /> + </div> + </content> + </entry> + <entry> + <title>Gemtexter 2.0.0 - Let's Gemtext again^2</title> + <link href="gemini://foo.zone/gemfeed/2023-03-25-gemtexter-2.0.0-lets-gemtext-again-2.gmi" /> + <id>gemini://foo.zone/gemfeed/2023-03-25-gemtexter-2.0.0-lets-gemtext-again-2.gmi</id> + <updated>2023-03-25T17:50:32+02:00</updated> + <author> + <name>Paul Buetow</name> + <email>hi@paul.cyou</email> + </author> + <summary>I proudly announce that I've released Gemtexter version `2.0.0`. What is Gemtexter? It's my minimalist static site generator for Gemini Gemtext, HTML and Markdown written in GNU Bash.</summary> + <content type="xhtml"> + <div xmlns="http://www.w3.org/1999/xhtml"> + <h1>Gemtexter 2.0.0 - Let's Gemtext again^2</h1> +<p class="quote"><i>Published at 2023-03-25T17:50:32+02:00</i></p> +<pre> +-=[ typewriters ]=- 1/98 + + .-------. + _|~~ ~~ |_ .-------. + =(_|_______|_)= _|~~ ~~ |_ + |:::::::::| =(_|_______|_) + |:::::::[]| |:::::::::| + |o=======.| |:::::::[]| + jgs `"""""""""` |o=======.| + mod. by Paul Buetow `"""""""""` +</pre> +<p>I proudly announce that I've released Gemtexter version <span class="inlinecode">2.0.0</span>. What is Gemtexter? It's my minimalist static site generator for Gemini Gemtext, HTML and Markdown written in GNU Bash.</p> +<a class="textlink" href="https://codeberg.org/snonux/gemtexter">https://codeberg.org/snonux/gemtexter</a><br /> +<p>This is a new major release, so it contains a breaking change (see "Meta cache made obsolete").</p> +<p>Let's list what's new!</p> +<h2>Minimal template engine</h2> +<p>Gemtexter now supports templating, enabling dynamically generated content to <span class="inlinecode">.gmi</span> files before converting anything to any output format like HTML and Markdown.</p> +<p>A template file name must have the suffix <span class="inlinecode">gmi.tpl</span>. A template must be put into the same directory as the Gemtext <span class="inlinecode">.gmi</span> file to be generated. Gemtexter will generate a Gemtext file <span class="inlinecode">index.gmi</span> from a given template <span class="inlinecode">index.gmi.tpl</span>. A <span class="inlinecode"><<<</span> and <span class="inlinecode">>>></span> encloses a multiline template. All lines starting with <span class="inlinecode"><< </span> will be evaluated as a single line of Bash code and the output will be written into the resulting Gemtext file.</p> +<p>For example, the template <span class="inlinecode">index.gmi.tpl</span>:</p> +<pre> +# Hello world + +<< echo "> This site was generated at $(date --iso-8601=seconds) by \`Gemtexter\`" + +Welcome to this capsule! + +<<< + for i in {1..10}; do + echo Multiline template line $i + done +>>> +</pre> +<p>... results into the following <span class="inlinecode">index.gmi</span> after running <span class="inlinecode">./gemtexter --generate</span> (or <span class="inlinecode">./gemtexter --template</span>, which instructs to do only template processing and nothing else):</p> +<pre> +# Hello world + +> This site was generated at 2023-03-15T19:07:59+02:00 by `Gemtexter` + +Welcome to this capsule! + +Multiline template line 1 +Multiline template line 2 +Multiline template line 3 +Multiline template line 4 +Multiline template line 5 +Multiline template line 6 +Multiline template line 7 +Multiline template line 8 +Multiline template line 9 +Multiline template line 10 +</pre> +<p>Another thing you can do is insert an index with links to similar blog posts. E.g.:</p> +<pre> +See more entries about DTail and Golang: + +<< template::inline::index dtail golang + +Blablabla... +</pre> +<p>... scans all other post entries with <span class="inlinecode">dtail</span> and <span class="inlinecode">golang</span> in the file name and generates a link list like this:</p> +<pre> +See more entries about DTail and Golang: + +=> ./2022-10-30-installing-dtail-on-openbsd.gmi 2022-10-30 Installing DTail on OpenBSD +=> ./2022-04-22-programming-golang.gmi 2022-04-22 The Golang Programming language +=> ./2022-03-06-the-release-of-dtail-4.0.0.gmi 2022-03-06 The release of DTail 4.0.0 +=> ./2021-04-22-dtail-the-distributed-log-tail-program.gmi 2021-04-22 DTail - The distributed log tail program (You are currently reading this) + +Blablabla... +</pre> +<h2>Added hooks</h2> +<p>You can configure <span class="inlinecode">PRE_GENERATE_HOOK</span> and <span class="inlinecode">POST_PUBLISH_HOOK</span> to point to scripts to be executed before running <span class="inlinecode">--generate</span>, or after running <span class="inlinecode">--publish</span>. E.g. you could populate some of the content by an external script before letting Gemtexter do its thing or you could automatically deploy the site after running <span class="inlinecode">--publish</span>.</p> +<p>The sample config file <span class="inlinecode">gemtexter.conf</span> includes this as an example now; these scripts will only be executed when they actually exist:</p> +<pre> +declare -xr PRE_GENERATE_HOOK=./pre_generate_hook.sh +declare -xr POST_PUBLISH_HOOK=./post_publish_hook.sh +</pre> +<h2>Use of safer Bash options</h2> +<p>Gemtexter now does <span class="inlinecode">set -euf -o pipefile</span>, which helps to eliminate bugs and to catch scripting errors sooner. Previous versions only <span class="inlinecode">set -e</span>.</p> +<h2>Meta cache made obsolete</h2> +<p>Here is the breaking change to older versions of Gemtexter. The <span class="inlinecode">$BASE_CONTENT_DIR/meta</span> directory was made obsolete. <span class="inlinecode">meta</span> was used to store various information about all the blog post entries to make generating an Atom feed in Bash easier. Especially the publishing dates of each post were stored there. Instead, the publishing date is now encoded in the <span class="inlinecode">.gmi</span> file. And if it is missing, Gemtexter will set it to the current date and time at first run.</p> +<p>An example blog post without any publishing date looks like this:</p> +<pre> +% cat gemfeed/2023-02-26-title-here.gmi +# Title here + +The remaining content of the Gemtext file... +</pre> +<p>Gemtexter will add a line starting with <span class="inlinecode">> Published at ...</span> now. Any subsequent Atom feed generation will then use that date.</p> +<pre> +% cat gemfeed/2023-02-26-title-here.gmi +# Title here + +> Published at 2023-02-26T21:43:51+01:00 + +The remaining content of the Gemtext file... +</pre> +<h2>XMLLint support</h2> +<p>Optionally, when the <span class="inlinecode">xmllint</span> binary is installed, Gemtexter will perform a simple XML lint check against the Atom feed generated. This is a double-check of whether the Atom feed is a valid XML.</p> +<h2>More</h2> +<p>Additionally, there were a couple of bug fixes, refactorings and overall improvements in the documentation made. </p> +<p>Other related posts are:</p> +<a class="textlink" href="https://foo.zone/gemfeed/2023-03-25-gemtexter-2.0.0-lets-gemtext-again-2.html">2023-03-25 Gemtexter 2.0.0 - Let's Gemtext again^2 (You are currently reading this)</a><br /> +<a class="textlink" href="https://foo.zone/gemfeed/2022-08-27-gemtexter-1.1.0-lets-gemtext-again.html">2022-08-27 Gemtexter 1.1.0 - Let's Gemtext again</a><br /> +<a class="textlink" href="https://foo.zone/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all.html">2021-06-05 Gemtexter - One Bash script to rule it all</a><br /> +<a class="textlink" href="https://foo.zone/gemfeed/2021-04-24-welcome-to-the-geminispace.html">2021-04-24 Welcome to the Geminispace</a><br /> +<p>E-Mail your comments to hi@paul.cyou :-)</p> +<a class="textlink" href="../">Back to the main site</a><br /> + </div> + </content> + </entry> |
