<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Читерство &#8212; Можно Подумать</title>
	<atom:link href="https://testitquickly.com/category/%D1%87%D0%B8%D1%82%D0%B5%D1%80%D1%81%D1%82%D0%B2%D0%BE/feed/" rel="self" type="application/rss+xml" />
	<link>https://testitquickly.com</link>
	<description>про тестирование ПО и всё такое прочее</description>
	<lastBuildDate>Thu, 21 Nov 2024 09:05:59 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://testitquickly.com/wp-content/uploads/2021/09/favicon_lupan-150x150.jpg</url>
	<title>Читерство &#8212; Можно Подумать</title>
	<link>https://testitquickly.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">202834616</site>	<item>
		<title>Туду в консоли Debian</title>
		<link>https://testitquickly.com/2024/11/13/todo/</link>
					<comments>https://testitquickly.com/2024/11/13/todo/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Wed, 13 Nov 2024 18:09:14 +0000</pubDate>
				<category><![CDATA[To Do]]></category>
		<category><![CDATA[Автоматизация]]></category>
		<category><![CDATA[Инструменты]]></category>
		<category><![CDATA[Радости]]></category>
		<category><![CDATA[Читерство]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[Debian]]></category>
		<guid isPermaLink="false">https://testitquickly.com/?p=6349</guid>

					<description><![CDATA[Любая система «туду» хороша, если список дел постоянно перед глазами. Придумал простой способ добавить себе напоминалки о чём-то, что нужно сделать, глядя в консоль — прямо в консоль.]]></description>
										<content:encoded><![CDATA[<p>Любая система «туду» хороша, если список дел постоянно перед глазами.</p>
<p>Придумал <a href="https://testitquickly.com/bystro.linux/Common/HowTo/%D0%A1%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C/ToDo_%D0%B2_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8.html">простой способ</a> добавить себе напоминалки о чём-то, что нужно сделать, глядя в консоль — прямо в консоль.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2024/11/13/todo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6349</post-id>	</item>
		<item>
		<title>Сложные диаграммы простым текстом</title>
		<link>https://testitquickly.com/2024/08/12/mermaid-uml-uzor-tsaranesc/</link>
					<comments>https://testitquickly.com/2024/08/12/mermaid-uml-uzor-tsaranesc/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Mon, 12 Aug 2024 05:32:06 +0000</pubDate>
				<category><![CDATA[Изображения]]></category>
		<category><![CDATA[Инструменты]]></category>
		<category><![CDATA[Радости]]></category>
		<category><![CDATA[Скриншоты]]></category>
		<category><![CDATA[Читерство]]></category>
		<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[Confluence]]></category>
		<category><![CDATA[draw.io]]></category>
		<category><![CDATA[Gary Parker]]></category>
		<category><![CDATA[LaTeX]]></category>
		<category><![CDATA[Lee Copeland]]></category>
		<category><![CDATA[LiveScript]]></category>
		<category><![CDATA[Mermaid]]></category>
		<category><![CDATA[Modelio]]></category>
		<category><![CDATA[Notion]]></category>
		<category><![CDATA[Zim]]></category>
		<category><![CDATA[Джерри Вайнберг]]></category>
		<guid isPermaLink="false">https://testitquickly.com/?p=6211</guid>

					<description><![CDATA[Иногда сложные идеи проще объяснять картинками: Они помогают что-то объяснять и окружающим, и самому себе — это отличная лопата для анализа требований, от которых начинается тест-дизайн, где надо всё учесть, ничего не упустить, из ничего выявить неправильное или неоднозначное. Анализ рулит! Рисовать их можно и на обоях, и в не очень удобном LibreOffice Draw, в… <span class="read-more"><a href="https://testitquickly.com/2024/08/12/mermaid-uml-uzor-tsaranesc/">Читать далее: Сложные диаграммы простым текстом &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Иногда сложные идеи проще объяснять картинками:</p>
<div id="attachment_6213" style="width: 675px" class="wp-caption aligncenter"><a href="https://testitquickly.com/wp-content/uploads/2024/07/mermaid001.jpg"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-6213" class="size-large wp-image-6213" src="https://testitquickly.com/wp-content/uploads/2024/07/mermaid001-1024x403.jpg" alt="" width="665" height="262" srcset="https://testitquickly.com/wp-content/uploads/2024/07/mermaid001-1024x403.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/07/mermaid001-300x118.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/07/mermaid001-768x302.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/07/mermaid001-660x260.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/07/mermaid001.jpg 1340w" sizes="(max-width: 665px) 100vw, 665px" /></a><p id="caption-attachment-6213" class="wp-caption-text"><em>Полноценный японский «танка» на UML </em></p></div>
<p>Они помогают что-то объяснять и окружающим, и самому себе — это отличная лопата для анализа требований, от которых начинается тест-дизайн, где надо всё учесть, ничего не упустить, из ничего выявить неправильное или неоднозначное. Анализ рулит!</p>
<p>Рисовать их можно и на обоях, и в не очень удобном LibreOffice Draw, в MS Visio (не щупал уже сто лет), и в опенсорсном <a href="https://www.modelio.org/index.htm">Modelio</a>, и в браузерном <a href="https://app.diagrams.net/">draw.io</a>. Там надо тыкать курсором по иконкам и стрелочкам, перетаскивать их по экрану и соединять в логичном порядке, после чего сохранить в виде картинки, которую надо вставить в свою документацию. И хорошо, если это надо сделать только один раз и картинка маленькая. Как правило, что-то надо поменять, или полотно диаграммы становится очень большим, на несколько экранов во все стороны — и там всегда надо что-то менять. Снова надо сгенерировать картинку, снова надо её прикрепить к странице и вставить в нужное место.</p>
<p>Есть другое решение — диаграммы можно не рисовать, а прямо в режиме редактирования документа в Notion (или в Confluence, или в IDE умного разработчика) в plain text с разметкой Markdown расписывать узлы диаграммы и связи между ними, а обновленная диаграмма автоматически перерисовывается. LaTeX way!</p>
<p>Проект называется <a href="https://mermaid.js.org/intro/">Mermaid</a> (русалка), работает на JavaScript, подключается как <a href="https://www.mermaidchart.com/plugins">плагин</a> в Confluence или Notion, в средах разработки, и даже в Jupyter notebook. Потыкать в свободном режиме — <a href="https://mermaid.live">https://mermaid.live</a></p>
<p>Диаграмм в Mermaid множество: Class Diagram, Entity Relationship Diagram, User Journey, Gantt, Pie Chart, Quadrant Chart, Requirement Diagram, Gitgraph (Git) Diagram, C4 Diagram, Mindmaps, Timeline, Zenuml, Sankey, XYChart, Block Diagram. Cамые ходовые три:</p>
<ol>
<li><span class="HwtZe" lang="ru"><span class="jCAhz ChMk0b"><span class="ryNqvb">Блок-схема </span></span></span><span class="HwtZe" lang="ru"><span class="jCAhz ChMk0b"><span class="ryNqvb">(Flowcharts)</span></span></span></li>
<li>Диаграмма состояний (State diagram)</li>
<li>Диаграмма последовательности (Sequence diagram)</li>
</ol>
<h2>Mermaid в Notion</h2>
<p>В Notion (не наш выбор, но и там есть жизнь) блок с мермайдом вызывается командой, которую можно даже не дописывать:</p>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/07/mermaid002.jpg"><img decoding="async" class="aligncenter size-full wp-image-6214" src="https://testitquickly.com/wp-content/uploads/2024/07/mermaid002.jpg" alt="" width="722" height="323" srcset="https://testitquickly.com/wp-content/uploads/2024/07/mermaid002.jpg 722w, https://testitquickly.com/wp-content/uploads/2024/07/mermaid002-300x134.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/07/mermaid002-660x295.jpg 660w" sizes="(max-width: 722px) 100vw, 722px" /></a></p>
<p>Получаем поле с представлением «Split» — сверху код, а внизу результат его правильной работы:</p>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid003.jpg"><img decoding="async" class="aligncenter size-large wp-image-6251" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid003-1024x727.jpg" alt="" width="665" height="472" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid003-1024x727.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid003-300x213.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid003-768x545.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid003-660x469.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid003.jpg 1341w" sizes="(max-width: 665px) 100vw, 665px" /></a></p>
<p>Когда дело сделано, разумно переключить отображение содержимого блока на «Preview», чтобы не пугать прожект-манагера непонятными буковками.</p>
<h2>Блок-схема</h2>
<p>Она же Flowchart. <a href="https://mermaid.js.org/syntax/flowchart.html">Документация</a> по ней подробна и адекватна.</p>
<p>Блок-схема состоит из узлов (геометрических фигур) и ребер (стрелок/линий), и объявляется непременно с направлением развёртывания — сверху вниз (TD) или слева направо (LR):</p>
<p>Пример:</p>
<pre style="padding-left: 40px;">flowchart TD
S(Простая последовательность шагов)
--&gt; id1(Самурай всё понимает)
--&gt; E(Разговор исчерпан)</pre>
<p>S — Start.</p>
<p>E — End.</p>
<p>Между ними можно расположить сколько угодно узлов. Называть их можно буквами любого алфавита, который есть в кодировке UTF-8, от «id1, id2, id3» до «самурайУмничает».</p>
<p>Сплошные управляющие стрелки (рёбра) указываются так:</p>
<pre style="padding-left: 40px;">--&gt;</pre>
<p>Стрелка с прерывистой линией:</p>
<pre style="padding-left: 40px;">-.-&gt;</pre>
<p>Стрелку можно ставить перед узлом, а можно после. Мне удобнее воспринимать их в начале строки.</p>
<p>Стрелками можно связывать не только на каждый следующий узел, но и непоследовательно прыгать к любым другим узлам. Например, можно связать id3 с id1:</p>
<pre style="padding-left: 40px;">flowchart TD 
  S(Простая последовательность шагов) 
  --&gt; id1(Самурай всё понимает) 
  --&gt; id2(Невод закинут в море) 
  -.-&gt; id3(Дед, ну ты дурак? <span role="img" aria-label="©">©</span>) 
  --&gt; id1 
  --&gt; E(Разговор исчерпан)
</pre>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid004.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6253" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid004-1024x887.jpg" alt="" width="665" height="576" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid004-1024x887.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid004-300x260.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid004-768x665.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid004-660x572.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid004.jpg 1366w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<p>Ещё есть комментарии — через «два символа процента»:</p>
<pre style="padding-left: 40px;">%%{init: {"flowchart": {"htmlLabels": true}} }%%</pre>
<h3>Форматирование узлов на блок-схеме</h3>
<p>Их форма задаётся скобками.</p>
<pre style="padding-left: 40px;">flowchart TD 

S[\Простая последовательность шагов/]
 --&gt; id1{Самурай всё понимает}
 --&gt; id2[Невод закинут в море]
 -.-&gt; id3(Дед, ну ты дурак? <span role="img" aria-label="©">©</span>) 
-.-&gt; id2 
--&gt; E[/Разговор исчерпан\]
</pre>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid005.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6255" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid005-836x1024.jpg" alt="" width="665" height="815" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid005-836x1024.jpg 836w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid005-245x300.jpg 245w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid005-768x941.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid005-660x809.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid005.jpg 1177w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<h3>Комментарии на стрелках</h3>
<pre style="padding-left: 40px;">flowchart TD 

S[\Простая последовательность шагов/] 
--&gt; id1(Самурай всё понимает)
-.-&gt; |размахнувшись| id2(Невод закинут в море)
--&gt; E[/Разговор исчерпан\]</pre>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid010.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6263" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid010-1024x686.jpg" alt="" width="665" height="445" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid010-1024x686.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid010-300x201.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid010-768x514.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid010-660x442.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid010.jpg 1133w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<h3>Пометить узлы разными цветами</h3>
<p>Для этого надо объявить классы сущностей через ’classDef’, а там чистый CSS, поэтому названия или коды цветов надо взять из <a href="https://htmlcolorcodes.com/color-names/">htmlcolorcodes.com</a></p>
<pre style="padding-left: 40px;">flowchart TD

classDef decisionPoint color:black,stroke:DarkOrange,fill:Snow,stroke-width:1px,text-align:left;
classDef startPoint color:black,stroke:White,fill:#93e4e6,stroke-width:1px,text-align:left;
classDef endPoint color:gold,stroke:White,fill:black,stroke-width:1px,text-align:left;

S[\Простая последовательность шагов/]:::startPoint
--&gt; id1(Самурай всё понимает)
--&gt; id2[Невод закинут в море]:::decisionPoint
-.-&gt; id3(Дед, ну ты дурак? <span role="img" aria-label="©">©</span>)
--&gt; id2
--&gt; E[/Разговор исчерпан\]:::endPoint</pre>
<p>Затем применить классы к узлам через три двоеточия.</p>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid006.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6257" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid006-1024x921.jpg" alt="" width="665" height="598" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid006-1024x921.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid006-300x270.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid006-768x691.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid006-660x594.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid006.jpg 1413w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<p>Не надо излишне увлекаться раскрасками. Стартовый и эндовый узлы лучше пометить не цветом, а формой узла через наклоны обрамляющих слэшей:</p>
<pre>[\ старт /] и [/ финиш \]</pre>
<p>Цвета, если действительно надо применять, следует подобрать неяркие. Учесть, что кто-то будет смотреть это всё в darkMode.</p>
<h3>Поменять размер шрифта одного из узлов</h3>
<p>Через управляющие команды CSS:</p>
<pre style="padding-left: 40px;">classDef decisionPoint <strong>font-size:0.9em</strong>,color:black,stroke:DarkOrange,fill:Snow,stroke-width:1px,text-align:left;</pre>
<h3>Вписать в один узел несколько строк</h3>
<p>Просто переносим буквы/слова внутри узла на новую строку. В моем примере каждая новая (перенесенная) строка начинается с булита — это необязательно, просто выглядит как список на слайде. Кавычки вроде нужны, а на деле не обязательны.</p>
<pre style="padding-left: 40px;">flowchart TD 

classDef leftAlign font-size:0.9em,color:black,stroke:DarkOrange,fill:Snow,stroke-width:1px,text-align:left; 

S[\Простая последовательность шагов/]
 --&gt; id1(Самурай всё понимает)
 --&gt; listOfEvents("•  Некуда спешить
• Не о чём думать
• Начинается дождь"):::leftAlign
 --&gt; id2[Невод закинут в море]
E[/Разговор исчерпан\]
</pre>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid007.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6258" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid007.jpg" alt="" width="936" height="884" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid007.jpg 936w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid007-300x283.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid007-768x725.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid007-660x623.jpg 660w" sizes="auto, (max-width: 936px) 100vw, 936px" /></a></p>
<p>Тут под произвольным именем ’newLines’ было задано соединение нескольких узлов в один общий узел. А это значит, что можно заранее соединять узлы в отдельные ветки… тааакое можно наворотить!</p>
<h3>Разместить на одной диаграмме несколько самостоятельных ветвей</h3>
<p>…между которыми связующих звеньев вообще может не быть — это глупо, но возможно. Или можно задать связи между ними в нелинейном сочетании:</p>
<pre style="padding-left: 40px;">flowchart TD

classDef leftAlign font-size:0.9em,color:black,stroke:DarkOrange,fill:Snow,stroke-width:1px,text-align:left;

biblioteka["Понял в тишине библиотеки"]
apple["Яблоки на снегу"]
gameOver["Демоны спёрли дыхание"]
bookIsClosed["Книга недолго открыта"]
listOfEvents("• Некуда спешить
• Не о чём думать
• Начинается дождь"):::leftAlign

apple 
--&gt; biblioteka 
--&gt; listOfEvents

S[\Происходит жизнь/]
--&gt; id1(Самурай всё понимает)
--&gt; id2[Невод закинут в море]
--&gt; listOfEvents
--&gt; E[/Разговор исчерпан\]

id1
--&gt; gameOver
--&gt; bookIsClosed</pre>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid008.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6260" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid008-1024x613.jpg" alt="" width="665" height="398" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid008-1024x613.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid008-300x180.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid008-768x460.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid008-660x395.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid008.jpg 1404w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<p>Вполне можно свести узел «Книга недолго открыта» к финишу, прописав последней командой „&#8212;&gt; E”, но это необязательно, некоторые процессы вполне самостоятельно могут закончиться «ничем».</p>
<p><!-- notionvc: 17b4916e-9c3a-43e4-bf85-1938f6251121 --></p>
<h2>Диаграмма последовательности</h2>
<p>Она же <a href="https://mermaid.js.org/syntax/sequenceDiagram.html">Sequence diagram</a>.</p>
<p>Это предпочитают программисты — удобно показать, как процессы взаимодействуют друг с другом и в каком порядке.</p>
<pre style="padding-left: 40px;">sequenceDiagram

Jules-&gt;&gt;+Brett: What does Marsellus Wallace look like?
Brett--&gt;&gt;+Jules: …What?
Jules-&gt;&gt;+Brett: ENGLISH, MOTHERFUCKER! DO YOU SPEAK IT!?
Brett--&gt;&gt;+Jules: Yes!!
Jules-&gt;&gt;+Brett: DESCRIBE WHAT MARSELLUS WALLACE “LOOKS” LIKE!
Brett--&gt;&gt;+Jules: Wha-what I—?
Jules-&gt;&gt;+Brett: SAY "WHAT" AGAIN! I DOUBLE-DARE YOU, MOTHERFUCKER!! SAY "WHAT" ONE MORE GODDAMN TIME!
Brett--&gt;&gt;+Jules: H-H-He's black...
Jules-&gt;&gt;+Brett: Go on!
Brett--&gt;&gt;+Jules: ...He's bald...!
Jules-&gt;&gt;+Brett: Does he look like a bitch?!
Brett--&gt;&gt;+Jules: What? 
Note over Jules,Brett: shoots Brett in the shoulder
Jules-&gt;&gt;+Brett: DOES! HE! LOOK! LIKE! A BITCH?!?!
Brett--&gt;&gt;+Jules: NO!
Jules-&gt;&gt;+Brett: Then why'd you try to fuck him like a bitch, Brett?
Brett--&gt;&gt;+Jules: I didn't...!
Jules-&gt;&gt;+Brett: Yes, you did! YES, you DID, Brett! You tried to fuck him!</pre>
<div id="attachment_6261" style="width: 675px" class="wp-caption aligncenter"><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid009.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6261" class="wp-image-6261 size-large" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid009-899x1024.jpg" alt="" width="665" height="757" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid009-899x1024.jpg 899w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid009-263x300.jpg 263w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid009-768x875.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid009-1349x1536.jpg 1349w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid009-660x752.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid009.jpg 1360w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a><p id="caption-attachment-6261" class="wp-caption-text"><em>Pulp Fiction in action</em></p></div>
<p>Акторов может быть множество, переходы между ними тоже доступны в разных сочетаниях.</p>
<p>Разумно рисовать от одного актора только сплошные стрелки, а от другого только прерывистые.</p>
<p>Неразумно рисовать в таком стиле длинные диаграммы.</p>
<p>Также программисты используют рисование диаграмм через LiveScript с аналогичными возможностями:</p>
<pre>sequenceDiagram
  actor Customer
  participant Checkout
  participant DB

  Customer-&gt;&gt;+Checkout: Request checkout page
  Checkout-&gt;&gt;+DB: /api/settings

и так далее по той же схеме.</pre>
<p>&nbsp;</p>
<h2>Диаграмма состояний</h2>
<p>Она же <a href="https://mermaid.js.org/syntax/stateDiagram.html">State diagram</a> — диаграмма, которая описывает поведение систем. Ты видел её в книге Коупленда про тест-дизайн.</p>
<div id="attachment_6247" style="width: 310px" class="wp-caption aligncenter"><a href="https://testitquickly.com/wp-content/uploads/2024/08/copeland-order-diagram-.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6247" class="wp-image-6247 size-medium" src="https://testitquickly.com/wp-content/uploads/2024/08/copeland-order-diagram--300x258.jpg" alt="" width="300" height="258" srcset="https://testitquickly.com/wp-content/uploads/2024/08/copeland-order-diagram--300x258.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/copeland-order-diagram--768x661.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/copeland-order-diagram--660x568.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/copeland-order-diagram-.jpg 980w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-6247" class="wp-caption-text"><em>Всё чётко, да?</em></p></div>
<p>Эта диаграмма — учебная, кривая, неправильная:</p>
<p style="padding-left: 40px;">Note that the diagram is still incomplete. No arrows and bulls-eyes emerge from the Cancelled states. Perhaps we could reinstate a reservation from the Cancelled NonPay state. We could continue expanding the diagram to include seat selection, flight cancellation, and other significant events affecting the reservation but this is sufficient to illustrate the technique.</p>
<p style="padding-left: 40px;">© Lee Copeland</p>
<p>А она неправильная. Просто для экономии бумаги три перехода сведены к одному и тому же (Cancelled ByCust), а в норме это надо выводить в отдельные (тупиковые) ветви. Иногда даже из тупичка может произойти обратное действие, и если через всё пространство протягивать стрелки в одно и то же место, то через какое-то время диаграмма покрывается паутиной метаний от одного узла к другому… ох.</p>
<p>Её надо пересоставить в более адекватном порядке, но для разгона попробуем воссоздать как есть, сведём выход из нескольких узлов в один Cancelled ByCust:</p>
<pre style="padding-left: 40px;">stateDiagram-v2

[*] --&gt; Made : giveInfo/startPayTimer
Made --&gt; Cancelled_NonPay : PayTimer_expired
Made --&gt; CancelledByCust : cancel
Made --&gt; Paid : payMoney 
Paid --&gt; CancelledByCust : cancel/Refund
Ticketed --&gt; CancelledByCust : cancel/ReturnTicket/Refund
Paid --&gt; Ticketed : print/Ticket
Ticketed --&gt; Used : giveTicket
Used --&gt; [*]</pre>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid011.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6265" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid011-1024x824.jpg" alt="" width="665" height="535" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid011-1024x824.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid011-300x241.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid011-768x618.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid011-660x531.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid011.jpg 1379w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<p>Важно: названия узлов должны быть представлены одним словом. Пробел между ними принудительно создает новый узел. Решение — отдельно создать <del>переменную</del> узел с условным названием и содержимым в виде слов с пробелом. Например:</p>
<pre style="padding-left: 40px;">stateDiagram-v2

CancelledByCust: Cancelled by Customer
Cancelled_NonPay: Cancelled when payTimer expired

[*] --&gt; Made : giveInfo/startPayTimer 
Made --&gt; Cancelled_NonPay : PayTimer_expired 
Made --&gt; CancelledByCust : cancel 
Made --&gt; Paid : payMoney 
Paid --&gt; CancelledByCust : cancel/Refund 
Ticketed --&gt; CancelledByCust : cancel/ReturnTicket/Refund 
Paid --&gt; Ticketed : print/Ticket 
Ticketed --&gt; Used : giveTicket Used --&gt; [*]</pre>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid014.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6269" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid014-1024x600.jpg" alt="" width="665" height="390" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid014-1024x600.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid014-300x176.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid014-768x450.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid014-1536x900.jpg 1536w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid014-660x387.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid014.jpg 1786w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<p>Раз уж название каждого узла — это его уникальный идентификатор, придется все эти ответвления в «CancelledByCustomer» сделать уникальными через нумерацию. Заодно пометим цветом happyPath и отхождения от него:</p>
<pre style="padding-left: 40px;">stateDiagram-v2

classDef happyPath font-size:1em,color:black,stroke:DarkOrange,fill:palegreen,stroke-width:1px,text-align:left;
classDef negativeScenario font-size:1em,color:black,stroke:DarkOrange,fill:IndianRed,stroke-width:1px,text-align:left;

[*] --&gt; Made:::happyPath : giveInfo/startPayTimer
Made --&gt; Cancelled_NonPay:::negativeScenario : PayTimer_expired
Made --&gt; CancelledByCustomer_1:::negativeScenario : cancel
Made --&gt; Paid:::happyPath : payMoney 
Paid --&gt; CancelledByCustomer_2:::negativeScenario : cancel/Refund
Ticketed --&gt; CancelledByCustomer_3:::negativeScenario : cancel/ReturnTicket/Refund
Paid --&gt; Ticketed:::happyPath : print/Ticket
Ticketed --&gt; Used:::happyPath : giveTicket
Used --&gt; [*]</pre>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid012.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6267" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid012-1024x783.jpg" alt="" width="665" height="508" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid012-1024x783.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid012-300x229.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid012-768x587.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid012-660x504.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid012.jpg 1463w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<p>Можно задать направление этой диаграммы по-горизонтали, но это воспринимается неудобно:</p>
<p><code>direction LR</code></p>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid013.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6268" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid013-1024x232.jpg" alt="" width="665" height="151" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid013-1024x232.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid013-300x68.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid013-768x174.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid013-1536x349.jpg 1536w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid013-660x150.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid013.jpg 1806w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<h3>Намутить тест-кейсы по этим путепроводам</h3>
<p>Дёрнем chatGPT с задачей перемножить все эти блямбы между собой.</p>
<p>Для stateDiagram псевдоинтеллект выдал такое:</p>
<ol>
<li><strong>TC1: Complete Payment and Print Ticket</strong>
<ul>
<li><strong>Initial State:</strong> [*]</li>
<li><strong>Action:</strong> giveInfo/startPayTimer</li>
<li><strong>Result:</strong> Made</li>
<li><strong>Action:</strong> payMoney</li>
<li><strong>Result:</strong> Paid</li>
<li><strong>Action:</strong> print/Ticket</li>
<li><strong>Result:</strong> Ticketed</li>
<li><strong>Action:</strong> giveTicket</li>
<li><strong>Result:</strong> Used</li>
<li><strong>Final State:</strong> [*]</li>
</ul>
</li>
<li><strong>TC2: Complete Payment and Use Ticket</strong>
<ul>
<li><strong>Initial State:</strong> [*]</li>
<li><strong>Action:</strong> giveInfo/startPayTimer</li>
<li><strong>Result:</strong> Made</li>
<li><strong>Action:</strong> payMoney</li>
<li><strong>Result:</strong> Paid</li>
<li><strong>Action:</strong> print/Ticket</li>
<li><strong>Result:</strong> Ticketed</li>
<li><strong>Action:</strong> giveTicket</li>
<li><strong>Result:</strong> Used</li>
<li><strong>Final State:</strong> [*]</li>
</ul>
</li>
</ol>
<p>И так далее.</p>
<p>Уберем детали:</p>
<p><strong>Happy Path Test Cases</strong></p>
<ol>
<li>TC1: Complete Payment and Print Ticket</li>
<li>TC2: Complete Payment and Use Ticket</li>
</ol>
<p><strong>Negative Scenario Test Cases</strong></p>
<ol>
<li>TC3: Payment Timer Expired</li>
<li>TC4: Cancelled by Customer Before Payment</li>
<li>TC5: Cancelled by Customer After Payment</li>
<li>TC6: Cancelled by Customer After Ticket Printed</li>
</ol>
<p>Кхм… Позитивные тесты — отдельно напечатать билет и отдельно его использовать — ну-ну. Тебе же говорили, что диаграмма неадекватная и требует пересмотра?</p>
<p>А отклонения от happyPath ПИ считало норм.</p>
<p>Хорошо бы ещё навостриться прописывать основу для диаграмм, из которой chatGPT мог бы генерировать код для самих диаграмм, и тогда можно ускориться ещё сильнее.</p>
<h2>Туториалы по Mermaid</h2>
<p>Их <a href="https://mermaid.js.org/ecosystem/tutorials.html">таки есть</a>, вот два самых наглядных:</p>
<p><iframe loading="lazy" title="How to Create Mermaid Diagrams in GitLab" width="665" height="499" src="https://www.youtube.com/embed/SQ9QmuTHuSI?start=481&#038;feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>и</p>
<p><iframe loading="lazy" title="Mermaid In Markdown, Diagrams As Code: Introduction, How-to, And Demo" width="665" height="374" src="https://www.youtube.com/embed/qGsQolMh9zE?start=204&#038;feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>Файл с примерами из второго видео — <a href="https://github.com/PetterTech/DemoStuff/blob/main/Mermaid/mermaid.md">mermaid.md</a></p>
<h2>ZIM</h2>
<p>Любопытно, что в вики-редакторе Zim тоже есть модуль «Вставка диаграмм» (ему нужен GraphViz), который работает по тому же принципу — пишем словами, видим диаграмму. Редактирование диаграммы включается даблкликом по ней.</p>
<h2>Вольное последумие</h2>
<p>Диаграммы как сапёрные лопатки, отлично помогают только там, где они уместны. Нельзя сводить представление всех сложных абстракций <em>только</em> к диаграммам. Надо уметь всё объяснять и рисунками, и текстом, и видео.</p>
<p>© Джеральд Вайнберг, книга «<em>Exploring Requirements — quality before design</em>» (1989), подглава «1.4 Making Sure That Everyone Can Read the Map»:</p>
<p style="padding-left: 40px;">Proponents of each notation claim that their maps are “intuitive” and ”easy to read”. These statements are true in the same sense that Chinese is intuitive — in Beijing. Virtually any notational system becomes intuitive after someone has spent a lot of time working with it.</p>
<p>Как только диаграмма объяснила одну идею, её надо немедленно оставить в покое и не усложнять — рисуй новые.</p>
<p>Генеративные сервисы надо держать под пристальным, недоверчивым присмотром, бо оно тебе нагенерирует, лишь бы ты был хоть немного счастлив. Если в череде шагов не будет чего-то очевидного, то GPT ничем не поможет, оно будет работать только с тем, что ему передал нерадивый тестировщик.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2024/08/12/mermaid-uml-uzor-tsaranesc/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6211</post-id>	</item>
		<item>
		<title>Переозвучить Teams на смартфоне</title>
		<link>https://testitquickly.com/2021/10/13/%d0%bf%d0%b5%d1%80%d0%b5%d0%be%d0%b7%d0%b2%d1%83%d1%87%d0%b8%d1%82%d1%8c-teams-%d0%bd%d0%b0-%d1%81%d0%bc%d0%b0%d1%80%d1%82%d1%84%d0%be%d0%bd%d0%b5/</link>
					<comments>https://testitquickly.com/2021/10/13/%d0%bf%d0%b5%d1%80%d0%b5%d0%be%d0%b7%d0%b2%d1%83%d1%87%d0%b8%d1%82%d1%8c-teams-%d0%bd%d0%b0-%d1%81%d0%bc%d0%b0%d1%80%d1%82%d1%84%d0%be%d0%bd%d0%b5/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Wed, 13 Oct 2021 10:36:22 +0000</pubDate>
				<category><![CDATA[Документация]]></category>
		<category><![CDATA[Радости]]></category>
		<category><![CDATA[Читерство]]></category>
		<category><![CDATA[MS Teams]]></category>
		<guid isPermaLink="false">http://testitquickly.com/2021/10/13/%d0%bf%d0%b5%d1%80%d0%b5%d0%be%d0%b7%d0%b2%d1%83%d1%87%d0%b8%d1%82%d1%8c-teams-%d0%bd%d0%b0-%d1%81%d0%bc%d0%b0%d1%80%d1%82%d1%84%d0%be%d0%bd%d0%b5/</guid>

					<description><![CDATA[По-дефолту звуки, которые издает Teams на смартфоне раздражают даже мëртвого Имхотепа — имхо, конечно, да кабы у него был смартфон, коий ему не дадут. Их можно отключить ВООБЩЕ, но иногда таки надо получать сообщения из этой навязанной корпорациями шняжки, поэтому еë не заткнуть. Но как тут поменять звук-то?!?!?!? А вот так: В приложении Teams тыкнуть… <span class="read-more"><a href="https://testitquickly.com/2021/10/13/%d0%bf%d0%b5%d1%80%d0%b5%d0%be%d0%b7%d0%b2%d1%83%d1%87%d0%b8%d1%82%d1%8c-teams-%d0%bd%d0%b0-%d1%81%d0%bc%d0%b0%d1%80%d1%82%d1%84%d0%be%d0%bd%d0%b5/">Читать далее: Переозвучить Teams на смартфоне &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p></p>
<p class="wp-block-paragraph">По-дефолту звуки, которые издает Teams на смартфоне раздражают даже мëртвого Имхотепа — имхо, конечно, да кабы у него был смартфон, коий ему не дадут.</p>
<p></p><p>
</p>
<p class="wp-block-paragraph">Их можно отключить ВООБЩЕ, но иногда таки надо получать сообщения из этой навязанной корпорациями шняжки, поэтому еë не заткнуть.</p>
<p></p><p>
</p>
<p class="wp-block-paragraph">Но как тут поменять звук-то?!?!?!?</p>
<p></p><p>
</p>
<p class="wp-block-paragraph">А вот так:</p>
<p></p><p>
</p>
<pre class="wp-block-preformatted">В приложении Teams тыкнуть по иконке своего аккаунта,
-&gt; Settings (Настройки)
-&gt; Notifications (Уведомления)
-&gt; General activity (Общие действия)
-&gt; Chats (Чаты)
-&gt; Без звука
Или же можно выбрать другой звук, например, тишину.</pre>
<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2021/10/13/%d0%bf%d0%b5%d1%80%d0%b5%d0%be%d0%b7%d0%b2%d1%83%d1%87%d0%b8%d1%82%d1%8c-teams-%d0%bd%d0%b0-%d1%81%d0%bc%d0%b0%d1%80%d1%82%d1%84%d0%be%d0%bd%d0%b5/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4722</post-id>	</item>
		<item>
		<title>Сохранить несохраняемое видео от дяди Боба Мартина</title>
		<link>https://testitquickly.com/2020/09/23/scoatem-clipusoarele-din-net/</link>
					<comments>https://testitquickly.com/2020/09/23/scoatem-clipusoarele-din-net/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Wed, 23 Sep 2020 19:14:23 +0000</pubDate>
				<category><![CDATA[Видео]]></category>
		<category><![CDATA[Инструменты]]></category>
		<category><![CDATA[Скриншоты]]></category>
		<category><![CDATA[Читерство]]></category>
		<category><![CDATA[Юзероиммитатор]]></category>
		<category><![CDATA[Calc]]></category>
		<category><![CDATA[kate]]></category>
		<category><![CDATA[Robert Martin]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=4521</guid>

					<description><![CDATA[Дядя Анкл Боб Мартин уже давно записывает местами хилэриоус, местами вообщенотхилэриоус видео про всякие премудрости относительно программирования и продаёт на cleancoders.com доступ к ним за сравнительно немного мировых нефтяных запасов: 14$ за просмотр видео (стриминг) 20$ за возможность скачать видео) Анадысь я сбегал на один его открытый стрим про историю и будущее языков программирования и… <span class="read-more"><a href="https://testitquickly.com/2020/09/23/scoatem-clipusoarele-din-net/">Читать далее: Сохранить несохраняемое видео от дяди Боба Мартина &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Дядя Анкл Боб Мартин уже давно записывает местами хилэриоус, местами вообщенотхилэриоус видео про всякие премудрости относительно программирования и продаёт на <a href="https://cleancoders.com">cleancoders.com</a> доступ к ним за сравнительно немного мировых нефтяных запасов:</p>
<ul>
<li>14$ за просмотр видео (стриминг)</li>
<li>20$ за возможность скачать видео)</li>
</ul>
<p>Анадысь я сбегал на один его открытый <a href="https://www.youtube.com/watch?v=ya1xDCCMh7g">стрим про историю и будущее языков программирования</a> и получил за это такое письмо</p>
<p style="padding-left: 40px;">Thanks for attending Uncle Bob&#8217;s webinar, The Future of Programming Languages! Use the following code to redeem a free streaming episode of your choice from cleancoders.com…</p>
<p>Я выбрал видео самым близким мне названием «Test Design»</p>
<p style="padding-left: 40px;">Clean Code: Advanced TDD, Episode 21</p>
<p>
56 minutes • 1.00GB • Aug 2013</p>
<p>
https://cleancoders.com/episode/clean-code-episode-21</p>
<p>Редим-код как раз на 14$, поэтому я положил в корзину «стрим» и купил видео на просмотр бесплатно, на условиях продавца, легально и законно.</p>
<p>
<a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob007_1.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4530" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob007_1.png?w=300" alt="" width="300" height="187" /></a></p>
<p>
Но я хочу это видео скачать бесплатно без регистрации и смс. Что делать?</p>
<p>
<span id="more-4521"></span></p>
<h3><span style="color: #008000;"><strong>Найти источник видео</strong></span></h3>
<p style="padding-left: 40px;">Ввиду того, что меня никто не просил всё это делать, и вообще это всё мамкино кулхацкерство для обучения неофитов, все уникальные символосочетания в ссылках и на скриншотах заменены/замазаны.</p>
<p style="padding-left: 40px;">И вообще все ссылки резко сокращены, бо всё равно это условности.</p>
<p><strong>Firefox</strong>: F12 &gt; Сеть &gt; Медиа (это фильтр, собственно). Тыкнуть по какому-нибудь источнику в списке полученных ответов и выбрать для него режим просмотра Headers (Заголовки).</p>
<p>
<a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob001.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4531" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob001.png?w=300" alt="" width="300" height="166" /></a></p>
<p>
<strong>Chrome:</strong> F12 &gt; Сеть &gt; XHR (или фильтруем по All, разница несущественная). Тыкнуть по какому-нибудь источнику и выбрать для него режим просмотра Headers (Заголовки).</p>
<p>
<a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob003.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4532" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob003.png?w=300" alt="" width="300" height="165" /></a></p>
<p>
В общем, что хром, что по лбу — видим повторяющиеся URL типа https://videos-cloudflare.jwpsrv.com/content/conversions/abcdef123456/videos/NVGldаRq-2327О335.mp4-67.ts — отсюда далее представляем их в виде</p>
<pre>https://videos/NVGldаRq-2327О335.mp4-1.ts
https://videos/NVGldаRq-2327О335.mp4-2.ts
https://videos/NVGldаRq-2327О335.mp4-3.ts
…</pre>
<p>Следовательно, видео приходит в браузер кусками/частями в виде ts-файлов, которые принадлежат какому-то большому файлу с названием «NVGIdаRq-2327О335.mp4» и пронумерованы логично и последовательно.</p>
<p>
Прокрутил я это видео дяди АнклБоба в конец и посмотрел в логе номер последней прилетевшей части — «848.ts» — всего-то файлов скачать. Оукей, «Челленджер» акксепдет.</p>
<p style="padding-left: 40px;">Хотя, мы уже знаем имя файла (NVGldaRq-23270335.mp4). Так поскорее же</p>
<pre style="padding-left: 40px;">wget https://videos/NVGldаRq-2327О335.mp4</pre>
<p style="padding-left: 40px;">Однако в ответ приходит</p>
<pre style="padding-left: 40px;">403 Forbidden
2020-09-27 23:59:22 ОШИБКА 403: Forbidden.</pre>
<p style="padding-left: 40px;">Нда? Ну, тогда надо</p>
<h3><span style="color: #008000;"><strong>Упорядочить добычу</strong></span></h3>
<p>Чтобы получить ВСЕ ссылки на ВСЕ эти файлы, их надо инкрементально размножить. Для этого можно выучить, наконец, Python, или можно зайти в Excel. Ладно, у меня</p>
<p>
<strong>LibreOffice Calc</strong></p>
<p>
И в первую колонку положим общий шаблон</p>
<pre>https://videos/NVGldаRq-2327О335.mp4-
https://videos/NVGldаRq-2327О335.mp4-
https://videos/NVGldаRq-2327О335.mp4-</pre>
<p>А во вторую — инкремент</p>
<pre>1.ts
2.ts
3.ts</pre>
<p>Достаточно трёх строк. Ухватили край третьей ячейки курсором и потянули вниз, пока не мелькнёт строка «848». Автоподстава безупречна.</p>
<p>
<a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob004.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4534" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob004.png?w=300" alt="" width="300" height="257" /></a></p>
<p>
Выделить обе колонки, Ctrl+C.</p>
<p>
<strong>Kate</strong></p>
<p>
Ctrl+V. Получили вот это:</p>
<pre>https://videos/NVGldаRq-2327О335.mp4- 1.ts
https://videos/NVGldаRq-2327О335.mp4- 2.ts
https://videos/NVGldаRq-2327О335.mp4- 3.ts
…</pre>
<p><strong>Kate.Замена #1</strong> (Ctrl+R)</p>
<p>
Убираем символы табуляции после «.mp4»</p>
<pre>[.mp4-\t]
[.mp4-]
Режим: Управляющие последовательности
«Заменить все».</pre>
<p><a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob010.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4525" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob010.png?w=300" alt="" width="300" height="46" /></a></p>
<p>
Результат:</p>
<pre>https://videos/NVGldаRq-2327О335.mp4-1.ts
https://videos/NVGldаRq-2327О335.mp4-2.ts
https://videos/NVGldаRq-2327О335.mp4-3.ts
…</pre>
<p><strong>Kate.Замена #2</strong></p>
<p>
Убираем перенос строк</p>
<pre>[.ts\n]
[.ts ]
Режим: Управляющие последовательности
«Заменить все».</pre>
<p>Результат: одна длинная строка, уходящая в правую даль.</p>
<pre>https://videos/NVGldаRq-2327О335.mp4-1.ts https://videos/NVGldаRq-2327О335.mp4-2.ts https://videos/NVGldаRq-2327О335.mp4-3.ts</pre>
<p>Перед этой строкой дописываем настройки wget (Расшифровка: эй, wget, а поскачивай мне файлы из строки поочерёдно, и если будет отказ соединения, повторяй подключение через каждые 60 секунд):</p>
<pre>wget -c -t 60 https://videos/NVGldаRq-2327О335.mp4-1.ts https://videos/NVGldаRq-2327О335.mp4-2.ts https://videos/NVGldаRq-2327О335.mp4-3.ts…</pre>
<p>Ctrl+A, Ctrl+C.</p>
<p>
<strong>В консоль</strong></p>
<p>
Сделать новый каталог и зайти в него.</p>
<pre>mkdir UncleBobVideo &amp;&amp; cd UncleBobVideo</pre>
<p>Вставить награбленное добро с wget в голове (Ctrl+V) и запустить (Enter).</p>
<p>Смотрим на мельтешение строк.</p>
<p>
<a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob002.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4535" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob002.png?w=300" alt="" width="300" height="152" /></a></p>
<p>
Если всё ок — уходим играть «<em>Белоруссия ждёт переименования в Беларусь</em>» на ксилофоне, бо это надолго.</p>
<p>Итог скачивания файлов в Dolphin выглядит норм. Но там сортировка приближённая к естественной (в настройках Sorting mode = Natural).</p>
<p>
<a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob005.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4526" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob005.png?w=300" alt="" width="300" height="207" /></a></p>
<p>
В действительности всё отсортировано так, как это всегда было в DOS…</p>
<p>
<a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob006.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4528" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob006.png?w=191" alt="" width="191" height="300" /></a></p>
<p>
И если запихнуть все эти файлы в один плейлист в видеоплеере, то воспроизводиться всё будет именно так, как должно по машинной логике:</p>
<pre>1.ts
10.ts
100.ts
101.ts
…</pre>
<p>Что можно сделать:</p>
<ol>
<li>или выстроить файлы в плейлисте вручную,</li>
<li>или — old school — переименовать файлы по следующему шаблону:</p>
<p>
001.ts</p>
<p>
002.ts</p>
<p>
…</p>
<p>
009.ts</p>
<p>
010.ts</p>
<p>
011.ts</p>
<p>
и так далее.</li>
</ol>
<p>Возможно, отредактировать плейлист будет проще. Это же обычный текстовый файл с расширением m3u, а его содержимое — хэх, копипаст из того самого Excel идеально подойдёт (мы же его не удалили?) с удалением символов табуляции.</p>
<p style="padding-left: 40px;">Ну или в консоли</p>
<pre style="padding-left: 40px;">ls &gt; playlist.m3u</pre>
<p style="padding-left: 40px;">Чтобы получить более внятный список файлов, можно использовать ls так:</p>
<pre style="padding-left: 40px;">ls --group-directories-first -p -1 &gt; playlist.m3u</pre>
<p style="padding-left: 40px;">Затем открыть файл playlist.m3u в Kate и вперёд, переставлять блоки текста местами. Или же копипаст из экселя, чо мудрить-то…</p>
<p>Теперь можно открыть этот плейлист в видеоплеере и если он будет адекватным, то можно будет смотреть череду коротких видеофайликов как один большой (50 минут).</p>
<p>А если раз в сутки будут разрывы между файлами — можно собрать все разрозненные файлы в один большой видеофайл, мне для этого очень норм <em>OpenShot</em>.</p>
<p>Или можно поискать какое-то сложное колдунство в консоли, бо буквально всё то, что я сделал в Calc и Kate, можно сделать в консоли, бо это же работа со строками в plain/text файлах.</p>
<p style="padding-left: 40px;">И даже сборку множества видеофайлов в один можно сделать в консоли…</p>
<p>Итоговое соображение: всё то, что попадает в сеть, может быть скачано и использовано. Смиряемся с этим.</p>
<h3><span style="color: #008000;"><strong>Сохранить полноразмерное фото из инстаграма</strong></span></h3>
<p>А теперь бесплатный лайфхак для любителей бесплатных лайфхаков. Можно сохранить полноразмерное фото из инстаграм, если воспользоваться тем же методом просмотра загружаемого контента. Иногда там файлы размером в три-пять тысяч пикселей, поэтому лечение стоит свеч.</p>
<ol>
<li>Запустить в браузере «уголок веб-мастера» по [F12].</li>
<li>Открыть страницу с фотографией (иначе ничего не загрузится же), например, это <a href="https://www.instagram.com/p/CFXlAIpgU1w/">https://www.instagram.com/p/CFXlAIpgU1w/</a></li>
</ol>
<p><strong>Firefox</strong>: F12 &gt; Сеть &gt; Изображения</p>
<p>
<a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob008.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4536" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob008.png?w=300" alt="" width="300" height="162" /></a></p>
<p style="padding-left: 40px;">Отсортировать по колонке «Размер» так, чтобы самые объёмные файлы были первыми.</p>
<p style="padding-left: 40px;">Тыкнуть по первому источнику и выбрать режим просмотра Ответ.</p>
<p style="padding-left: 80px;">Если картинка неподходящая — тыкаем следующий источник. Долго тыкать не придётся.</p>
<p style="padding-left: 40px;">Затем даблклик по подходящему источнику — откроется новая вкладка с искомой картинкой в полном размере первоисточника.</p>
<p><strong>Chrome</strong>: F12 &gt; Network &gt; Img</p>
<p>
<a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob009.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4537" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob009.png?w=300" alt="" width="300" height="165" /></a></p>
<p style="padding-left: 40px;">Тыкнуть по какому-нибудь источнику и выбрать режим просмотра Preview.</p>
<p style="padding-left: 40px;">Общая сортировка по размеру принятых файлов и последовательное тыканье по ним — ня.</p>
<p>Ставьте лайки на свои колокольчики и подписывайтесь на дядибобин канал.</p>
<p>Мне же остаётся последний лайфхак: сделать это всё в консоли, на bash и в Python. Задача достижима (руками), следовательно, можно всё сделать не выходя из консольки.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2020/09/23/scoatem-clipusoarele-din-net/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4521</post-id>	</item>
		<item>
		<title>Casio FX-991EX</title>
		<link>https://testitquickly.com/2020/05/02/casio-fx-991ex/</link>
					<comments>https://testitquickly.com/2020/05/02/casio-fx-991ex/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Sat, 02 May 2020 17:37:46 +0000</pubDate>
				<category><![CDATA[В гостях у психиатра]]></category>
		<category><![CDATA[Инструменты]]></category>
		<category><![CDATA[Читерство]]></category>
		<category><![CDATA[Casio]]></category>
		<category><![CDATA[Citizen]]></category>
		<category><![CDATA[Facebook]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=4380</guid>

					<description><![CDATA[Я тупею. Возраст и Фэйсбук берут своё. Внешне это ещё не заметно, но внутри чувствуется как болезнь. Пик её пришёлся на 2014-ый, когда было тревожно жить и было важно знать, где прямо сейчас в Киеве опасно, чтобы знать и принимать соответствующие решения. Лента новостей была оооогромной, вперемешку свидетельства, новости, слухи, мнения. Не сразу, но почувствовал… <span class="read-more"><a href="https://testitquickly.com/2020/05/02/casio-fx-991ex/">Читать далее: Casio FX-991EX &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Я тупею. Возраст и Фэйсбук берут своё. Внешне это ещё не заметно, но внутри чувствуется как болезнь.</p>
<p>Пик её пришёлся на 2014-ый, когда было тревожно жить и было важно знать, где прямо сейчас в Киеве опасно, чтобы знать и принимать соответствующие решения. Лента новостей была оооогромной, вперемешку свидетельства, новости, слухи, мнения. Не сразу, но почувствовал эффект «рекомендуемого контента».</p>
<p><span id="more-4380"></span>И проблема не в том, что я не выбираю, что смотреть, а в том, что рекомендуемый контент «заходит» как конфетка за конфеткой, что совершенно безалабернизирует и мышление, и восприятие. Уже не думал, а только реагировал.</p>
<p>К чему это всё привело: организм стал требовать постоянного обновления и развлечения, а также стало сложно сосредоточиться на долгосрочных <del>рабочих</del> задачах. Стало сложно засесть, как когда-то, за чтение книги (або просмотр фильма) часа на два, бо вскорости начинается сучение ножками и уверения в том, что «Да я просто посмотрю в википедии модель мэшингана, из которого Джек Ричер крошит супостатов, а что такое калибр, а какой был калибр у револьверов образца 1870-х гг, а раз уж мы тут, заглянем и в…»</p>
<p>Лечение было неоднозначным и ещё не закончилось.</p>
<p>Сперва я делал эксперименты вроде «перестать нажимать на лайки», чтобы бескровно вырваться из пузыря рекомендуемого контента (раз уж целиком и сразу невозможно). Результат — так себе. Если бы механизм слежения был основан только на лайках… Но в целом вообще перестал где бы то ни было ставить лайки или реагировать эмотикончиками.</p>
<p>Затем перешел в режим «фигачить контент» — там же надо подумать, не? Оказывает, не, можно «фигачить контент» с высокой скоростью и частотой в любое время суток, но от безалабернизации это не спасает.</p>
<p style="padding-left: 40px;">А со стороны ещё и выглядит как «весь рабочий день зависает в фэйсбуках».</p>
<p>Затем пошли припарки на трупе лошади: убрал приложение со смартфона. В браузере это всё менее удобно, но, к сожалению, приноровился быстро.</p>
<p>Затем заходил в ФБ только со смартфона. Но смартфон в офисе постоянно под правой рукой, а дома постоянно у подушки…</p>
<p>Уменьшил количество «друзей», снял подписку на посты всех оставшихся. В фэйсбук зайдёшь, а ничего нового нет (кагбэ), ну и уходишь. Кагбэ.</p>
<p>И да, на DOU ежедневно заходить нельзя. Если туда не ходить — становишься терпимее и добрее. Если наоборот, то — наоборот.</p>
<p>Вроде бы полегчало, стал более взвешенно воспринимать всё, что читаю, стало меньше дурацких смешных видосиков, почти перестал думать мемасиками. Почти. Клиповое мышление привязывается быстро, а отвязывается долго (если вообще отвязывается).</p>
<p>Потом заметил, что в ФБ не хожу, зато залипаю на совершенно ненужных видео в Youtube, например, на бесконечном мельтешении коубов. В ютюбе «заклятие рекомендованного контента» ощущается особо сильно, но тут уже пофигу, клиповое мышление укоренилось.</p>
<p>С торрентов стал снимать не современные, а древние фильмы, 30-х и 40-х годов (только не советские!). Вообще — другой мир. Хз, является ли это следствием, но вроде бы сон наладился.</p>
<p>В работе: стал много читать «с бумаги» и записывать в бумажных блокнотах, а не во всех этих ваших удобных и стильных приложениях. Заодно перешёл на дорогие канцелярские принадлежности — появились какие-то замороченные, изысканные карандаши и ручки, и сразу 30 штук толстых красно-синих кохинуровских карандашей, бо в детстве такие были, и это действительно ня!</p>
<p>Блокноты тоже начал было брать дорогие, бо если ресурс ограничен, кагбэ и незачем рисовать каляки-маляки впустую — для этого есть напоминалки в смартфоне. Собираешься и пишешь по-делу — коротко и лаконично (гы-гы). Все инструкции и заморочки к педалям для гитары — в золотистом толстом блокноте Leuchtturm. Все заметки к системе анализа — в чёрном «репортёрском» Leuchtturm. Все бытовые записи, которые нужны больше, чем на день — в «репортёрском» Moleskine. Весь журнал автомобиля (от лога километража до марки масел в отдельном узле) — в А4-подобном красном блокноте Leuchtturm.</p>
<p style="padding-left: 40px;">Вообще, Leuchtturm — очень годный торт.</p>
<p>Со временем рабочими блокнотами стали шняжки вроде «небрежно разрезанная надвое тетрадь с перекидными листами на пружинке». Легко вырвать лист, легко выбросить целиком. Неотъемлемая часть рабочего стола.</p>
<p>И вообще, начал много писать от руки. Было… непривычно и сложно. Но помогает сосредоточиться. Рецепт, если надо в чём-то разобраться:</p>
<ul>
<li>бумажная книга по теме,</li>
<li>наидешёвейший блокнот,</li>
<li>наидорогущий карандаш.</li>
</ul>
<p>Увеличивается фокус на теме/задаче. И скорость поиска по важному содержимому тоже.</p>
<p style="padding-left: 40px;">Казалось бы, Ctrl+F быстрее, но для этого надо, чтобы текст был оформлен под эту задачу, а это увы.</p>
<p>В электрокнигах (коих у меня несколько сотен гигов, фигли) вроде бы тоже можно выделять отдельные абзацы/идеи и приписывать собственные заметки или закладки. Я долго сопротивлялся этому выводу, но он неизбежен — электрозаметки, коих у меня много сотен и в смартфоне, и в электрокнигах, не запоминаются и не интегрируются в обновлённое понимание.</p>
<p style="padding-left: 40px;">Они существуют как-то обособленно, как монетки иностранных государств в шкатулке в шкафу. Если иногда их нарочно достать и перебирать, то что-то брезжит. Но в целом они постоянно лежат в шкатулке в шкафу, их нет. Ходовая валюта остаётся прежней — рука, бумага, карандаш.</p>
<p>Качество оформления текста в бумажных книгах выше, чем в электрокопиях и вообще, и в частностях, если речь идет про научный контент (тест, например, дизайн). Оттуда в фэйсбуки ходить не хочется, и смартфон, как носовой платок Канта, днём постоянно находится на кухне. Уже вин.</p>
<p>В Украине книги дешевле, чем в Молдове, поэтому если прочитал и «нет нужности» — можно и <del>выбросить</del> вынести из дома, оставить где-нибудь. Кому-то если пригодится — велкам. Ценные остаются.</p>
<p style="padding-left: 40px;">В Молдове всё наобоврот (новое слово, чо). Дорогая канцелярка тут слишком дорогая. Книги — сразу нет, бо слишком дорогие. Ассортимент — ширяльный потреб, что-то ценное не найдёшь, надо заказывать из-за рубежа. Чёртова действительность окраинной губернии, нда. Хочется зайти в фыцбук и поматериццо на этот счёт.</p>
<p>Нынче на проекте постоянно чиркаю в блокнотах расчёты (чёртова крипта с тоннами цифр после запятой), бо надо проверять-перепроверять их правильность в приложении.</p>
<p>Наверное, можно всё это делать в Excel, но для этого надо переключаться между окнами в мониторе — теряется фокус. Когда-то это не было проблемой, но сегодня это чувствуется как проблема. Короче, блокнот с отрывными листами и карандаш наше всё.</p>
<p>Фокус получается удерживать, если приложение неподвижно в мониторе, а расчёты — в разложенных по столу бумажках с моими каракулями. Туда посмотрел, сюда посмотрел, туда, сюда. Сверился. Но если надо попереключаться между окнами — уже фэйл. Мозг ноет.</p>
<p>Виндовый калькулятор, конечно, норм — небольшой, висит поверх всего, клац-клац прямо с клавиатуры, две строки (введенные числа и результат расчётов). Но с ним увеличилось количество переносов взгляда между экраном и столом с бумажками. Почему-то, это ощущается. Ноет мозг.</p>
<p>Решил взять настольный калькулятор. Из детства у меня остался программируемый «Электроника МК-61». Всё хорошо, тепло и зелено-лампово, но экран в одну строку, и прибор работает только от розетки. Нехорошо. Моет нозг.</p>
<p>И с расчётами пошли сложности. То и дело надо выяснять правильность процентного соотношения (fees applied), а возраст уже такой, что мелочи отрицаются, и простые, вроде бы, формулы расчётов забываются или смешиваются. Начал подвисать на ровном месте. Выписал их себе в громадный настольный блокнот, полегчало, но это не точно. Гоез монт.</p>
<p>Предположил, что в современности уже должны быть калькуляторы с экранами на две строки, как в виндовом калькуляторе. И нагуглилось чудо чудное — инженерный непрограммируемый калькулятор „Casio fx-991EX” из серии ClassWiz, предназначен для будущих и бывших школьников. Поражает своей повышенной дружелюбностью и удобством проведения и перепроверки расчётов. Это затягивает. Это ВИН!</p>
<p style="padding-left: 40px;">ЖК-дисплей с высоким разрешением на несколько строк, небольшая, но электронная таблица (значения сбрасываются при выключении калькулятора), расчёты с дробями, с комплексными числами, с математическими, тригонометрическими и гиперболическими функциями, преобразование координат, решение уравнений с неизвестными, вычисления с векторами, девять запоминаемых (и после выключения калькулятора) ячеек памяти под переменные, 47 физических констант и 40 метрических преобразований, warp speed, mr. Sulu!</p>
<p>Тот самый случай, когда надо сперва прочитать полную инструкцию (на <a href="https://support.casio.com/en/manual/manualfile.php?cid=004009138">support.casio.com</a>), а затем уже свободно клац-клацать по клавишам. Читал я эту узкую брошюру с мелким шрифтиком, подчёркивал, экспериментировал, затем стал записывать отдельно в блокнот какие-то решения задач бытового характера на fx-991EX, вроде расчёта процентов и всякой «дорожной математики» вещи.</p>
<p style="padding-left: 40px;">Обычно я делал такие расчёты по логарифмической линейке на циферблате моих наручных часов (Citizen Promaster Sky <em>BJ7070-57E)</em>, но то вариант сугубо походный:</p>
<ul>
<li>на циферблате очень мелкие риски и точность расчётов слишком уж приблизительна,</li>
<li>к этому всему надо приноровиться через долгую практику. Пропустил месяц-два, и всё, доставай шпаргалку и прикидывай заново, что и как крутить и накладывать, бо дело неочевидное.</li>
</ul>
<p style="padding-left: 40px;">С широкоэкранным калькулятором это всё несравненно удобнее.</p>
<p>Дело задвигалось. Сохраняется более-менее неотключаемый фокус на происходящем, чёртова крипта уже не так уж и чёртова. Warp speed five, mr. Sulu!</p>
<p>Ввиду самотеплоизоляции тряхнул LaTeX-ом и собрал все эти мои записки в виде <a href="https://bit.ly/2YnMqfD">краткой инструкции</a> в pdf (Dropbox).Теперь всё то же самое воспринимается проще, бо не каракули, а высокохудожественная типографика же. Ctrl+P.</p>
<p>Если это всё будет полезно не только мне — welcome, рекомендую.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2020/05/02/casio-fx-991ex/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4380</post-id>	</item>
		<item>
		<title>Как перестать быть джуниором?</title>
		<link>https://testitquickly.com/2019/01/19/deamu-sa-te-faci-om/</link>
					<comments>https://testitquickly.com/2019/01/19/deamu-sa-te-faci-om/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Sat, 19 Jan 2019 20:44:24 +0000</pubDate>
				<category><![CDATA[Откровения]]></category>
		<category><![CDATA[Постановка мозгов]]></category>
		<category><![CDATA[Фотографии]]></category>
		<category><![CDATA[Читерство]]></category>
		<category><![CDATA[Бойцовский клуб]]></category>
		<category><![CDATA[Хитрый Билли]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=4001</guid>

					<description><![CDATA[Вопрос понятен. Ответ: надо перейти в режим «Я увольняюсь». Нет, не уволиться, а начать вести себя так, словно ты принял решение, и уже скоро уйдёшь. Увольняющийся всегда работает очень хорошо. А он просто делает ровно то, что нужно, не стараясь что-то улучшить. А он просто делает всё так, как ему было сказано. И вовремя. А… <span class="read-more"><a href="https://testitquickly.com/2019/01/19/deamu-sa-te-faci-om/">Читать далее: Как перестать быть джуниором? &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Вопрос понятен.</p>
<p>Ответ: надо перейти в режим «<span style="color: #008000;"><strong>Я увольняюсь</strong></span>».</p>
<p>Нет, не уволиться, а начать вести себя так, словно ты принял решение, и уже скоро уйдёшь.</p>
<p><span id="more-4001"></span></p>
<p>Увольняющийся всегда работает очень хорошо.</p>
<p style="padding-left: 30px;">А он просто делает ровно то, что нужно, не стараясь что-то улучшить.</p>
<p style="padding-left: 30px;">А он просто делает всё так, как ему было сказано. И вовремя.</p>
<p style="padding-left: 30px;">А он просто делает не больше того, что было указано.</p>
<p style="padding-left: 30px;">Отличный работник.</p>
<p style="padding-left: 30px;">Замечательный работник.</p>
<p style="padding-left: 30px;">Почему он раньше не был таким? Весёлый, креативный, как жалко, что он уже уходит. Вот всем бы так.</p>
<p>Почему увольняющийся так весел и креативен? Почему так унылы остающиеся?!</p>
<p>Джуниор, как школьник, боится сделать ошибку. Ну, вы знаете школьников — те самые стрёмные и неуверенные в себе дети, которые боятся получить двойку, чтобы не быть битыми батогами нещадно.</p>
<p style="padding-left: 30px;">Те самые, которые боятся экспериментов, бо их научили всегда выполнять какую-либо работу только по одному шаблону, иначе карательный меч педагогического правосудия&#8230;</p>
<p style="padding-left: 30px;">Те самые глупые детёныши человека, которых приучили делать только то, за что хвалят, и НЕ делать ничего того, за что будут ругать.</p>
<p style="padding-left: 30px;">Те самые, которые сперва выясняют правила и шаблоны, а потом стараются действовать строго в рамках этих правил, даже если здравый смысл говорит, что уже не надо так&#8230;</p>
<p style="padding-left: 60px;">Какой такой здравый смысл в школе? Вот те два! Вот те шаблон! Вот что имел ввиду автор сей поэмы, когда раскрывал образ Онегина в образе Татьяны!</p>
<p>Ну, вы их знаете. Скажите ещё раз спасибо вашим учителям за то, что они из вас воспитали.</p>
<p>Вот и сидят джуниоры наши в ступоре, медленно накликивая себе на баг-репорт. Бо страшно. И задачи выполняют медленно — бо страшно ошибиться. И делать стараются лучше, чем могут (бо всем так говорят), но при этом стараются не экспериментировать, а то вдруг накажут (все так говорят). Вот и поди разберись&#8230;</p>
<p>А если увольняешься, то уже не страшно. Уже как раз всё делаешь как надо. Уже и экспериментируешь (ну и хрен с ним, если не получится — переделаешь). И ни с кем ни о чём не споришь, не сомневаешься, просто делаешь.</p>
<p>И начинает получаться!</p>
<p>Повторюсь, что речь идёт не о реальном движняке в ближайший порт, а всего лишь о психическом настрое начинающего весляра, будущего капитана своего боевого швертбота класса USS Enterprise.</p>
<p>Харэ сомневаться, просто начни делать хотя бы ровно то, что от тебя ожидается. Это уже потребует множества усилий, и на сомнения времени не останется.</p>
<p><div id="attachment_4003" style="width: 510px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-4003" class="size-large wp-image-4003" src="https://testitquickly.com/wp-content/uploads/2019/01/бойцовский-клуб.png?w=500" alt="Давайте варить мыло" width="500" height="377" /><p id="caption-attachment-4003" class="wp-caption-text">Будете варить мыло?</p></div></p>
<h3><span style="color: #008000;"><strong>К манагерам</strong></span></h3>
<p>Всё вышесказанное было обращением к джуниорам, но раз уж вы за каким-то чёртом дочитали досюдова, то для вас есть два важных соображения.</p>
<p>1)</p>
<p>Менеджеру не рекомендуется рекомендовать джуну думать про «<em>А представь, что ты увольняешься&#8230;</em>» Одно дело услышать это от тех, кто не влияет на твою зп, и совсем другое дело услышать это от того, кто на твоё зп влияет прочно. Не доводите их до суицидальных наклонностей в вашу сторону. Лучше официально разрешите им экспериментировать с выполнением поставленных вами задач.</p>
<p style="padding-left: 30px;">Заодно сами начнёте лучше вникать в суть задач, а не только их раздавать и собирать отчёты.</p>
<p>2)</p>
<p>Опытный манагер всегда заранее знает, который из его пиратов намылился спрыгнуть за борт. Хитрому Билли кажется, что кроме него об этом ещё никто не знает, но решающий увольняться уже намного задолго до финальной дудки боцмана перестаёт вовлекаться в общее дело. Перестаёт спорить. Перестаёт предлагать. Перестаёт потеть и показываться на глаза начальству. Перестаёт бояться ответственности, и старается поменьше задач на себя брать. А те, которые взял, выполняет ровно настолько, насколько этого требуют условности контракта. И всё это очень хорошо видно и понятно, и если вам уже кажется, что кто-то из вашей команды заранее отстранился, то в приступе профессионализма вы можете вообразить, что уже распознали потенциального бегуна, и надо поскорее наподдать ему на прощание под зад&#8230;</p>
<p>Однако!</p>
<p>Люди могут отстраняться от вас не только перед увольнением. Например, если вы менеджер, но болван, и с вами сложно общаться, то эффект будет такой же — джуны постараются не попадаться вам на глаза чаще необходимого, выполнять ровно то, что было сказано, и вообще постараются не брать на себя никакую ответственность.</p>
<p>Джуниору нужно всего лишь избавиться от страха экспериментировать со способом выполнения задач. Собственно, весь секрет нашего профессионализма заключается в том, что ты на протяжении всего своего джуниорства позволял себе экспериментировать. В процессе поиска ответа на один вопрос ты находишь ответы на десять других, незаданных вопросов, и в итоге знаешь и умеешь намного больше, чем тот твой товарищ, который тыщу раз отмерял и сомневался, и готовился сделать всё СРАЗУ правильно.</p>
<p style="padding-left: 30px;">То же самое видно и у спортсменов.</p>
<p style="padding-left: 30px;">Люди разные, и ситуации разные. Но тот, кто долго и тщательно готовится сделать один, но правильный прыжок, всегда проигрывает тому, кто прыгает снова, и снова, и снова, и снова, и прыгает по-разному, в разных условиях, в разных эмоциональных состояниях, и просто прыгает для удовольствия, а не для «рраз — и победа». Почему так — сами догадайтесь.</p>
<p>P.S. А, ну да, если вы досюда дочитали, то вам интересно узнать, как понять, не болван ли вы. Ну, если вам кто-то что-то вякнул про вашего джуна, а вы не достали плазмаган для защиты своих пацанов, а побежали к вашему виновнику торжества, вытащили его в коридор и начали рвать ему пасть, приговаривая «<em>Почему я должен слышать жалобы от чужих про тебя и краснеть за тебя и страдать за тебя?!</em>», то увы&#8230;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2019/01/19/deamu-sa-te-faci-om/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4001</post-id>	</item>
		<item>
		<title>Как установить LaTeX (самостоятельно)</title>
		<link>https://testitquickly.com/2018/02/22/how-to-install-latex/</link>
					<comments>https://testitquickly.com/2018/02/22/how-to-install-latex/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Thu, 22 Feb 2018 17:52:07 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Документация]]></category>
		<category><![CDATA[Откровения]]></category>
		<category><![CDATA[Скриншоты]]></category>
		<category><![CDATA[Читерство]]></category>
		<category><![CDATA[LaTeX]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=3838</guid>

					<description><![CDATA[У меня уже произошло стойкое углубление в LaTeX, что привело к массивным экспериментам со множеством его пакетов, поэтому наличие полного набора всего и сразу мне благостно. Заранее же не знаешь, куда любопытство заведёт. Вся инструкция в txt http://bit.ly/2Er0x6o (Dropbox). Внимание, даже в txt в ряде случаев происходит искажение символов в тексте — ординарные кавычки превращает… <span class="read-more"><a href="https://testitquickly.com/2018/02/22/how-to-install-latex/">Читать далее: Как установить LaTeX (самостоятельно) &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>У меня уже произошло стойкое углубление в LaTeX, что привело к массивным экспериментам со множеством его пакетов, поэтому наличие полного набора всего и сразу мне благостно. Заранее же не знаешь, куда любопытство заведёт.</p>
<p>
Вся инструкция в txt <a href="http://bit.ly/2Er0x6o">http://bit.ly/2Er0x6o</a> (Dropbox).</p>
<p style="padding-left: 30px;">Внимание, даже в txt в ряде случаев происходит искажение символов в тексте — ординарные кавычки превращает в фигурные, а дефис превращается в подобие тире.</p>
<p style="padding-left: 30px;">Презентабельности ради почти то же самое в pdf — <a href="http://bit.ly/2GIUSOX">http://bit.ly/2GIUSOX</a></p>
<p><span id="more-3838"></span></p>
<p>
Познакомиться с LaTeX исчерпывающе просто: достаточно установить Kile (редактор для LaTeX в среде KDE)</p>
<p style="padding-left: 30px;"><span style="color: #000080;">sudo aptitude install kile</span></p>
<p>При установке Kile принудительно потянет за собой зависимости, необходимые для базовой установки LaTeX. Например, будет установлен базовый пакет &#8216;texlive-latex-base&#8217;. Посмотреть информацию о нём:</p>
<p style="padding-left: 30px;"><span style="color: #000080;">sudo aptitude show texlive-latex-base</span></p>
<p>И это, конечно же, хорошо. Однако, как всегда, версия в репозиториях на порядок старее актуальной.</p>
<p style="padding-left: 30px;">Current release &#8216;TeX Live 2017&#8217; — от <em>4 June 2017</em>.</p>
<p style="padding-left: 30px;">А в репозиториях Debian доступен только LaTeX версии &#8216;<em>2016.20170123-5</em>&#8216;.</p>
<p>Философия Debian не подталкивает к использованию «всего самого свежего», но речь идет о TeX, который в принципе остановился в развитии на версии 3.14, а обновляются только пакеты LaTeX, поэтому тут можно смело требовать «свежатинки».</p>
<p>Установка LaTeX из сети возможна, но процесс скачивания и установки трёх тысяч файлов долгий, и при сбоях связи слегка… раздражающ. И ещё говорят, что</p>
<p style="padding-left: 30px;">…if TeXLive is installed via Debian’s own package manager (apt, synaptic, etc), TeXLive’s package manager (tlmgr) will not be available. This means that if a newer version of a package, or a package that is not in one of Debian’s own groups of LaTeX packages is required, it ends up being manually installed and that can make your system messy and hard to maintain.</p>
<p style="padding-left: 30px;">This can be a big issue with Debian, since it has a very conservative view of what is a ‘stable’ package, and can easily be three years behind the main TeXLive repository.</p>
<p style="padding-left: 30px;">Таки да, как-то довелось разбираться с установкой пакетов по-отдельности, и это было стрёмно.</p>
<p>Хочется просто поставить LaTeX самостоятельно и заставить Kile сразу работать с установленной программой, а не… Поэтому далее рассматривается несколько замороченная, но исключительно однозначная, точная и грамотная ручная установка всего набора LaTeX из его официального iso-файла  вкупе с неординарной, но смелой установкой Kile.</p>
<p>Место установки произвольное. Но по-умолчанию будет предложена установка в <em>/usr/local/texlive/2017/</em>.</p>
<p>Это разумно. Каталог с названием года выпуска — это фича, бо это позволяет установить сразу 100500 версий LaTeX рядом и переключаться между ними…</p>
<p>В <em>/usr/</em> хранятся все установленные пакеты программ, документация, исходный код ядра и система X Window и да, к содержимому <em>/usr/</em> все пользователи (кроме root) имеют доступ только &#171;для чтения&#187;. А если система со своим <em>/usr/</em> ещё и находится на SSD (solid-state drive, твердотéльный накопи́тель), а <em>/home/</em> положено на HDD, то LaTeX, который и так работает быстро, будет работать еще быстрее нужного (о-ля-ля, куда уж быстрее-то?!).</p>
<p>Однако нет.</p>
<p style="padding-left: 30px;">1</p>
<p>
На моём ноуте только один юзер, и городить «общий доступ» нет резона. И вообще, сделаем установку portable LaTeX (то есть, эту шнягу можно установить даже на флэшку, my ass!).</p>
<p style="padding-left: 30px;">2</p>
<p>
В будущем всегда маячит переустановка системы. Если при этом не заморочиться бэкапом всего <em>/usr/</em> (что вряд ли, если произойдёт большой и внезапный бэмц вроде &#171;эсэсдэ помрэ&#187;), то LaTeX придётся и ставить, и настраивать с нуля. Ы!</p>
<p style="padding-left: 30px;">3</p>
<p>
То же самое относится к установке программы в <em>/opt/</em>. Тоже, кагбэ, логичное для установки место, но оно тоже будет «обнулено» при вероятностной переустановке системы.</p>
<p style="padding-left: 30px;">4</p>
<p>
Для крупного обновления разумно сносить &#171;устаревший&#187; LaTeX и ставить новый &#171;с нуля&#187; (так гласит официальная инструкция, не будем ей перечить), и очевидно, что жить будет проще, товарищи, жить будет веселее, если новый софт будет установлен в тот же самый каталог с сохранением тех же путей в системных переменных. Поэтому не хочется устанавливать софт в каталог с названием типа <em>/2017/</em> !</p>
<p>Хочется поставить программу в каталог, который не привязан к номеру года, и расположен близко к домашнему каталогу, и при этом находится в месте, в котором изменения возможны только для root. Собственно настройки программы, так и быть, положим к своему юзеру в скрытый каталог, бо настройки же юзерские, и будут то и дело уточняться.</p>
<p style="padding-left: 30px;">И местами — весьма серьёзно, в режиме &#171;раз настроил и забыл&#187;, поэтому припоминать &#171;что там менялось&#187; через год-два будет очень, очень затруднительно.</p>
<p>Поэтому далее рассматривается только установка LaTeX в каталог &#8216;<strong><em>/home/LaTeX/</em></strong>&#8216;.</p>
<p>Enjoy.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2018/02/22/how-to-install-latex/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3838</post-id>	</item>
		<item>
		<title>Запуск Allpairs</title>
		<link>https://testitquickly.com/2017/02/13/allpairs/</link>
					<comments>https://testitquickly.com/2017/02/13/allpairs/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Mon, 13 Feb 2017 00:28:26 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Откровения]]></category>
		<category><![CDATA[Скриншоты]]></category>
		<category><![CDATA[тест-дизайн]]></category>
		<category><![CDATA[Читерство]]></category>
		<category><![CDATA[allpairs]]></category>
		<category><![CDATA[Calc]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[hexawise]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[inductive]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Motorola]]></category>
		<category><![CDATA[NASA]]></category>
		<category><![CDATA[PairWise]]></category>
		<category><![CDATA[PICT]]></category>
		<category><![CDATA[testcover]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=3640</guid>

					<description><![CDATA[PairWise — один из крутейших аналитических подходов в тестировании ПО. Как молот. Если попасть молотом по башке врага — ты победил. Если промахнулся — иди учись… Согласно pairwise.org , есть множество софтинок для этого дела, и от Microsoft (их несколько, не только PICT), и от NASA (уже недоступна, в космос улетела), от Motorola, от IBM,… <span class="read-more"><a href="https://testitquickly.com/2017/02/13/allpairs/">Читать далее: Запуск Allpairs &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>PairWise — один из крутейших аналитических подходов в тестировании ПО. Как молот.</p>
<p style="padding-left: 30px;">Если попасть молотом по башке врага — ты победил. Если промахнулся — иди учись…</p>
<p>Согласно <a href="http://www.pairwise.org/tools.asp">pairwise.org</a> , есть множество софтинок для этого дела, и от Microsoft (их несколько, не только PICT), и от NASA (уже недоступна, в космос улетела), от Motorola, от IBM, и др.</p>
<p>
<span id="more-3640"></span>Некоторые эти программы работают через консоль, другие через GUI, третьи через одно место, и все они, в принципе, делают то же самое, что может сделать один нормальный инженер с карандашом и бумагой, но делают это очень быстро. Главное — подать им на вход грамотный набор данных.</p>
<p style="padding-left: 30px;">Вообще, ключевой навык для успешности в PairWise — исчерпывающее понимание этой технологии и неоднозначное умение почувствовать проблему/искажение уже на этапе сведения сущностей и их параметров в единую таблицу.</p>
<p>Есть и онлайновые сервисы: <a href="https://hexawise.com/">hexawise</a>, <a href="https://inductive.no/product/pairwiser-basic">inductive</a>, <a href="http://testcover.com/index.php">testcover</a> — смотреть <a href="https://www.kanoah.com/blog/the-best-pairwise-testing-tools/">большой обзор</a>, я ими не пользуюсь, предпочитаю консольную Allpairs (скачать бесплатно с <a href="http://satisfice.com/tools.shtml">джеймсобаховского</a> сайта), бо привык к ней, и она не привязана к одной операционной системе.</p>
<p>Чтобы с ней управляться, нужно сперва уметь управляться с консолью. Ну там, между каталогами переходить, уметь из каталога с тестовыми файлами запускать программу, которая находится в другом каталоге, короче, основные основы управления любым современным кантупиром.</p>
<p style="padding-left: 30px;">Ведь не может же такого быть, чтобы кто-то занимался тестированием ПО, не понимая, как устроена файловая система, и как организованы файлы на жестком диске, и как управляться со всем этим добром из консоли.</p>
<p>Затем нужно уметь составлять таблицу данных, которая будет обработана Allpairs. В Excel (или в Calc) нужно сделать таблицу с перечислением сущностей и их параметров, затем экспортировать эту таблицу в текстовый файл с разделением столбцов через &#171;TAB&#187;. Затем скормить этот текстовый файл Allpairs на обработку.</p>
<p>Непосредственно Allpairs привык использовать так: в каталоге с программой allpairs.exe создаю подкаталог (&#8216;Test&#8217;), в который сохраняю текстовые файлы (с таблицами из Excel). В этом же подкаталоге появится и файл с результатами работы allpairs.exe.</p>
<p>Перехожу в этот подкаталог (&#8216;Test&#8217;), и уже из него обращаюсь к allpairs.exe, которая находится на одном уровне выше.</p>
<p>
Указываю в этом вызове файл, который надо обработать (назвал его <em>input.txt</em>) и приказываю вывести результат работы в файл, который на диске еще не существует (назвал его <em>output.txt</em>).</p>
<p>
<img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3641" src="https://testitquickly.com/wp-content/uploads/2017/02/allpairswindows.png?w=500" alt="Allpairs in Windows" width="500" height="221" /></p>
<p>
В Unix алгоритм работы (методология) тот же, но</p>
<ol>
<li>перед вызовом программы обязательно нужно указать &#8216;perl&#8217;,</li>
<li>в самом названии программы указывать расширение &#8216;.exe&#8217; уже нет необходимости,</li>
<li>слэши другие.</li>
</ol>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3642" src="https://testitquickly.com/wp-content/uploads/2017/02/allpairslinux.png?w=500" alt="Allpairs in Unix" width="500" height="206" /></p>
<p>
<strong>Нюансы</strong> под макой и убунтой (вот, казалось бы): таки надо внятно указать обращение к файлу <em>allpairs.pl</em>:</p>
<pre style="padding-left: 30px;">perl ../allpairs.pl input.txt &gt; output.txt</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2017/02/13/allpairs/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3640</post-id>	</item>
		<item>
		<title>Ссылки в Confluence. Mazafaka</title>
		<link>https://testitquickly.com/2015/11/25/how-to-with-confluence-links-mazafaka/</link>
					<comments>https://testitquickly.com/2015/11/25/how-to-with-confluence-links-mazafaka/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Wed, 25 Nov 2015 15:02:07 +0000</pubDate>
				<category><![CDATA[F.A.Q.]]></category>
		<category><![CDATA[Не смешно]]></category>
		<category><![CDATA[Озарения]]></category>
		<category><![CDATA[Скриншоты]]></category>
		<category><![CDATA[Учеба в бою]]></category>
		<category><![CDATA[Читерство]]></category>
		<category><![CDATA[Confluence]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=3446</guid>

					<description><![CDATA[Confluence 5.5.2 — прекрасная SaaS-система, пользуюсь ежедневно. Полностью интегрируется с Jira, все дела. В Confluence можно грамотно разметить оглавления в тексте, заголовками уровня 1-6. Можно вставить автоматически собираемое &#171;Содержание&#187; всех заголовков на странице (макрос &#8216;Table of Contents&#8217;). Можно вставлять в тело страницы другую страницу, целиком (макрос &#8216;Include Page&#8217;). Даже можно сделать на странице, содержимое которой… <span class="read-more"><a href="https://testitquickly.com/2015/11/25/how-to-with-confluence-links-mazafaka/">Читать далее: Ссылки в Confluence. Mazafaka &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Confluence 5.5.2 — прекрасная <a href="https://ru.wikipedia.org/wiki/SaaS">SaaS</a>-система, пользуюсь ежедневно. Полностью интегрируется с Jira, все дела.</p>
<p>В Confluence можно грамотно разметить оглавления в тексте, заголовками уровня 1-6.</p>
<p>Можно вставить автоматически собираемое &#171;Содержание&#187; всех заголовков на странице (макрос &#8216;Table of Contents&#8217;).</p>
<p>Можно вставлять в тело страницы другую страницу, целиком (макрос &#8216;Include Page&#8217;).</p>
<p style="padding-left: 30px;">Даже можно сделать на странице, содержимое которой надо встроить, специальное выделение текста (макрос &#8216;Excerpt&#8217;), и вставлять ТОЛЬКО то содержимое, которое было помеченное таким хитрым образом (макрос &#8216;Excerpt Include&#8217;).</p>
<p>Можно вставлять ссылки на другие страницы внутри Confluence аж двумя способами: по-простому (по-дурацки) и грамотно.</p>
<p><span id="more-3446"></span></p>
<h2><span style="color: #008000;">Вставляем по-дурацки</span></h2>
<ol>
<li>Просто скопируй нужную ссылку из адресной строки, да вставь ее в нужное место на странице открытым текстом.</li>
</ol>
<p style="padding-left: 30px;">Буквально copy/paste &#8216;<span style="color: #000080;">httр://confluence.test/display/~a.lupan/Action+Verbs+to+be+used+in+Goal+setting+process</span>&#8216; в тело открытой на редактирование страницы.</p>
<p>Сработает сразу.</p>
<p>Но вероятно не будет работать в будущем, если в названии страницы изменится хотя бы один символ — ссылка просто &#171;умрёт&#187;.</p>
<p style="padding-left: 30px;">Например, если в названии только дружественные англо-символы (вроде &#171;<em>Action Verbs to be used in Goal setting process</em>&#171;), URL страницы будет выглядеть как &#8216;<span style="color: #008000;"><span style="color: #000080;">httр://confluence.test/display/~a.lupan/Action+Verbs+to+be+used+in+Goal+setting+proces</span>s</span>&#8216;</p>
<p style="padding-left: 30px;">Если изменить заголовок страницы на &#171;<em>Англ Action Verbs to be used in Goal setting process</em>&#187; (добавить неанглоалфавитный символ, или двоеточия, или что-то еще неординарное), URL страницы поменяется на что-то вроде &#8216;<span style="color: #000080;">httр://confluence.test/pages/viewpage.action?pageId=54598262</span>&#8216;</p>
<p>Всё потому, что URL страниц в Confluence создается динамически, изменяясь &#171;на лету&#187; в зависимости от названия страницы.</p>
<p>А ссылки на страницы в Confluence существуют в системе как самостоятельные сущности (переменные). Поэтому привязываться надо не к ссылкам, а к сущностям, которые хранят в себе ссылки. Поэтому</p>
<h2><span style="color: #008000;">Вставляем грамотно</span></h2>
<p><strong>1)</strong></p>
<ol>
<li>Вызвать макрос &#8216;Insert Link&#8217; (элементарно вызывается по Ctrl+K).</li>
<li>В окне настроек выбрать Search &gt; искать по названию страницы.</li>
</ol>
<p>Будет мелкий неудобняк:</p>
<ul>
<li>надо начинать набирать название искомой страницы без ошибок хотя бы в первых словах.</li>
<li>ой, если надо искать только что созданную страницу — она сперва должна проиндексироваться в системе, и процесс этот нам не подчиняется. Пока поиск не проиндексируется, будет казаться, что только что созданная страница тупо отсутствует&#8230;</li>
</ul>
<p>Поэтому более точный и удобный способ: в окне настроек макроса &#8216;Insert Link&#8217; открыть раздел &#8216;<strong>Recently viewed</strong>&#8216;. Нужная страница там безусловно найдется, практически всегда окажется, что я её уже открывал. Клик по её &#8216;Title&#8217;, и всё готово.</p>
<p><div id="attachment_3447" style="width: 510px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3447" class="wp-image-3447 size-large" title="Confluence Recently Viewed" src="https://testitquickly.com/wp-content/uploads/2015/11/confluence-recently-viewed.jpg?w=500" alt="Confluence Recently Viewed" width="500" height="352" /><p id="caption-attachment-3447" class="wp-caption-text">Confluence Recently Viewed</p></div></p>
<p>Теперь название страницы, на которую поставлена ссылка, может изменяться как угодно, вплоть до появления &#8216;<span style="color: #000080;">pageId=54598262</span>&#8216; — ссылка всё равно сохраняется &#171;живой и невредимой&#187;.</p>
<p><strong>2)</strong></p>
<p>Как быстро вставить ссылку, не подергивая свою мышь:</p>
<ol>
<li>В открытой на редактирование странице нажать на клавиатуре клавишу &#8216;<span style="color: #008000;">[</span>&#8216; — появится окно &#8216;Link suggestions&#8217;, аналог &#8216;Recently viewed&#8217;.</li>
</ol>
<p style="padding-left: 30px;">Дальше понятно?</p>
<p>Ссылки на имена юзеров вызываются через &#8216;<span style="color: #008000;">@</span>&#8216;.</p>
<p>Вставлять картинки: через &#8216;<span style="color: #008000;">!</span>&#8216;.</p>
<p style="padding-left: 30px;">Можно внутри страницы организовать огневые перекрестные внутренние ссылки, что дичайше котируется в больших документах вроде &#8216;QA Vocabulary&#8217; (например, в нашем 226 терминов, ой-вэй).</p>
<h2><span style="color: #008000;"><strong>Ссылки на разделы внутри страницы </strong></span></h2>
<p>делаются так:</p>
<ol>
<li>Разметить текст как заголовок (в моем случае &#8216;<span style="color: #008000;">Definitions of Selected Functional Verbs</span>&#8216;).
<p><div id="attachment_3448" style="width: 510px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3448" class="size-large wp-image-3448" src="https://testitquickly.com/wp-content/uploads/2015/11/confluenceheading.jpg?w=500" alt="Confluence Heading" width="500" height="462" /><p id="caption-attachment-3448" class="wp-caption-text">Confluence Heading</p></div></li>
<li>Скопировать этот текст в буфер обмена as is. Со всеми его пробелами и запятыми, если есть.</li>
<li>Перейти в другое место страницы, где надо сделать ссылку на данный заголовок.</li>
<li>Вызвать макрос &#8216;Insert Link&#8217; (элементарно вызывается по Ctrl+K).</li>
<li>В окне настроек выбрать Advanced.</li>
<li>В поле &#8216;Link&#8217; своими руками вписать символ &#8216;<span style="color: #008000;">#</span>&#8216; и сразу текст (заголовок) из буфера обмена со всеми его пробелами, as is, буквально &#8216;<span style="color: #008000;">#Definitions of Selected Functional Verbs</span>&#8216;<br />
<div id="attachment_3449" style="width: 510px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3449" class="size-large wp-image-3449" src="https://testitquickly.com/wp-content/uploads/2015/11/confluenceadvancedlinks.jpg?w=500" alt="Confluence Advanced Links" width="500" height="353" /><p id="caption-attachment-3449" class="wp-caption-text">Confluence Advanced Links</p></div></p>
<p>// Внимание<span style="color: #000080;">: <em>The anchor name is case sensitive. You must use the same pattern of upper and lower case letters as you used when creating the Anchor</em>.</span></p>
<p>// <span style="color: #008000;"><span style="color: #000080;"><span style="color: #000000;">После обработки текст превратится в #DefinitionsofSelectedFunctionalVerbs (ибо справка:</span> <em>The anchor name in the full URL is concatenated into a single word, with all spaces removed</em>).</span></span></p>
<p>// <span style="color: #000000;">В поле &#8216;Link text&#8217; автоматически будет вписан тот же текст. Его спокойно можно отредактировать, при этом содержимое поля &#8216;Link&#8217; уже не изменится.</span></li>
<li>Insert.</li>
</ol>
<p>Итоговая ссылка на заголовок &#8216;<span style="color: #008000;">Definitions of Selected Functional Verbs</span>&#8216; будет выглядеть так: <span style="color: #000080;">httр://confluence.test/display/~a.lupan/Action+Verbs+to+be+used+in+Goal+setting+process#ActionVerbstobeusedinGoalsettingprocess-DefinitionsofSelectedFunctionalVerbs</span></p>
<p style="padding-left: 30px;"><strong>Мелкий неудобня</strong>к: ничто не подсказывает, что надо вставить &#8216;<span style="color: #008000;">#</span>&#8216;. GTFO, если не знаешь про этот хинт. Я про него знаю, и вроде не дурак, но иногда забываю вписать эту чертову решеточку&#8230;</p>
<p style="padding-left: 30px;"><strong>Серьезный, раздражающий неудобняк</strong>: если заголовок раздела &#8216;<span style="color: #008000;">Definitions of Selected Functional Verbs</span>&#8216; когда-нибудь изменится хоть на одну букву, ссылка внешне останется активной, но превратится в ссылку, просто закрытую заглушкой &#8216;#&#8217;.</p>
<p>Ок, это был простейший сценарий, ссылки внутри страницы. Теперь дело посложнее:</p>
<h2><span style="color: #008000;"><strong>Поставить ссылку на заголовок с другой страницы, которая находится в другом space</strong></span></h2>
<p>Учли, что прямой Copy/Paste возможен, но потенциально недолговечен, и надо действовать через макрос &#8216;Insert Link&#8217; (элементарно вызывается по Ctrl+K).</p>
<p style="padding-left: 30px;">И пусть там можно найти только общий Title нужной страницы, внутренние ссылки оттуда недоступны, однако действовать надо именно через макрос &#8216;Insert Link&#8217; (элементарно вызывается по Ctrl+K). Если в будущем изменится название страницы, в которой находится заголовок, на который надо ссылаться, Confluence эту ссылку грамотно обновит. Confluence рулит!</p>
<p style="padding-left: 60px;">Вот если внтури страницы изменится тот самый внутренний заголовок, на который сделана &#171;ссылка внутри страницы&#187;, тогда уж увы.</p>
<p style="padding-left: 30px;">И всё равно придется действовать через раздел Advanced, да еще и вручную вписывать название страницы.</p>
<p style="padding-left: 60px;">А это уже раздражающий неудобняк.</p>
<p>Если страница с внутренней ссылкой, на которую надо сослаться, находится в том же space:</p>
<ol>
<li>Вызвать макрос &#8216;Insert Link&#8217; (элементарно вызывается по Ctrl+K) &gt; Advanced</li>
<li>Вставить ссылку по шаблону &#8216;<span style="color: #008000;">Page Name#MyHeading</span>&#8216;.</li>
<li>В моем случае это &#8216;<span style="color: #008000;">Action Verbs to be used in Goal setting process#DefinitionsofSelectedFunctionalVerbs</span>&#8216;</li>
<li>Insert.</li>
</ol>
<p>Если страница с внутренней ссылкой, на которую надо сослаться, находится в другом space:</p>
<ol>
<li>Вызвать макрос &#8216;Insert Link&#8217; (элементарно вызывается по Ctrl+K) &gt; Advanced</li>
<li>Вставить ссылку по шаблону &#8216;<span style="color: #008000;">spacekey:Page Name#MyHeading</span>&#8216;.</li>
<li>В моем случае это &#8216;<span style="color: #008000;">~a.lupan:Action Verbs to be used in Goal setting process#DefinitionsofSelectedFunctionalVerbs</span>&#8216;</li>
<li>Insert.</li>
</ol>
<p>Работает.</p>
<h2><span style="color: #008000;">ВНЕЗАПНОСТИ</span></h2>
<p><strong>1)</strong></p>
<p>Полностью URL на определенный заголовок внутри определенной страницы выглядит так: <span style="color: #000080;">httр://confluence.test/display/~a.lupan/Action+Verbs+to+be+used+in+Goal+setting+process#ActionVerbstobeusedinGoalsettingprocess-DefinitionsofSelectedFunctionalVerbs</span></p>
<p>Что же это за <span style="color: #008000;">#ActionVerbstobeusedinGoalsettingprocess-DefinitionsofSelectedFunctionalVerbs</span>, если я вписывал только <span style="color: #008000;">#DefinitionsofSelectedFunctionalVerbs</span>? Что за Wtf?</p>
<p>Ответ такой: все в порядке.</p>
<p style="padding-left: 30px;"><span style="color: #008000;">The page name is repeated in the URL, after the # sign. The second occurrence of the page name is concatenated into a single word, with all spaces removed.</span></p>
<p>Но зачем?</p>
<p>Ок, учтем, что в виде ссылки надо использовать только то, что идет за решеткой, но только после дефиса.</p>
<p>Неочевиднейший подход. Пока это поймешь&#8230;</p>
<p><strong>2)</strong></p>
<p>Если продолжить редактировать страницу, отсылка продолжает оставаться рабочей.</p>
<p>Но если я решу отредактировать эту ссылку&#8230; в ней исчезает spacekey, и вместо</p>
<p>&#8216;<span style="color: #008000;"><strong>~a.lupan:</strong>Action Verbs to be used in Goal setting process#DefinitionsofSelectedFunctionalVerbs</span>&#8216;</p>
<p>там будет написано</p>
<p>&#8216;<span style="color: #008000;">Action Verbs to be used in Goal setting process#DefinitionsofSelectedFunctionalVerbs</span>&#8216;.</p>
<p>Всё, ссылка сдохла.</p>
<p>Не обратишь на это пристальное внимание — увы<span style="color: #ffffff;">, блеать&#8230;</span></p>
<p><div id="attachment_3450" style="width: 510px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3450" class="size-large wp-image-3450" src="https://testitquickly.com/wp-content/uploads/2015/11/confluencespacekeydisappear.jpg?w=500" alt="Confluence Space Key Disappear" width="500" height="352" /><p id="caption-attachment-3450" class="wp-caption-text">Confluence Space Key Disappear</p></div></p>
<p><strong>3)</strong></p>
<p>Confluence Help организован не по-взрослому.</p>
<p>Есть дефолт-справка по работе со ссылкам: <a href="https://confluence.atlassian.com/display/CONFEAP/Links">https://confluence.atlassian.com/display/CONFEAP/Links</a></p>
<p>Но также зачем-то существуют отдельные страницы справка для разных версий Confluence. Например, справка для Confluenct версии 5.6 находится тут: <a href="https://confluence.atlassian.com/conf56/confluence-user-s-guide/creating-content/using-the-editor/working-with-links">https://confluence.atlassian.com/conf56/confluence-user-s-guide/creating-content/using-the-editor/working-with-links</a></p>
<p>Я работаю с Confluence 5.5.2, поэтому смотрю на <a href="https://confluence.atlassian.com/conf55/confluence-user-s-guide/creating-content/using-the-editor/working-with-links">https://confluence.atlassian.com/conf55/confluence-user-s-guide/creating-content/using-the-editor/working-with-links</a></p>
<p>Между всеми тремя версиями справки разницы НЕТ, количество слов в двух документах идентично. Wtf?</p>
<p><div id="attachment_3451" style="width: 389px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3451" class="size-full wp-image-3451" src="https://testitquickly.com/wp-content/uploads/2015/11/confluence-help-links-word-count.jpg" alt="Confluence Help Links Word Count" width="379" height="194" /><p id="caption-attachment-3451" class="wp-caption-text">Confluence Help Links Word Count</p></div></p>
<p>В целом Confluence рулит неимоверно!</p>
<p>Просто надо немного оторвать ноги/руки тем, кто реализовал механизм работы с ссылками, и мир во всем моем мире наступит.</p>
<p>Сразу.</p>
<p>Всей подошвой.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2015/11/25/how-to-with-confluence-links-mazafaka/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3446</post-id>	</item>
	</channel>
</rss>
