<?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>Debian &#8212; Можно Подумать</title>
	<atom:link href="https://testitquickly.com/category/debian/feed/" rel="self" type="application/rss+xml" />
	<link>https://testitquickly.com</link>
	<description>про тестирование ПО и всё такое прочее</description>
	<lastBuildDate>Sun, 19 May 2024 00:19:22 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://testitquickly.com/wp-content/uploads/2021/09/favicon_lupan-150x150.jpg</url>
	<title>Debian &#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>Тонкая настройка «Sublime Text 3»</title>
		<link>https://testitquickly.com/2021/10/04/sublimitate-textuala/</link>
					<comments>https://testitquickly.com/2021/10/04/sublimitate-textuala/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Mon, 04 Oct 2021 02:22:29 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Документация]]></category>
		<category><![CDATA[Фишки]]></category>
		<category><![CDATA[Sublime Text]]></category>
		<guid isPermaLink="false">https://testitquickly.com/?p=4685</guid>

					<description><![CDATA[Понравился текстовый редактор Sublime Text. Раньше-то Eclipse был нашим всем, но на днях произошло неприятное: Eclipse падает всякий раз при копи/пэйст. Открыт соответствующий баг, решения пока нет, а между тем работать в Eclipse стало и решительно, и нерешительно невозможно. Вероятно, можно откатиться на более старые версии, но не факт, бо тогда и окружающие его пакеты… <span class="read-more"><a href="https://testitquickly.com/2021/10/04/sublimitate-textuala/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p></p>
<p>Понравился текстовый редактор <a href="https://ru.wikipedia.org/wiki/Sublime_Text">Sublime Text</a>.</p>
<p></p>
<p></p>
<p>Раньше-то <strong>Eclipse</strong> был нашим всем, но на днях произошло неприятное: Eclipse падает всякий раз при копи/пэйст. Открыт соответствующий <a href="https://bugs.openjdk.java.net/browse/JDK-8244794">баг</a>, решения пока нет, а между тем работать в Eclipse стало и решительно, и нерешительно невозможно. Вероятно, можно откатиться на более старые версии, но не факт, бо тогда и окружающие его пакеты тоже надо даунгрейдить, а это не тру.</p>
<p></p>
<p></p>
<p>Но под Linux есть много всяких IDE для разработки, даже есть почти нативное <a href="https://ru.wikipedia.org/wiki/KDevelop">KDevelop</a>. Из кроссплатформенных на слуху:</p>
<p></p>
<p></p>
<ul class="wp-block-list">
<li><strong>PyCharm</strong> от JetBrains — выглядит адекватно, но от него завыли кулеры и памяти поуменьшилось изрядно, при этом проект внутри ещё не создан. Нет.</li>
<li><strong>Atom</strong> от GitHub, которое сегодня тоже от Microsoft. Построен на электроне, а это нет!</li>
<li><strong>VS Code</strong> (он же Visual Studio Code) от Microsoft. Нет.</li>
<li><a href="https://ru.wikipedia.org/wiki/Sublime_Text"><strong>Sublime Text</strong></a> от кого-то из гугла (Джон Скиннер). Слово sublime переводится как «возвышенный, величественный, высокий, грандиозный».</li>
</ul>
<p></p>
<p></p>
<p>Тут и остановимся.</p>
<p></p>
<p></p>
<p><span id="more-4685"></span></p>
<p></p>
<p></p>
<p>В основе своей Sublime Text разочаровывающе примитивный и требуется время на его освоение и настройку, но это и хорошо. Можно подключать к простой основе только те расширения, которые понадобятся в работе, а это unix way. У него много <a href="https://www.sublimetext.com/docs/">документации</a> (unix way!)? Он в принципе хочет каких-то денег (not a unix way!), но не настойчиво да и не особо много, поэтому всё норм.</p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span class="has-inline-color" style="color: #008000;">1</span></strong></h3>
<p>Установка Sublime Text в Debian</p>
<p></p>
<p></p>
<p>Следуем <a href="https://www.sublimetext.com/docs/linux_repositories.html">общей инструкции:</a></p>
<p></p>
<p></p>
<p>Install the GPG key:</p>
<p></p>
<p></p>
<pre class="wp-block-syntaxhighlighter-code">wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -</pre>
<p></p>
<p></p>
<p>Ensure apt is set up to work with https sources:</p>
<p></p>
<p></p>
<pre class="wp-block-syntaxhighlighter-code">sudo apt-get install apt-transport-https</pre>
<p></p>
<p></p>
<p>Select the Stable channel to use:</p>
<p></p>
<p></p>
<pre class="wp-block-syntaxhighlighter-code">echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list</pre>
<p></p>
<p></p>
<p>Update apt sources and install Sublime Text</p>
<p></p>
<p></p>
<pre class="wp-block-syntaxhighlighter-code">sudo apt-get update &amp;&amp; sudo apt-get install sublime-text</pre>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span class="has-inline-color" style="color: #008000;">1.1</span></strong></h3>
<p>Основная настройка Sublime Text</p>
<p></p>
<p></p>
<p>Для управления пакетами надо включить Package Control (<a href="https://packagecontrol.io/installation">инструкция</a>):</p>
<p></p>
<p></p>
<ul class="wp-block-list">
<li>Tools &gt; Install Package Control…</li>
</ul>
<p></p>
<p></p>
<h3 class="wp-block-heading"><mark class="has-inline-color" style="background-color: rgba(0,0,0,0); color: #008000;">1.2</mark></h3>
<p><strong>Расширение возможностей Sublime Text</strong></p>
<p></p>
<p></p>
<ul class="wp-block-list">
<li>Tools &gt; Command Palette… (<strong>Ctrl+Shift+P</strong>)</li>
<li>Начать набор команды «install» &gt; появятся подсказки &gt; Выбрать «Package Control: Install package»</li>
<li>начать набор названия пакета, который надо установить &gt; появятся подсказки &gt; выбрать нужный и даблклик или Enter.</li>
</ul>
<p></p>
<p></p>
<p>Последовательно установить</p>
<p></p>
<p></p>
<ol class="wp-block-list">
<li><a href="https://packagecontrol.io/packages/AdvancedNewFile">AdvancedNewFile</a></li>
<li><a href="https://packagecontrol.io/packages/Anaconda">Anaconda</a> — autocomplete</li>
<li><a href="https://packagecontrol.io/packages/All%20Autocomplete">All Autocomplete</a></li>
<li><a href="https://packagecontrol.io/packages/AutoFileName">AutoFileName</a></li>
<li><a href="https://packagecontrol.io/packages/Base16%20Color%20Schemes">Base16 Color Schemes</a> — стили подсветки кода; мне очень зашло «<em>base16-phd</em>»</li>
<li><a href="https://packagecontrol.io/packages/BracketHighlighter">Bracket​Highlighter</a></li>
<li><a href="https://packagecontrol.io/packages/DocBlockr">DocBlockr</a></li>
<li><a href="https://packagecontrol.io/packages/Emmet">Emmet</a> — шаблоны для верстальщиков</li>
<li><a href="https://packagecontrol.io/packages/Git">Git</a></li>
<li><a href="https://packagecontrol.io/packages/GitAutoCommit">GitAutoCommit</a></li>
<li><a href="https://packagecontrol.io/packages/GitGutter">GitGutter</a></li>
<li><a href="https://packagecontrol.io/packages/Markdown%20Extended">Markdown Extended</a></li>
<li><a href="https://packagecontrol.io/packages/SideBarEnhancements">SideBarEnhancements</a> — слева появляется сайдбар, там и отображаются файлы проекта (и вообще открытые), и появляются команды для управления файлами на ssd</li>
<li><a href="https://packagecontrol.io/packages/SublimeLinter">SublimeLinter</a> — затем плагины для линтеров по определённым правилам для определённых языков</li>
<li><a href="https://packagecontrol.io/packages/Terminus">Terminus</a> — более продвинутая консолька</li>
<li>по слову <em>Theme</em> можно выбрать иную тему оформления, нежели дефолтную Adaptive (<a href="https://www.positronx.io/best-sublime-text-3-themes/">кагбэ рейтинг тем</a>). Для установки темы надо знать её точное название.</li>
</ol>
<p></p>
<p></p>
<p>Restart <strong>Sublime Text</strong>.</p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span class="has-inline-color" style="color: #008000;">1.3</span></strong></h3>
<p>Тонкая настройка</p>
<p></p>
<p></p>
<p>каждого плагина <strong>Sublime Text</strong> по-отдельности займет некоторое время, но оно того стоит. Ковыряние в файлах настроек и прописывание инструкций приносит ощущение полного контроля и управления. Unix way же!</p>
<p></p>
<p></p>
<p><strong><span class="has-inline-color" style="color: #008000;">1.3.0</span></strong></p>
<p>Базовые настройки</p>
<p></p>
<p></p>
<p>Preferences &gt; Settings</p>
<p></p>
<p></p>
<pre class="wp-block-code"><code>{
	// Общий размер шрифта редактора
	"font_size": 21,
	"word_wrap": true,
	// Set to a value other than 0 to force wrapping at that column rather than
	// the window width. See "wrap_width_style" for extra options.
	"wrap_width": 100,
	// Настройки отступов В КАЖДОМ ФАЙЛЕ
		// Ctrl + Shift + P (to activate the command palette)
		// Type "Indentation",
		// Choose "Indentation: Convert to Tabs"
	"detect_indentation": true,
	"tab_size": 4,
	"translate_tabs_to_spaces": false,
	// Тема оформления
	"theme": "Adaptive.sublime-theme",
	"ignored_packages":
	[
		"Vintage",
	],
	"color_scheme": "Packages/Base16 Color Schemes/Themes/base16-phd.tmTheme",
	"dark_theme": "Adaptive.sublime-theme",
	"light_theme": "Adaptive.sublime-theme",
}
</code></pre>
<p></p>
<p></p>
<h4 class="wp-block-heading"><strong><span class="has-inline-color" style="color: #008000;">1.3.1</span></strong></h4>
<p>Настройка темы</p>
<p></p>
<p></p>
<p>Пусть будет Adaptive.</p>
<p></p>
<p></p>
<p>Preferences &gt; Customize Theme</p>
<p></p>
<p></p>
<p>Откроется два файла, один нередактируемый (общие настройки), второй редактируемый, бо сугубо пользовательский. Идея в том, что из общего можно копировать строки настроек в пользовательский файл и всё будет норм.</p>
<p></p>
<p style="padding-left: 40px;">Иногда эти файлы открываются поодиночке.</p>
<p></p>
<p>Например, впишем это.</p>
<p></p>
<p></p>
<pre class="wp-block-code"><code>// Documentation at https://www.sublimetext.com/docs/themes.html
{
"variables":
	{
	"font_size_sm": 24,	// размер шрифта вкладки
	"font_size": 20,	// размер шрифта названия файла в Side bar
	"font_size_lg": 18,	// размер шрифта группы файлов в Side bar
	},
}
</code></pre>
<p></p>
<p></p>
<p><strong><span class="has-inline-color" style="color: #008000;">1.3.2</span></strong></p>
<p>Настройка Anaconda</p>
<p></p>
<p></p>
<p>В Anaconda встроен довольно строгий линтер, он считает неправильными почти все строки любого кода (и он, конечно, прав), помечая их белыми прямоугольниками. Эту функциональность лучше передать отдельному плагину, бо лучше использовать линтер под свой язык программирования и строго под выбранные юзером правила правописания, которые под тот же Python бывают очень разные. Поэтому</p>
<p></p>
<p></p>
<p>Preferences &gt; Package Settings &gt; Anaconda &gt; Setting — User</p>
<p></p>
<p></p>
<p>Этот файл пуст, можно прописать там и отключение линтера анаконды, и путь к рабочей версии Python:</p>
<p></p>
<p></p>
<pre class="wp-block-code"><code>{
    "settings": {
        "python_interpreter": "/usr/bin/python3",
        "anaconda_linting": false
    }
}</code></pre>
<p></p>
<p></p>
<p>Позже можно будет использовать возможности Anaconda для автоформатирования кода по CTRL-ALT-R (насколько это, конечно, применимо к тому же питону) в соответствии с правилами PEP8. Там тоже надо настраивать точнее, бо по-умолчанию эта шняга заменяет табы четырьмя пробелами.</p>
<p></p>
<p></p>
<p>Быстрое решение:</p>
<p></p>
<p style="padding-left: 40px;">View &gt; Indentation &gt; <em>Tab Width: 4</em> <span style="color: #808080;">//эту настройку в будущем уже не трогаем</span></p>
<p style="padding-left: 40px;">View &gt; Indentation &gt; <em>Convert Indentations to Tabs</em></p>
<p>Или же:</p>
<p style="padding-left: 40px;">В правом нижнем углу окна отображается эта же настройка &#8216;Tab Size: 4&#8217;.</p>
<p style="padding-left: 40px;">Левомышечный клик по ней открывает то же самое меню, что из View. Остаётся кликнуть по последней команде: <em>Convert Indentations to Tabs. </em>Можно использовать каждый раз после CTRL-ALT-R.</p>
<p>Надо пореже использовать CTRL-ALT-R и воспитывать в пальцах изначально принудительное правописание и отступы, в Python этот аспект важнее, чем в других ЯП.</p>
<p></p>
<p><strong><span class="has-inline-color" style="color: #008000;">1.3.3</span></strong></p>
<p>Настройка хоткея для вызова Sidebar</p>
<p></p>
<p></p>
<p>Вызов или через View &gt; Sidebar, или через последовательное нажатие «Ctrl+k, Ctrl+b».</p>
<p></p>
<p></p>
<p>Клавиши можно переназначить, например, на Ctrl+\: Preferences &gt; Package Settings &gt; Side Bar &gt; Key Bindings — User</p>
<p></p>
<p></p>
<pre class="wp-block-code"><code>[
  	// Toggle the Sidebar
  {"keys": ["ctrl+\\"], "command": "toggle_side_bar"},
]</code></pre>
<p></p>
<p></p>
<p><strong><span class="has-inline-color" style="color: #008000;">1.3.4</span></strong></p>
<p><strong><span class="has-inline-color" style="color: #008000;">Настройка консоли для запуска скриптов на Python</span></strong></p>
<p></p>
<p></p>
<p>По-умолчанию дежурный запуск скриптов на Python делается во встроенной консольке через Ctrl+B. Годно, если надо просто что-то выполнить, и нет, если подразумевается интерактивность со стороны юзера.</p>
<p></p>
<p></p>
<p>Ctrl+Shift+P &gt; Package Control: Install Package &gt; Terminus</p>
<p></p>
<p></p>
<p>Затем сохранить в каталог с пакетами (/~/.config/sublime-text/Packages/User/) новый файл <strong><a href="https://gist.github.com/OdatNurd/2aeb8f753a053d9b927a8f125a8e456d">close_terminal.py</a></strong> — это плагин для тонкой обработки будущих окон терминала. В частности, он будет при каждом билде скрипта в разработке держать фокус на окне со скриптом и фокус только на одном окне терминала, чтобы не открывалось новое при каждом нажатии Ctrl+B.</p>
<p></p>
<p></p>
<p>Tools &gt; Build System &gt; New Build System (откроется пустой файл настроек)</p>
<p></p>
<p></p>
<pre class="wp-block-code"><code>{
    "target": "terminus_open",
    "auto_close": false,
    "title": "Pytnon Output",
    "cancel": "terminus_cancel_build",
    "pre_window_hooks":
        [
            ["windows_focus", {"store": true}],
            ["close_terminus_view_by_title", {"title": "Pytnon Output"}],
            ["windows_focus", {"store": false}],
        ],
    "post_window_hooks":
        [
            ["carry_file_to_pane", {"direction": "right"}],
            ["windows_focus", {"store": false}],
        ],
    "shell_cmd": "/usr/bin/python3 -u \"$file\"",
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "env": {"PYTHONIOENCODING": "utf-8"},
    "variants":
    [
        {
            "name": "Syntax Check",
            "shell_cmd": "/usr/bin/python3 -m py_compile \"${file}\"",
        }
    ]
}</code></pre>
<p></p>
<p style="padding-left: 40px;">Путь /usr/bin/python3 общий, тут можно задать любое направление к разным версиям, буде таковая необходимость соизволит явиться.</p>
<p style="padding-left: 40px;">Под виндой, соответственно, в shell_cmd надо указать путь к python.exe, и делать это надо чуть заковыристо, через двойные косые: <em>&#171;shell_cmd&#187;: &#171;D:\\.python_venvs\\general_python\\Scripts\\python.exe -u \&#187;$file\&#187;&#187;.</em></p>
<p style="padding-left: 40px;">Эти самые pre_window_hooks и post_window_hooks пришли из плагина <em>close_terminal.py</em></p>
<p></p>
<p>Ctrl+S &gt; дать новому файлу sublime-build имя вроде ’BuildPython3.sublime-build’ и убедиться в том, что он сохраняется в /~/.config/sublime-text/Packages/User/</p>
<p></p>
<p></p>
<p>Tools &gt; Build System &gt; выбрать ’BuildPython3‘</p>
<p></p>
<p></p>
<p>Больше эту настройку можно не трогать. Теперь общий хоткей Ctrl+B вызовет консоль Terminus справа от окна с кодом и в ней выполнит код по заветам прописанного интерпретатора Python.</p>
<p></p>
<p></p>
<p>Перевод фокуса с одной панели на другую с клавиатуры через Ctrl+1 и Ctrl+2 — если на экране две панели (их можно понаоткрывать бесчетно).</p>
<p></p>
<p></p>
<p class="has-text-align-right">тубиконтинуедт, конечно, например на <a href="https://testitslowly.wordpress.com/category/sublime-text/">https://testitslowly.wordpress.com/category/sublime-text/</a></p>
<p></p>]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2021/10/04/sublimitate-textuala/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4685</post-id>	</item>
		<item>
		<title>Как собрать служебные файлы PdfLaTeX в отдельном каталоге</title>
		<link>https://testitquickly.com/2019/06/15/latex-metafiles-outside/</link>
					<comments>https://testitquickly.com/2019/06/15/latex-metafiles-outside/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Sat, 15 Jun 2019 17:53:03 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Документация]]></category>
		<category><![CDATA[Радости]]></category>
		<category><![CDATA[Фишки]]></category>
		<category><![CDATA[Kile]]></category>
		<category><![CDATA[LaTeX]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=4217</guid>

					<description><![CDATA[При сборке pdf в каталоге проекта появляется ряд служебных файлов, содержимое которых меняется от билда к билду. Их даже нет смысла засылать в репозиторий. Можно удалять их перед коммитом. find -regex '.*\.\(tex~\&#124;sty~\&#124;sh~\&#124;bib~\&#124;backup\&#124;dvi\&#124;ps\)' -print -delete Можно сказать Kile, что после закрытия надо удалять все «временные файлы». Но закрывать Kile каждый раз перед тем, как сделать коммит… <span class="read-more"><a href="https://testitquickly.com/2019/06/15/latex-metafiles-outside/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>При сборке pdf в каталоге проекта появляется ряд служебных файлов, содержимое которых меняется от билда к билду. Их даже нет смысла засылать в репозиторий.</p>
<p>Можно удалять их перед коммитом.</p>
<pre>find -regex '.*\.\(tex~\|sty~\|sh~\|bib~\|backup\|dvi\|ps\)' -print -delete</pre>
<p>Можно сказать Kile, что после закрытия надо удалять все «временные файлы». Но закрывать Kile каждый раз перед тем, как сделать коммит — как-то странно.</p>
<p>Можно добавить все такие файлы в .gitignore Но эти файлы так и лежат в каталоге проекта.</p>
<p>А можно компилировать проект, принудительно создавая всякие такие файлы в отдельном каталоге.</p>
<p><span id="more-4217"></span></p>
<p>В итоге получится такое:</p>
<pre>Project directory/
|__ main.tex
|__ main.bib
|__ main.pdf
|__ chapter1.tex
|__ chapter2.tex
|__ …
|__ project_metafiles/
| |__ main.aux
| |__ main.bcf
| |__ main.blg
| |__ main.glo
| |__ main.ist
| |__ main.log
| |__ main.toc
| |__ …
|__ figures/
|__ figure1.pdf
|__ …</pre>
<p>Про это всё уже кто-то подумал аж в 2015-ом: <a href="https://texblog.org/2015/08/20/hiding-latex-metafiles-from-project-directory/">texblog.org</a>, но, разумеется, есть нюансы — там нет Kile.</p>
<p>Мои эксперименты с этим трактором заняли часов восемь, самой сложной задачей оказалась неочевидная настройка билд-скриптов в Kile, но он таки завёлся. Заодно я поднаторел в быстром составлении документации по проекту.</p>
<p>Смысл предлагаемого скрипта:</p>
<ol>
<li>собрать pdf с PdfLaTeX.</li>
<li>собрать его библиографию с BibLaTeX.</li>
<li>итоговый скрипт должен лежать в отдельном каталоге, назовём его kile_scripts/</li>
<li>при сборке main.pdf все служебные файлы должны сразу появляться в project_metafiles/</li>
<li>сборка глоссария и индекса в этот скрипт не войдёт (она нужна редко и запускается через отдельный sh-файл)</li>
<li>билдить нужно по этому скрипту, но из Kile („QuickBuild“ по Ctrl+1)</li>
</ol>
<p><strong>Ограничения</strong></p>
<p>Это настройка работает глобально, а название главного файла для сборки проекта прописано жёстко — <em>main </em>(.tex).</p>
<p>Если открыть в Kile другой проект, то скрипт будет искать файл <em>main</em> 🙂</p>
<p>Выходом будет прописывание переменной в файле .sh, а неудобство в том, что этот файл при каждой смене проекта надо обновить, прописав в объявляемой переменной соответствующее название файла для сборки (несколько смягчает ситуацию добавление и комментирование строк).</p>
<p>Полная инструкция в Dropbox: <a href="http://bit.ly/2IjoqC0">http://bit.ly/2IjoqC0</a> /txt</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2019/06/15/latex-metafiles-outside/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4217</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/">Читать далее &#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/">Читать далее &#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 fetchpriority="high" 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 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>Алексей Лупан: Мал, да удал &#8212; менеджмент тестирования в маленькой компании</title>
		<link>https://testitquickly.com/2010/11/21/37/</link>
					<comments>https://testitquickly.com/2010/11/21/37/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Sun, 21 Nov 2010 10:42:12 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Конференции]]></category>
		<category><![CDATA[Презентации]]></category>
		<category><![CDATA[Disaster Recovery Plan]]></category>
		<category><![CDATA[Mantis]]></category>
		<category><![CDATA[Remember The Milk]]></category>
		<category><![CDATA[SQA Days 8]]></category>
		<category><![CDATA[Александр Александров]]></category>
		<category><![CDATA[Папуасы]]></category>
		<category><![CDATA[Эвелина Тананаева]]></category>
		<category><![CDATA[Юля Нечаева]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=1946</guid>

					<description><![CDATA[Текст слегка дополнен всем тем, о чем я хотел сказать, но по причине скудности эфирного времени не успел. Вместо картинок слайдов использую заголовки. Я вам сегодня ничего рассказывать не буду, а только поделюсь теми домыслами, которые я додумал по прошествии своего развития в теле тестировщика. Для прояснения антуража уточняю, что я — тестировщик из Кишинева.… <span class="read-more"><a href="https://testitquickly.com/2010/11/21/37/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p style="text-align: right;"><em>Текст слегка дополнен всем тем, о чем я хотел сказать,</p>
<p>
</em><em>но по причине скудности эфирного времени не успел.</p>
<p>
</em><em>Вместо картинок слайдов использую заголовки.</em></p>
<p>Я вам сегодня ничего рассказывать не буду, а только поделюсь теми домыслами, которые я додумал по прошествии своего развития в теле тестировщика.</p>
<p>Для прояснения антуража уточняю, что я — тестировщик из Кишинева.</p>
<p>Кишинев — это маленькое государство аутсорсеров в IT. Собственных разработок считанные единицы, большинство рабочих предложений на этом маленьком рынке — удаленная поддержка проектов для иностранных заказчиков.</p>
<p style="padding-left: 30px;">Да, еще тут умеют класть плитку кубометрами и пить вино декалитрами, но это не является особенным достижением местного айтишного народа.</p>
<p>Например, я сейчас работаю над интернет-магазином, которым пользуются только жители США — и оплата и доставка заточены именно под их регион.</p>
<p>У нас нет огромных компаний, как это бывает в Москве или Киеве, в которых можно прожить всю свою карьерную и биологическую жизнь.</p>
<p>Обычный кишиневский айтишник большую часть жизни:</p>
<ol>
<li>мечтает стать программистом,</li>
<li>проводит время в маленьких компаниях,</li>
<li>поддерживает зарубежные долгосрочные проекты,</li>
<li>работает в окружении малочисленного коллектива, большую часть которого составляют вечно приходящие и уходящие «студенты».</li>
</ol>
<p>Затем обычный кишиневский айтишник как следует учит Java, английский вперемешку с французским и навсегда уезжает в Канаду.</p>
<p><span id="more-1946"></span></p>
<p>Когда-то я целенаправленно учился работать в разных рабочих условиях — и в большой компании, и в маленькой, обучаясь взаимодействию с разными рабочими процессами, и успокоился только тогда, когда вроде бы чему-то научился, и в ходе очередного этапа поиска работы в Кишиневе я внезапно для самого себя стал начальником тестировщиков.</p>
<p>Начальник тестировщиков в Кишиневе это не совсем то, что подразумевается под тест-менеджером в Москве, Киеве или Санкт-Петербурге. У нас обычно это человек, который занимается тем, чем не хотят заниматься все остальные участники проекта.</p>
<p>Когда-то давно, в самом начале своих занятий тестированием я тоже думал, что «<em>два месяца посижу и покликаю, а потом я чего-нибудь выучу из программирования, и&#8230;»</em></p>
<p>Но потом мне стало интересно возиться с тестированием, а еще позже я выяснил, что адекватных и грамотных тестировщиков в Кишиневе очень мало, рынок буквально открыт для всех тех, кто хочет что-то сделать в этой области, и даже деньги можно получать большие, несмотря на то, что в принципе тестировщик в Кишиневе — это жалкое зрелище.</p>
<p>В общем, понятно, почему стать тестировщиков в Кишиневе весьма просто.</p>
<p>«Входная цена» в профессию весьма низка, вакансии для юниоров были, есть и всегда будут (только искать надо не по объявлениям, где пишут о том, что «нужен супер-профессионал»), и если не искать сходу «тыщу долларов для начала», работу тестировщиком найти можно быстро.</p>
<p>Сложнее опытным тестировщикам, а также тест-менеджерам — тут рынок более узкий, ибо это дело ответственное, а потому сразу дорогое.</p>
<h2><span style="color: #008000;"><strong>Главный вопрос: Кто ты? QC дрожащее, или QA?</strong></span></h2>
<p>Человек, который начинает заниматься тестированием в маленькой компании прежде всего должен выяснить, кем его считают окружающие.</p>
<p>Был такой случай: меня назначили начальником отдела тестирования.</p>
<p>Круто.</p>
<p>Плохо то, что в компании бытовали технические проблемы, и надо было многое менять. Например, обучить программистов работать с svn (и это совсем не смешно).</p>
<p>Была создана рабочая группа из представителей разных отделов, мол, сами вместе скоординируйтесь и примите наилучшие, взвешенные технические решения. Меня пригласили в эту группу, и я был буквально счастлив, ибо появилась возможность воздействовать на сложную ситуацию, а там действительно было что менять в лучшую сторону.</p>
<p>Работаем мы, спорим, доказываем, что-то решаем, но вот по итогам решения всё принимаются «не те»&#8230;</p>
<p>Позже, случайно во внутренней wiki я увидел список участников этой группы, и меня там не было. Я пошел спрашивать. Мне ответили, что «<em>тебя изначально и не думали туда включать, ты же просто тестировщик&#8230; Иди, сиди, тестируй&#8230;</em>»</p>
<p>Резюме: когда думаешь о том, как «поставить» тестирование, надо сперва понять, действительно ли у тебя есть возможность что-то менять, или же твоя роль номинальна. Выяснять это надо рано и быстро, во время испытательного периода.</p>
<h2><span style="color: #008000;"><strong>Каждая маленькая компания когда-то вырастет</strong></span></h2>
<p>Надо понимать, что каждая маленькая компания когда-нибудь может стать большой компанией. Если работать только так, как указывает текущая ситуация, то вполне вероятно, что уже через полгода или год, когда проект разовьется, тестирование станет не помощью, не сервисом, а обузой, «бутылочным горлышком».</p>
<p>Почему: приложение выросло и усложнилось, люди сменились, а информация о том, почему и как были приняты те или иные технические решения, или ушла вместе с их головами, или осталась, но совершенно не структурирована.</p>
<p>Начинаются <a href="http://game-ts.blogspot.com/2010/09/help.html">проблемы</a> с уверенностью в результатах работы (действительно ли всё протестировано?).</p>
<p>В том числе и проблемы со временем — народ искренне не понимает, <a href="http://testitquickly.com/2010/09/26/dont-fuck-with-da-hui/">почему тестирование занимает так много времени</a>.</p>
<p>В будущем пришедший тестировщик будет не работать, а «расхлебывать» то, что ему досталось.</p>
<p>У меня подобное случалось неоднократно, и основная мысль этого слайда — народ, тестирование надо организовывать сразу по-взрослому.</p>
<p style="padding-left: 30px;">Когда начинаете работать, думайте о тех, кто придут после вас, и делайте все красиво и чисто :).</p>
<h2><span style="color: #008000;"><strong>Как обустраивать тестирование — никто не подскажет</strong></span></h2>
<p>Большая проблема тестировщика в маленькой компании — одиночество. Прекрасно, что не с кем меряться, но и не с кем советоваться.</p>
<p>Советоваться можно с коллегами из других городов (спасибо интернетам), но люди, которые живут и работают в больших городах и в другом окружении, посоветуют очень хорошо то, что подходит для них, то, с чем их опыт позволяет справиться. Не факт, что это поможет именно тебе.</p>
<p>Каждый проект, каждая отдельная ситуация обладает настолько мелкими нюансами, которые невозможно перечислить, или перечислил бы, но не догадываешься о том, как их сформулировать, бо они «летают в воздухе», которым ты дышишь.</p>
<p>Поэтому, прежде чем приступать к работе, надо многое обдумать, надо суметь принять на себя ответственность за процессы, которые будут созданы, за документы, которые будут появляться в ходе работы, за, может быть, весь процесс разработки, потому что в маленьких компаниях, особенно в Кишиневе, процессы очень репрезентативны для развивающихся команд.</p>
<p>Выглядит это так: собирается толпа молодых и умных парней, которые умеют писать код и дизайнить всякие всячины, и основная их цель — наколбасить как можно больше хорошего кода, а дальше все само пойдет как надо. Обычно это не происходит, но поначалу и по-молодости же об этом никто не догадывается.</p>
<p>Позже возникает необходимость в документации, а документировать то, что УЖЕ существует — то еще удовольствие&#8230;</p>
<p>Также если нет под рукой опытного работника, «студенты» организуются самостоятельно, по уму и разуму, как удобно.</p>
<p>Удобно ли пользоваться svn, если ты тут единственный программист, и весь код находится только на твоей машине и в твоих руках? Нет, неудобно.</p>
<p>Удобно ли ставить баг-трекер, если ты сам заведуешь всеми багами, и проект, в принципе, небольшой? Нет, неудобно. Да и что такое — баг-трекер?</p>
<p>Нужно ли ставить wiki и записывать туда то, что само по себе очевидно и понятно, и никому не требуется, а если потребуется — подойди, я все детально расскажу? Нет, не нужно ставить wiki.</p>
<p>К чему это приводит в итоге? Понятно, да&#8230;</p>
<p style="padding-left: 30px;">Если не понятно, то вот вам коллектив, в котором все по-отдельности уверены в том, что svn, баг-трекеры и wiki излишни, совершенно не нужны и неудобны.</p>
<p>Функции управления в коллективе адекватных людей весьма номинальные — кто крут в нужной области, тот и лидер, тот и назначается ответственным. Поэтому у тестировщика есть все шансы на то, чтобы взять управление проектом в свои слабые руки, ведь должность тестировщика весьма обширна и подразумевает, что проект тебе известен с точки зрения юзера более глубоко, чем даже его главному разработчику.</p>
<p>Еще надо учесть то, что «принять ответственность» означает «стать командиром». Обустраивание тестирования в какой-то момент приведет к необходимости как-то подправить и процесс разработки. А там будут нужны и баг-трекер, и wiki, и svn, и воля на то, чтобы давить «бунт на корабле»&#8230;</p>
<h2><span style="color: #008000;"><strong>Тестировщик должен медленно &#171;подсадить&#187; народ на свои инструменты, отчеты и документы</strong></span></h2>
<p>Грамотный тестировщик приходит в компанию со своими инструментами.</p>
<p>Баг-трекер, вики, svn – это основные.</p>
<p>Можно также приносить свои кресло и наушники — я так делаю.</p>
<p>Они могут уже быть, но нужно выяснить, пользуются ли ими.</p>
<p>У меня были случаи, когда я спрашивал, есть ли svn в компании, но забывал спросить, пользуются ли им кто-нибудь. Реальные случаи: есть svn, но пользуются им только менеджеры, и то — для сохранения своих ворд-файликов с названиями типа «<em>требования к системе, ver. 152.0</em>». Программисты про svn знают, но не используют. А нафига оно нужно?</p>
<p>Одна из основных задач тестировщика заключется в том, чтобы медленно, почти незаметно и ненапряжно подсадить окружающих на свои инструменты. К баг-трекеру люди должны привыкнуть, бо это нечеловеческое изобретение, с молоком матери не передающееся 🙂</p>
<p>Люди должны привыкнуть к тому, что есть вики с документацией — хоть какой-нибудь документацией, для того, чтобы в будущем избежать многих проблем.</p>
<p>Обычно тестировщик оснащается всем необходимым, если он все свои проблемы уже пережил, и понимает, как душить их в зародыше.</p>
<p>Понятно, что большая часть инструментов будут из open-source – слава пингвинам, сегодняшний open-source уже хорош, особенно если у тебя самого руки растут из плеч, и ты можешь его под себя «подтесывать».</p>
<p style="padding-left: 30px;">К тому же, во многих кишиневских компаниях разработчики сидят под Убунту, а от Убунту до прочих благ опен-соурса — одно безалкогольное пиво под синтетической елочкой в обнимку с&#8230;</p>
<p style="padding-left: 30px;">Шучу.</p>
<p style="padding-left: 30px;">Убунту рулит.</p>
<p>Срок «подсаживания» – полгода. Это ориентировочный срок. Упоминаю его для того, чтобы еще раз подчеркнуть — подсаживание надо делать мягко. Резкий переход вызовет только отторжение.</p>
<h2><span style="color: #008000;"><strong>Тестировщик не должен резко ломать существующий порядок работы</strong></span></h2>
<p>Китайское предупреждение человечеству:</p>
<p style="text-align: center;">«Мягко ступающий продвинется далеко».</p>
<p>Человек-тестировщик, который намеревается менять существующий процесс, должен &#171;далеко глядеть&#187;, &#171;мягко подстилать&#187;, &#171;нежно направлять&#187; и всячески &#171;выравнивать процессы&#187; в нужную сторону.</p>
<p>По ночам ему будет сильно икаться. Будет проблема с пониманием: «<em>Пришел невесть откуда, и чего-то хочет&#8230;</em>»</p>
<p>По-молодости и неопытности я как-то начинал требовать от разработчиков и от менеджеров изменений в процессе разработки. У меня был большой и обоснованный список требований с доводами 🙂</p>
<p>И всё разбилось об один, но веский довод: «<em>Мы так уже давно работаем, все идет хорошо, иди и не задалбывай</em>».</p>
<p>Я ушел и понял, что они правы.</p>
<p>Откровение: они же все отнюдь не глупые, программисты и манагеры. Они явно знают, что и зачем делают.</p>
<p>Процессы, которые сложились, обрели определенные черты и характеристики не сразу. Что-то резко менять — чревато и просто опасно. Да и странно, когда «какой-то» тестировщик внезапно требует от всех пользоваться svn и приступить к написанию юнит-тестов.</p>
<p style="padding-left: 30px;">Да к тому же, не может толком объяснить, что и как надо делать:</p>
<p>&#8212; Ладно, будем писать юнит-тесты. А как это делать?</p>
<p>&#8212; А я знаю? Это же ваша зона ответственности.</p>
<p>&#8212; Ррррыыыы!</p>
<p>В компании, в которой я сейчас работаю, я начал делать изменения мягко. Я не стал говорить, что «<em>мне не нравится то и это, плохо то и сё, никуда не годится так и эдак</em>».</p>
<p>Я сказал, что всё отлично.</p>
<p>Только, сказал я, давайте-ка я поставлю сам себе на наш сервер шняжку, под названием &#8216;Mantis&#8217; — я сам себе ее поставлю, сам себе ее настрою, вам это вообще ни к чему. Вики в компании есть, репозиторий кода есть, ну и отлично, а вот лично мне не хватает одной мелкой штучки.</p>
<p>Поставил и настроил.</p>
<p>И все баги записывал только в Mantis.</p>
<p>И когда приходило письмо с сообщение о баге (обычная была практика — сообщать о найденных дефектах письмами), я его заносил в Mantis.</p>
<p>И каждый раз, когда я сообщал кому-нибудь о баге, я давал ссылку на Mantis.</p>
<p>Сегодня через Mantis в нашей крутейшей в мире маленькой компании уже трекаются даже задачи, которые менеджеры ставят перед разработчиками. Они к этому привыкли, они оценили силу документированного описания дефекта, они научились работать с фильтрами, они смогли оценивать текущую ситуацию на проекте посредством трекера — это же действительно мощный инструмент.</p>
<p>Мы его под свои нужды поднастроили — вообще улёт.</p>
<p style="padding-left: 30px;">Разумеется, баг-трекер — только один аспект всей картинки.</p>
<h2><span style="color: #008000;"><strong>Тестировщик не должен полностью &#171;проседать&#187; под быт программистов</strong></span></h2>
<p>Дело в том, что если мягко ступать, боясь потревожить что-либо, шагая по болоту, то можно вообще не дойти.</p>
<p>Идти все-таки надо.</p>
<p>Надо изначально знать, чего ты хочешь, и понимать, возможно ли это осуществить в той ситуации, в которой ты находишься.</p>
<p>Понятно, что если тестировщик пришел в уже сложившийся коллектив, ему нужно будет «вливаться». Есть риск того, что не столько вольешься, сколько примешь правила игры, примешь ситуации, которые возникают, и менять что-либо не захочется.</p>
<p>В конце-концов, мы, двуногие гомосапиенсы, делаем на работе только то, за что нас хвалят, и не делаем то, за что нас не хвалят. Природа учит нас приспосабливаться к ситуации, а не брать штурмом Парламент.</p>
<p>Поэтому нужно все-таки держать в себе какие-то ориентиры, и руководствоваться собственными целями и видениями, которые позже могут принести проекту пользу.</p>
<p>И вообще, тестировщик должен подстраиваться под быт программистов, должен сидеть рядом с программистами, и пить с ними одно пиво. Быть отдельной единицей, которая «только проверяет» — неразумно и недальновидно.</p>
<h2><span style="color: #008000;"><strong>Никто не хочет возиться с бумагописанием, и это нормально</strong></span></h2>
<p>Требования, отчеты, описание изменений, планирование релизов и багфиксов — это круто, или это необходимо?</p>
<p>Если мы имеем дело с компанией молодых людей, которые хотят просто писать код, а их заставляют заниматься документацией, то в итоге мы получим толпу рассерженных молодых людей.</p>
<p>Но без основательной бюрократии процесс роста компании будет невозможен. Если не писать требования (хоть какие-нибудь), если не работать над их постоянным обновлением и отслеживанием изменений, то чуть позже, может быть, уже через год, появятся вопросы типа «<em>Что это софт делает, и почему именно так? А кто написал этот идиотский код, гыгы? Стоп, неужели это мой код?</em>»</p>
<p>Нормальная, но очевидно опасная ситуация: те, кто софт сделали, уже ушли, нынешние должны в нем разбираться по-факту, а документация есть, но остается на уровне требований, которые когда-то были написаны «для начала».</p>
<h2><span style="color: #008000;"><strong>Требований не будет</strong></span></h2>
<p>Вообще, о требованиях можно сказать очень просто — требований не будет.</p>
<p>Не будет той красоты и ясности, о которой мечтается ночами каждому адекватному тестировщику, а значит, не будет возможности писать тест-кейсы, которые проверяют требования, а значит, не будет «матрицы покрытия», «трэйсэбилити» и прочих интересных штучек.</p>
<p>Тестировщик должен сам заняться написанием документации. Это вызов. Это сложно. Это перспективно. Но сразу доверять это дело нам никто не будет. Это дело надо перетягивать на себя, как одеяло ночью с жены.</p>
<p>Как это сделать:</p>
<ol>
<li>надо беседовать с программистами. Задачи приходят от менеджеров, но изменения, которые происходят в ходе переписывания абстрактных требований в рабочий код, лучше всего выяснять у программиста, который эти требования только что воплотил. Это пульс, это настоящий источник знаний.</li>
<li>любая информация, которая попадает к тестировщику, должна быть где-то и как-то записана. В любых формулировках и в любом виде. Секрет в том, что если ты напишешь требования в виде хотя бы одной строчки, то потом эту строчку можно будет дописать и доуточнять до размера большого документа. Если же пытаешься сразу написать большой документ, с разделами, титулами и колонтитулами, то вероятнее всего, получится какая-то фигня, с которой никто не захочет возиться.</li>
<li>всем обычным людям проще что-то уточнить и подправить, чем писать с нуля на голом экране. Поэтому, вместо того, чтобы требовать у программиста «<em>Напиши для меня в вики список ситуаций, при срабатывании которых генерируется отправка емайла с уведомлением!</em>», надо самому подумать и записать хотя бы пару таких мест, а затем подойти к программисту с вопросом «<em>Я вот тут записал несколько ситуаций, при которых происходит отправка емайла юзеру, но не знаю, полный ли это список. Не затруднит ли тебя глянуть и сказать, все ли там учтено</em>». Спорю на $100 (принимаю наличными), что «<em>не затруднит</em>», и список он дополнит. Ибо кому еще знать про обсуждаемую тему, как не программисту?</li>
<li>создать свой Disaster Recovery Plan.</li>
</ol>
<h2><span style="color: #008000;"><strong>«Disaster Recovery Plan»</strong></span></h2>
<p>Про эту штуку мне рассказал начальник группы системного администрирования компании Moldcell – <a href="http://frumich.livejournal.com">frumich</a>.</p>
<p>Обычно такой документ создают сисадмины.</p>
<p>Смысл &#8216;Disaster Recovery Plan&#8217; в том, чтобы собрать (очень тщательно и детально), записать (еще тщательнее и детальнее) и сделать доступной для всех инструкцию действий в случае катастрофы.</p>
<p>Например, упал сервер, обслуживающий абонентов мобильной связи. Это «ой-ой-ой». Поэтому любой человек, который находится рядом с этим сервером, должен быстро взять упомянутый план, очень быстро прочитать в нем решение проблемы, и быстрее мысли пошагово сделать всё то, что должно эту проблему решить. То есть, даже секретарь офиса, руководствуясь этим документом, должна сделать всё быстро и правильно, даже если не понимает, что именно она открывает и куда какие команды пишет и кнопки нажимает.</p>
<p>На написание, тестирование и принятие такого документа у frumich&#8217;a ушел не один год. Но когда получилось! Собрал он в одну кучу и инструкции, и описания всех железок на предприятии, и фотографии всех мест, где эти железки находятся, и ежедневную автоматическую проверку наличия определенного железа на рабочих местах наладил — полный план, хоть ложись и умирай, народ подхватит твое знамя и резво двинется дальше 🙂</p>
<p>Работая над процессом тестирования, надо сделать что-то подобное дизастер-рековери плану. Надо сделать так, чтобы в принципе протестировать что-либо на проекте смог бы любой его участник — менеджер ли, дизайнер ли, программист ли, новый ли тестировщик (ли).</p>
<p>Надо написать собственный &#8216;Disaster Recovery Plan&#8217;. Или его точное подобие.</p>
<p>Дело даже не в том, что мы внезапно смертны. И не в том, что «<em>после себя надо оставлять подробное описание</em>». И не в том, что из маленькой компании всегда все уходят.</p>
<p>Просто при работе с любой документацией (своей или чужой) следует воспринимать её как часть чего-то большого, и соответственно её обрабатывать.</p>
<p>После того, как я стал воспринимать каждый тест-план и каждый тест-кейс как часть большого &#8216;Disaster Recovery&#8217; плана, мне стало очень ясно и понятно, куда какой кирпичик информации надо положить, и главное — зачем его надо туда класть.</p>
<p>И обрывочные сведения превращаются в стройную систему знаний, в которой могут разобраться не только тестировщики.</p>
<p>Основная проблема при создании документации — найти грань между действительно нужной информацией и «всем прочим». Изначально ведь кажется, что нужно сохранить абсолютно всё, но это не так.</p>
<p>Возможный ориентир: если что-то тебе лично требуется в работе два раза — есть повод подумать о том, чтобы это куда-то как-то записать.</p>
<p>А если это нужно кому-нибудь еще больше одного раза — непременно надо записывать.</p>
<h2><span style="color: #008000;"><strong>Сила любой системы &#8212; в накоплении и структурировании информации и запасов</strong></span></h2>
<p>В Полинезии живут папуасы.</p>
<p>Каждый папуас может легко выжить в лесу на протяжении всей свой жизни — то, чего не может сделать обычный белый человек.</p>
<p>Если я попаду в джунгли без штанов и денег — я пропал. А папуас, без штанов и без знания основ современной экономической системы международной торговли, все сделает правильно — сделает себе шалаш, затем найдет пищу, затем найдет самку, размножится и станет собирать дивиденды с членов семьи.</p>
<p>Получается, что сила — в самостоятельности и личностных умениях выживать?</p>
<p>Вроде бы, да.</p>
<p>Однако же, у папуасов до сих пор не сложилось того, что мы называем цивилизацией.</p>
<p>Цивилизация появляется из-за того, что возникает возможность копить и хранить запасы еды и информации, и защищать все это добро от голодных и недоразвитых соседей (враждебная среда). Появляется возможность заниматься не выживанием, а всякими интересными и развивающими мозг и личность делами.</p>
<p>Папуасы могут выжить, но накоплением ценностей они не занимаются.</p>
<p>И в итоге получается, что принадлежность к цивилизации дает больше шансов выжить всей группе принадлежащих к ней людей, нежели индивидуальные навыки выживания в диких степях любого Забайкалья планеты.</p>
<p>Основная проблема внедрения всех этих средств накопления информации кроется в основном отличии маленькой компании от большой — формализация взаимодействий.</p>
<p>В маленькой компании все живут одной семьей (что вредит бизнесу, ну да ладно), дружно и весело. В большой компании нет семьи — есть стая волков, есть место для многолетних интриг и политических течений. Зная, что со временем маленькая компания превратится в что-то большое, можно почти точно предположить, какие проблемы при переходе в новое состояние придется решать.</p>
<p>Например:</p>
<ul>
<li>проблемы с отчетностью о работе.</li>
<li>проблемы с фиксацией и передачей знаний.</li>
<li>проблемы с разделением задач и зон ответственности.</li>
</ul>
<p>Очевидно, что народонаселение маленькой компании будет очень сильно сопротивляться формализации. Народ живет сегодняшним днем, и это нормально.</p>
<p>Чем раньше поставишь эту работу на определенные рельсы, тем лучше. Надо обладать несомненным авторитетом и правом что-либо и кого-либо ставить на рельсы.</p>
<p>Но если право есть, то «ставить на рельсы» довольно просто — последовательно хвалишь одно поведение и не хвалишь другое. Народ гибкий — подтянется под начальника&#8230;</p>
<p style="padding-left: 30px;">Про папуасов мне подумалось, когда я наблюдал за развалом очередной группы молодых и талантливых. Каждый по-отдельности мог наколбасить хороший код, но у парней не получилось работать совместно. В первую очередь это произошло оттого, что каждый делал свою работу как мог и как хотел, не думая о единой, концептуальной системе общих ценностей. Спутали ценности со средствами.</p>
<h2><span style="color: #008000;"><strong>Знать путь и пройти его &#8212; это две большие разницы</strong></span></h2>
<p>Изменения нужно делать мелкими шагами. Большие прыжки не помогут. Надо быть терпеливым, и исходить из долгосрочных целей.</p>
<p>Всю работу по проекту надо воспринимать сквозь призму дальних целей роста компании.</p>
<p>Просто представь себе, что вы в будущем именно ты будешь главой отдела тестирования с филиалами в Киеве, Лондоне и на Лиговке — вот и готовь себе почву.</p>
<p>Надо думать чуть-чуть как владелец компании. Каждый человек может открыть собственную компанию. Когда начинаешь думать как руководитель, все проясняется. Начинаешь понимать, что важнее, а что второстепенно.</p>
<p>Важный момент — надо вообразить себя не владельцем компании, которую ты обслуживаешь, а владельцем собственной компании.</p>
<p>Тестировщик легко может вообразить себя аналитиком, человеком, который думает о всей системе сразу. Может быть, аналитик — следующий этап развития тестировщика?</p>
<p>Тестировщик может и должен взять на себя всю работу по подготовке документации — как аналитик.</p>
<p>Если относишься к тестированию как аналитик, то документация в итоге появится, словно сама по себе.</p>
<p>Даже более того, тестировщик может стать источником информации для всех участников проекта. Если именно он будет ее постоянно собирать и структурировать, то все привыкнут к тому, что «<em>она сама по себе появляется в вики, вот сегодня к семи часам появится описание того, о чем мы вчера говорили&#8230;</em>» Это идеал.</p>
<p>Роль аналитика в маленькой компании, как правило, не занята никем. Бери и пользуйся.</p>
<p>Вообще, в маленькой компании можно работать кем угодно — можно стать аналитиком, просто этого захотев, и приступив к выполнению этой работы. Ее же кто-то должен делать?</p>
<h2><span style="color: #008000;"><strong>Нередко тестировщиков СПРАВЕДЛИВО воспринимают как &#171;трату денег&#187;</strong></span></h2>
<p>Причем трату, которая «нужно в принципе», то есть, непонятно зачем. Так, мол, полагается.</p>
<p>Действительно, ведь если в компании не будет тестировщика, программисты все равно напишут и выпустят софт — вот пусть они сразу пишут софт качественно, и не придется тратиться на тестировщиков.</p>
<p>Из-за этого очень разумного с житейской точки зрения суждения тестировщики в маленьких компаниях почти всегда появляются на поздних этапах развития и разработки, когда уже все написано, но (что было предсказуемо) работает не совсем так беспроблемно, как хотелось бы, и тогда народ принимает решение о том, чтобы пригласить тестировщика, который «<em>найдёт все баги на проекте</em>».</p>
<p style="padding-left: 30px;">Когда это выражение относится непосредственно к тебе &#8212; становится несмешно.</p>
<p>В принципе, тестирование денег не приносит. Оно помогает сохранить как деньги, так и репутацию, и именно с этого можно начинать. Наиболее правильно будет преподносить тестирование как средство сохранения вероятных доходов — это самое доходчивое объяснение нашей работы.</p>
<p>Сам не сможешь — кооперируйся с мелким менеджментом, а затем с высшим.</p>
<p>Любые траты могут быть инвестициями — зависит от того, как преподнести.</p>
<p>Теперь важный вопрос: как осуществить все вышесказанное? Как копить информационные ценности?</p>
<h2><span style="color: #008000;"><strong>Ничего не забывать, всё записывать</strong></span></h2>
<p>Без пощады к себе.</p>
<p>Без «<em>это само собой подразумевается, и все об этом знают</em>».</p>
<p>Без «<em>это слишком долго расписывать</em>».</p>
<p>Одна строчка документации потянет за собой всё остальное&#8230;</p>
<p>Вообще, надо научиться сохранению любой информации в едином пространстве. Если мелкие, но важные инструкции разбросаны по логам скайпа, по письмам да по бумажкам на столе &#8212; это к дождю. К дождю проблем и упущений.</p>
<p>Я для себя решил эту проблему посредством сбора всего в одном текстовом файле в EditPlus, когда работаю в Windows &#8212; в этой софтинке можно сдвигать абзацы разных уровней вложенности. Быстрое &#171;свертывание&#187; помогает ориентироваться по разделам, почти как в вики. При работе в Ubuntu адекватного аналога свертывания разных уровней я не нашел, поэтому пользуюсь обычным GEdit.</p>
<p style="padding-left: 30px;">Все-таки, быстрое сохранение мелких текстовых данных в вики происходит медленнее, нежели в блокнот.</p>
<p>Задачи, которые следует выполнить позже, я сохраняю в <a href="http://rememberthemilk.com">rememberthemilk.com</a></p>
<p style="padding-left: 30px;">Задачи должны постоянно светиться перед глазами, иначе вся эта теория о том, что задачи надо записывать, чтобы не держать их в разуме, не срабатывает. Ну, забыл открыть страницу с задачами &#8212; и забыл про что-то важное.</p>
<p style="padding-left: 30px;">А RTM позволяет выносить список задач на экран GMail и GCalendar, и я постоянно вижу задачи. Также к ним можно обращаться с мобильного телефона, что опять же, важно для &#171;записал и забыл&#187;, в любом месте и в любом окружении.</p>
<p>В GCalendar надо записывать события, для которых мне потребуется напоминание. Сервис важен тем, что напоминания о событиях приходят с него ко мне в виде sms на мобильный телефон. А также ежедневно письмо с перечнем событий на сегодня.</p>
<p>Еще раз повторю &#8212; надо пользоваться &#171;своими&#187; инструментами, что в офисе, что вне офиса. Свой календарь, своя почта, свое кресло, свои часы&#8230;</p>
<p>Еще я хотел сказать о том, что тестировщик должен быть в курсе всех намерений разработки, а для этого надо добиться того, чтобы тестировщика приглашали на митинги менеджеров, но это тема для отдельного доклада.</p>
<p style="padding-left: 30px;">Да и — я еще не знаю, как однозначно решить эту проблему.</p>
<p>Спасибо.</p>
<p><span style="color: #ffffff;">.</span></p>
<h1><span style="color: #008000;"><strong>Обсуждение доклада</strong></span></h1>
<p><span style="color: #008000;"><strong><span style="color: #ffffff;">.</span></strong></span></p>
<p><strong><a href="http://www.luxoft-training.ru/about/experts/alexandrov.html">Александр Александров</a>, эксперт учебного центра Luxoft по управлению качеством ПО, управлению тестированием, анализу и совершенствованию инженерных процессов.</strong></p>
<p style="padding-left: 30px;">
<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;">Вот наш с Мишей (Михаил Павлов) опыт: когда мы пришли в компанию Auriga в начале 2006 года — нас встретили очень жестко. Ногами не били, но все остальное было. Через какое-то время начали уважать, но огрызаться: «Вам надо, вы и делайте». Эти слова нам говорили до августа 2007 года, когда компания получила сертификат CMMI 4-го уровня.</p>
<p style="padding-left: 30px;">В начале 2008 года, когда я из компании уже ушел, должны были приехать крупные заказчики, которые интересовались процессами. Миша там еще работал, он пригласил меня, и я с большим удовольствием автору слов «Вам надо, вы и делайте» эти слова вернул при достаточно большом сборище. Жесткость, а иногда бескомпромиссность — это качество, которое вытекает из первого вашего тезиса, и противоречит третьему и четвертому тезисам, &#8212; я призываю всех присутствующих им пользоваться умело, и не сомневаться в том, что если нужно совершить какое-то воздействие — то нужно это воздействие совершить.</p>
<p style="padding-left: 30px;"><em>(аплодисменты)</em></p>
<p style="padding-left: 30px;">Да мне аплодировать не надо&#8230;</p>
<p><strong>Алексей Лупан:</strong></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><strong>Юля Нечаева, мама и омега тестирования в компании Innova Systems (Москва)</strong></p>
<p style="padding-left: 30px;">Леша, спасибо, если бы я увидел этот доклад в начале своей карьеры, я бы, наверное, уже взлетела бы намного выше по карьерной лестнице.</p>
<p style="padding-left: 30px;">Мне очень нравится подход к тому, что надо смотреть на свою работу как владелец компании. Это круто и помогает. Но как быть в тестировании с тем, что бюджеты решаем не мы, сроки решаем не мы, и мы не выбираем область работы. Есть жесткие ограничения, которые мы не решаем.</p>
<p style="padding-left: 30px;">Как ты это противоречие решил для себя?</p>
<p><strong>Алексей Лупан:</strong></p>
<p style="padding-left: 30px;">Да, в маленьких компаниях обычный тестировщик не влияет ни на что из того, что он хотел бы в данном смысле получить. Ни бюджет, ни сроки обычно не оговариваются, а назначаются.</p>
<p style="padding-left: 30px;">Все, что можно сделать — составить свой план тестирования, в котором может быть перечислено абсолютно всё то, что можно было бы проверить, и это огромный список (а он будет огромным, если тестировщик хорошо подумает) положить на стол начальству и сказать, что у нас есть большой риск того, что за те два дня, которые нам выданы на тестирование всего этого, мы сможет протестировать, может быть, кусок отсюда и отсюда, и больше ничего. Вы начальство &#8212; вы и думайте.</p>
<p style="padding-left: 30px;">Суть не в том, чтобы напугать начальство, а в том, чтобы как можно раньше подумав о вероятной проблеме с точки зрения начальника, вы приходишь к своему начальнику, и говоришь с ним на его же языке.</p>
<p><strong>Александр Александров:</strong></p>
<p style="padding-left: 30px;">Это надо сделать во-первых, а во-вторых, после того, как все закончилось, надо придти к начальнику еще раз и сказать любимую фразу капитана Зеленого из мультфильма «Тайна третьей планеты»: «Я так и знал!»</p>
<p style="padding-left: 30px;">И очень хорошо, когда у вас есть документ, потому, что в десятый раз с вами начнут считаться, стопудово.</p>
<p><strong>Юля Нечаева:</strong></p>
<p style="padding-left: 30px;">Если компания после десятого раза выживет.</p>
<p><strong>Алексей Лупан:</strong></p>
<p style="padding-left: 30px;">Выживет. Существует много софта, который работает не так, как надо, но он есть и компании продолжают работать.</p>
<p><strong>Вопрос (Симферополь):</strong></p>
<p style="padding-left: 30px;">Маленькая компания — это по-вашему сколько?</p>
<p><strong>Алексей Лупан:</strong></p>
<p style="padding-left: 30px;">До 30-ти человек. Но дело не в объемах, а в менталитете и психологии.</p>
<p><strong>Вопрос:</strong></p>
<p style="padding-left: 30px;">Хотелось пару слов сказать о роли тестировщиков.</p>
<p style="padding-left: 30px;">Смотрите, любая софтварная компания является системой с обратной связью. С моей точки зрения роль тестировщика в том, чтобы осуществлять эту обратную связь, дабы процесс был управляемым. И соответственно, когда идет речь об ответственности тестировщика за качество, всегда есть ответственность за то, чтобы сделать свою работу качественно в тех условиях, в которые ты поставлен. И чем жестче эти условия, тем грубее будет управление. Чем больше возможностей у тестировщиков, тем точнее может быть управление.</p>
<p><strong>Алексей Лупан:</strong></p>
<p style="padding-left: 30px;">Спасибо, вы говорите на высоком уровне абстракции, в то время как большинство людей думают, что тестировщик — это тот парень, который должен найти все баги.</p>
<p><strong>Эвелина Тананаева (Минск):</strong></p>
<p style="padding-left: 30px;">Вопрос про подсаживание на свои инструменты и отчетность — в компании уже есть инструменты, и сформированная отчетность, но ты понимаешь, что ты можешь предложить более эффективное решение. Однако в компании уже есть налаженный процесс тестирования, и компания не хочет от него отказываться. Что делать?</p>
<p><strong>Алексей Лупан:</strong></p>
<p style="padding-left: 30px;">Иногда действительно лучше не менять, но вопросы об этом важно задавать. Просто задать открытый вопрос, не предполагая заранее, что именно и как тебе ответят. Если не спросишь, то и не ответят. Например, на многие тренинги попадаю со скидкой просто потому, что я спрашиваю об этом.</p>
<p><strong>Вопрос:</strong></p>
<p style="padding-left: 30px;">Практический вопрос: при изменении процесса все равно находится какой-нибудь непробивной человек, который упрётся и скажет, что «я 20 лет работал и буду так дальше работать, мне всего полгода до пенсии осталось&#8230;» Как вы таких пробивали?</p>
<p><strong>Алексей Лупан:</strong></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>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2010/11/21/37/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1946</post-id>	</item>
		<item>
		<title>Как установить JAVA</title>
		<link>https://testitquickly.com/2008/12/22/essential-about-java/</link>
					<comments>https://testitquickly.com/2008/12/22/essential-about-java/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Mon, 22 Dec 2008 10:44:49 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Банальное]]></category>
		<category><![CDATA[Документация]]></category>
		<category><![CDATA[Откровения]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[Основы]]></category>
		<category><![CDATA[Хватит тупить]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=662</guid>

					<description><![CDATA[JAVA-окружение бывает разным: JRE &#8212; Java SE Runtime Environment &#8212; это &#171;настольное&#187; JAVA-окружение, которое нужно для просмотра java-контента в браузере. JDK &#8212; Java Development Pack &#8212; это и JAVA, которая нужна для браузеров, и утилиты, которые нужны для JAVA-разработки. То и другое лежит на официальном сайте JAVA. Windows Внимание, потребуется полная перезагрузка компьютера. В момент… <span class="read-more"><a href="https://testitquickly.com/2008/12/22/essential-about-java/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>JAVA-окружение бывает разным:</p>
<ul>
<li><strong>JRE</strong> &#8212; Java SE Runtime Environment &#8212; это &#171;настольное&#187; JAVA-окружение, которое нужно для просмотра java-контента в браузере.</li>
<li><strong>JDK</strong> &#8212; Java Development Pack &#8212; это и JAVA, которая нужна для браузеров, и утилиты, которые нужны для JAVA-разработки.</li>
<li>То и другое лежит на <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">официальном сайте</a> JAVA.</li>
</ul>
<h1><strong>Windows</strong></h1>
<p>Внимание, потребуется полная перезагрузка компьютера.</p>
<p>
<span id="more-662"></span>В момент написания заметки на компутер была установлена jdk1.5.0_14 в следующий каталог: c:\Java\jdk1.5.0_14</p>
<p style="padding-left: 40px;">Опытными рекомендуется <strong>не ставить</strong> жаву в каталоги, в имени которых есть пробелы. То есть, c:\Program Files\ лучше не использовать.</p>
<p style="padding-left: 40px;">В быту никаких отклонений от установки Java в c:\Program Files\ не наблюдалось.</p>
<p>Предполагается, что после перезагрузки Windows будет &#171;знать&#187;, где у нее лежит JAVA. Но в этом следует убедиться &#171;руками&#187;, забравшись в &#171;System Properties&#187; (нажатием клавиш &#171;Win+Pause/Break&#187;):</p>
<ol>
<li>System Properties &gt; Advanced &gt; Environment Variables &gt; System Variables &gt; <strong>JAVA_HOME</strong></p>
<p><h4><strong>Требуемые значения</strong></h4>
<ol>
<li><em>Variable name</em>: JAVA_HOME</li>
<li><em>Variable value</em>: c:\Java\jdk1.5.0_14</li>
</ol>
</li>
<li>System Properties &gt; Advanced &gt; Environment Variables &gt; System Variables &gt; <strong>path</strong></p>
<p><h4><strong>Требуемые значения</strong></h4>
<ol>
<li><em>Variable name</em>: Path</li>
<li><em>Variable value</em>: C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Subversion\bin;D:\mvn\apache-maven-2.0.9\bin;<span style="color: #ff0000;">c:\Java\jdk1.5.0_14\bin</span></li>
</ol>
</li>
</ol>
<p>Это кажется довольно сложным для глаза буквосочетанием, но принципиально эта последовательность символов не имеет особого значения кроме того, что выделено красным. Оно как раз и появляется в этом списке после установки JAVA.</p>
<p>В общем, теперь Windows знает, где у нее лежит JAVA: c:\Java\jdk1.5.0_14\bin</p>
<p>Обратим пристальное внимание на &#8216;<em>\bin</em>&#8216; в свойствах переменной <em>Path</em> &#8212; путь должен быть записан именно так &#8212; каталог &#171;bin&#187;, но без закрывающего слэша.</p>
<h3><strong>Редкий мазафак</strong></h3>
<p>Может так случиться, что (в консоли) <code><span class="str">java -version</span></code> говорит, что все ок, а <code><span class="str">javac -version</span></code> отвечает <code><span class="str">'javac' is not recognized as an internal or external command, operable program or batch file</span></code></p>
<p>
Это решаемо.</p>
<p>Execute &#8216;<code><span class="pln">c:\java\jdk1.5.0_14\bin\javac -version</span></code> to make sure that javac is available.</p>
<p>Then do:</p>
<pre class="lang-java prettyprint prettyprinted" style="padding-left: 30px;"><code><span class="pln">set path="%path%;c:\java\jdk1.5.0_14\bin"</span></code></pre>
<p>You can also tell <em>which</em> executable (if any) is being used with the command:</p>
<pre class="lang-java prettyprint prettyprinted" style="padding-left: 30px;"><code><span class="kwd">for</span> <span class="pun">%</span><span class="pln">i in </span><span class="pun">(</span><span class="pln">javac</span><span class="pun">.</span><span class="pln">exe</span><span class="pun">)</span> <span class="kwd">do</span> <span class="lit">@echo</span> <span class="pun">%~</span><span class="pln">$PATH</span><span class="pun">:</span><span class="pln">i</span></code></pre>
<p>This is a neat trick similar to the <code>which</code> and/or <code>whence</code> commands in some UNIX-type operating systems.</p>
<h1><strong>Debian</strong></h1>
<p>Тут вся Java установлена по-умолчанию. Но есть бэмц: в силу исторических событий там устанавливается усечённая Java (openJDK), которая не подходит для работы некоторых приложений. Поэтому может возникнуть необходимость снести всё и поставить &#171;свою&#187; джаву.</p>
<p style="padding-left: 30px;">Есть возможность установить две джавы одновременно и переключаться между ними.</p>
<p style="padding-left: 30px;"><span style="color: #ff0000;">Осторожно</span>, если самая свежая Java будет использоваться в коммерческой разработке — <a href="https://habr.com/ru/post/424579/">Не попадитесь в ловушку используя Oracle JDK 11</a> — ситуация меняется, но вас пердупердили. Есть смысл остаться на openJDK.</p>
<p>Однако, если джавы нет, и она просто нужна, то:</p>
<p style="padding-left: 40px;">Смотрим доступные на данный момент версии в соответствующем операционной системе репозитории:</p>
<pre style="padding-left: 40px;">aptitude search openjdk</pre>
<p style="padding-left: 40px;">Ок, узнал, сегодня в моде <em>openjdk-11-jre</em>.</p>
<pre style="padding-left: 40px;">aptitude install openjdk-11-jre &amp;&amp; <em>java -version</em></pre>
<p style="padding-left: 40px;">Если ничего экстраординарного не произошло, то на этом всё.</p>
<h2>= 1 =</h2>
<p>You will need to know whether you are running a 32 bit or a 64 bit OS:</p>
<pre>uname -m</pre>
<p style="padding-left: 40px;">Ответ:</p>
<p>
<em>i686: 32 bit kernel</em></p>
<p>
или <em>x86_64: 64 bit kernel</em></p>
<h2>= 2 =</h2>
<pre>aptitude search ~i~D{sun-java,openjdk}</pre>
<p>Пример результата команды — перечень того, что установлено:</p>
<p>
i A ca-certificates-java    &#8212; общие CA-сертификаты (хранилище JKS)</p>
<p>
i A default-jre            &#8212; Standard Java or Java compatible Runtime</p>
<p>
i A default-jre-headless    &#8212; Standard Java or Java compatible Runtime (headless)</p>
<p>
i A openjdk-7-jre        &#8212; OpenJDK Java — окружение времени исполнения с использованием JIT-компилятора</p>
<p>Или пустота, если java нет.</p>
<h2>= 3 =</h2>
<p>Вычистить систему от OpenJDK (Эта команда удалит всё, что имеет отношение ко всем версиям OpenJDK.):</p>
<pre>sudo apt purge openjdk*</pre>
<p>Внимательно читать предупреждение о том, что будет удалено. Например, у меня в список удаления попал Xmind, который без openjdk-7-jre и openjdk-7-jre-headless работать не может.</p>
<p>Есть смысл также сделать</p>
<pre>sudo apt autoremove</pre>
<h2>= 4 =</h2>
<p><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">http://www.oracle.com/technetwork/java/javase/downloads/index.html </a>— скачать <strong>JDK (development)</strong></p>
<p>Самостоятельно сообразить, файл для какой платформы нужен.</p>
<p>
Формат скачиваемого файла — разный: <em>tar.gz, deb, rpm…</p>
<p>
</em></p>
<p style="padding-left: 30px;">Установка deb типична: <em>sudo dpkg -i jdk-12.0.1_linux-x64_bin.deb</em></p>
<p>Дальше рассматриваем установку tar.gz, она чуть заморочена, но позволяет контролировать место установки и ряд нюансов.</p>
<h2>= 5 =</h2>
<p>Installing Oracle JDK in the <em>/opt</em> folder (with sudo privileges): the /opt directory is reserved for all the software and add-on packages that are not part of the default installation.</p>
<p>Create a directory for your JDK installation:</p>
<pre>mkdir /opt/Java/</pre>
<p>and extract java into the /opt/jdk directory:</p>
<pre>tar -zxf jdk-8u112-linux-i586.tar.gz -C /opt/Java/
ls /opt/Java/</pre>
<h2>= 6 =</h2>
<p>Setting Oracle JDK as the default JVM. In our case, the java executable is located under &#8216;/opt/Java/jdk1.8.0_112/bin/java&#8217;. To set it as the default JVM in your machine run:</p>
<pre>update-alternatives --install /usr/bin/java java /opt/Java/jdk1.8.0_112/bin/java 100</pre>
<p>and</p>
<pre>update-alternatives --install /usr/bin/javac javac /opt/Java/jdk1.8.0_112/bin/javac 100</pre>
<h2><del></del>= 7 =</h2>
<p>Verify that java has been successfully configured by running:</p>
<pre>update-alternatives --display java</pre>
<p>and</p>
<pre>update-alternatives --display javac</pre>
<p>The output should look like this:</p>
<pre>java - auto mode
 link currently points to /opt/Java/jdk1.8.0_112/bin/java
 /opt/Java/jdk1.8.0_112/bin/java - priority 100
 Current 'best' version is '/opt/Java/jdk1.8.0_112/bin/java'.</pre>
<h2>= 8 =</h2>
<p>Определение места JAVA для глобальных переменных (понадобится перелогиниться)</p>
<p>Последовательно выполнить в терминале две команды (результат их выполнения &#171;молчаливый&#187;):</p>
<pre>export JAVA_HOME=/opt/Java/jdk1.8.0_112/bin/java
export PATH=/opt/Java/jdk1.8.0_112/bin:$PATH</pre>
<p>Для проверки последовательно выполнить в терминале:</p>
<pre>echo $JAVA_HOME
echo $PATH
which java
java -version</pre>
<p>и внимательно читать, если все указано правильно.</p>
<h2>= 9 =</h2>
<p>(Optional) To update Java, simply download an updated version from Oracle&#8217;s website and extract it under the /opt/jdk directory, then set it up as the default JVM with a higher priority number (in this case 110):</p>
<pre>update-alternatives --install /usr/bin/java java /opt/Java/jdk.new.version/bin/java 110
update-alternatives --install /usr/bin/javac javac /opt/Java/jdk.new.version/bin/javac 110</pre>
<p>You can keep the old version or delete it:</p>
<pre>update-alternatives --remove java /opt/Java/jdk.old.version/bin/java
update-alternatives --remove javac /opt/Java/jdk.old.version/bin/javac</pre>
<pre>rm -rf /opt/Java/jdk.old.version</pre>
<h2>Как удалить Java</h2>
<p>Просто удалить /opt/Java/</p>
<p>Если после этого будет установлена другая версия java, и в echo $PATH будут отображаться два пути к исполняемым файлам, то:</p>
<ol>
<li>echo $PATH</li>
<li>copy details into a text editor</li>
<li>remove unwanted entries</li>
<li>PATH= <em># pass here your edited list of entries</em></li>
</ol>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2008/12/22/essential-about-java/feed/</wfw:commentRss>
			<slash:comments>20</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">662</post-id>	</item>
		<item>
		<title>Удобный софт</title>
		<link>https://testitquickly.com/2008/12/10/convenient-software/</link>
					<comments>https://testitquickly.com/2008/12/10/convenient-software/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Wed, 10 Dec 2008 11:24:41 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Автоматизация]]></category>
		<category><![CDATA[Инструменты]]></category>
		<category><![CDATA[Откровения]]></category>
		<category><![CDATA[Радости]]></category>
		<category><![CDATA[Фишки]]></category>
		<category><![CDATA[ChmSee]]></category>
		<category><![CDATA[Console2]]></category>
		<category><![CDATA[DeskPin]]></category>
		<category><![CDATA[EditPlus]]></category>
		<category><![CDATA[Hot-keyboard]]></category>
		<category><![CDATA[kate]]></category>
		<category><![CDATA[Launchy]]></category>
		<category><![CDATA[RememberTheMilk]]></category>
		<category><![CDATA[VirtualWin]]></category>
		<category><![CDATA[Удобный софт]]></category>
		<guid isPermaLink="false">http://testitquickly.wordpress.com/?p=590</guid>

					<description><![CDATA[Мелкие и полезнющие программы и мелкие утилиты для Windows и Linux. Windows DeskPin — прикрепляет любое окно &#171;поверх всех&#171;. Окно помечено иконкой-&#171;иголкой&#187;. Дефолтный хоткей &#8212; Ctrl+F12. EditPlus — самая майндмапперская софтина из всех текстовых редакторов. Рулезнее, нежели AkelPad (а рулезнее AkelPad нет ничего). Console2 — open-source &#8212; Windows console window enhancement. Multiple tabs, text editor-like… <span class="read-more"><a href="https://testitquickly.com/2008/12/10/convenient-software/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Мелкие и полезнющие программы и мелкие утилиты для Windows и Linux.</p>
<h1><span id="more-590"></span><strong>Windows</strong></h1>
<ul>
<li><strong><a href="http://users.forthnet.gr/pat/efotinis/programs/files/DeskPins130.zip">DeskPin</a></strong> — прикрепляет любое окно &#171;<strong>поверх всех</strong>&#171;. Окно помечено иконкой-&#171;иголкой&#187;. Дефолтный хоткей &#8212; Ctrl+F12.</li>
<li><strong><a href="http://www.editplus.com/index.html">EditPlus</a></strong> — самая майндмапперская софтина из всех <strong>текстовых редакторов</strong>. Рулезнее, нежели <a href="http://akelpad.sourceforge.net/ru/index.php">AkelPad</a> (а рулезнее AkelPad нет ничего).</li>
<li><strong><a href="http://sourceforge.net/project/showfiles.php?group_id=43764">Console2</a></strong> — open-source &#8212; Windows <strong>console window</strong> enhancement. Multiple tabs, text editor-like text selection. Не требует установки.</li>
<li><strong><a href="http://rus.hot-keyboard.com/">Hot-keyboard</a></strong> — смертельно удобный, многофункциональный <strong>менеджер &#171;горячих клавиш&#187; </strong>всея винды. Спокойно перекрывает дефолтные хоткеи Windows, позволяет волшебничать напропалую. Например, при нажатии Ctrl+Shift+Ins у меня в текстовом поле в окне (в заголовке которого &#8212; обязательное условие &#8212; присутствуют символы &#171;<em>Mozilla Firefox</em>&#171;) вставляется вот такой текст:</li>
</ul>
<p style="padding-left:60px;">h3.</p>
<p>
#</p>
<p>
##</p>
<p>
###</p>
<p>
h4. Expected result</p>
<p>
h4. Actual result</p>
<p style="padding-left:30px;">Осталось только заполнять пункты.</p>
<p style="padding-left:30px;">Если надо разрешить вставку этого текста в несколько разных приложений, то ключевые слова следует разделять точкой с запятой: &#171;<em>Mozilla Firefox;EditPlus</em>&#171;</p>
<ul>
<li><strong><a href="http://virtuawin.sourceforge.net/">VirtualWin</a></strong> — весьма, весьма грамотная утилита для работы с <strong>виртуальными столами</strong>. Плюсы &#8212; можно сполна управлять ею аккордами клавиш, коих очень много. Работает адекватно с окнами скайпа. Даже &#8212; можно перетаскивать окна между столами.</li>
<li><strong><a href="http://www.launchy.net/">Launchy</a></strong>— free cross-platform utility designed to help you forget about your start menu, the icons on your desktop, and even your file manager. Launchy indexes the programs in your start menu and can launch your documents, project files, folders, and bookmarks with just a few keystrokes.</li>
<li><strong>&#8230;</strong></li>
</ul>
<h1><strong>Debian</strong></h1>
<p>apt-get install &#8230;</p>
<ul>
<li><a href="http://www.getdeb.net/app/Parcellite"><strong>Parcellite</strong></a> — маленький менеджер буфера обмена.</li>
<li><strong>ChmSee</strong> — для просмотра .chm. Поддерживает русский язык, легко меняет размер шрифтов. Еще есть <strong>Gnochm</strong>, <strong>kchmviewer</strong> и <strong>Okular </strong>(для KDE), и <strong>xCHM</strong> — просмоторщик chm файлов не зависящий от оконного менеджера. Существуют Add-On для FireFox, которые способны читать CHM, и даже создавать, но это не то.</li>
<li><strong><a href="http://atdot.ch/scr/">Skype Call Recorder</a></strong> &#8212; сидит в трее и (зависит от настроек) при начале созвона спрашивает, хочу ли я этот разговор записать. Пишет в MP3, Ogg Vorbis или WAV, автоматически именуя создаваемые файлы. Макс. битрейт &#8212; 160 kbps.</li>
</ul>
<h1><strong>WEB</p>
<p>
</strong></h1>
<ul>
<li><strong><a href="http://www.rememberthemilk.com">/rememberthemilk.com/</a></strong> &#8212; список дел. Интегрируется с Gmail и Gcalendar.</li>
</ul>
<h1><strong>Разное</strong></h1>
<p>Как отсортировать строки в Kate:</p>
<ul>
<li>Настроить Kate &gt; Модули &gt; «Текстовый фильтр»</li>
<li>Выделить строки, которые надо отсортировать</li>
<li>Сервис &gt; Текстовый фильтр &gt; написать команду &#8216;Sort&#8217; (вызов команды sort &#8212; sort lines of text files, она уже установлена в системе) &gt; [OK]</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2008/12/10/convenient-software/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">590</post-id>	</item>
		<item>
		<title>LibreOffice-овские ёпрстизмы&#8230;</title>
		<link>https://testitquickly.com/2008/07/21/oomazafakas/</link>
					<comments>https://testitquickly.com/2008/07/21/oomazafakas/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Mon, 21 Jul 2008 10:31:21 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Банальное]]></category>
		<category><![CDATA[Инструменты]]></category>
		<category><![CDATA[Не смешно]]></category>
		<category><![CDATA[Озарения]]></category>
		<category><![CDATA[Фишки]]></category>
		<category><![CDATA[Calc]]></category>
		<category><![CDATA[LibreOffice]]></category>
		<category><![CDATA[O_o]]></category>
		<category><![CDATA[Writer]]></category>
		<category><![CDATA[Настройки]]></category>
		<guid isPermaLink="false">http://testitquickly.wordpress.com/?p=258</guid>

					<description><![CDATA[Запись посвящена мелочам О_о, которые существенно влияют на работу, но по причине редкого применения быстро забываются. Будет пополняться решениями проблем по мере их возникновения. &#160; Как закрепить строку в Calc Выделить строку ниже той, которую надо закрепить. Окно &#8212; Фиксировать. Если заданная область должна быть прокручиваемой, то используйте команду Окно &#8212; Разбить. Если нужно напечатать… <span class="read-more"><a href="https://testitquickly.com/2008/07/21/oomazafakas/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Запись посвящена мелочам О_о, которые существенно влияют на работу, но по причине редкого применения быстро забываются.</p>
<p>
Будет пополняться решениями проблем по мере их возникновения.</p>
<p>
<span id="more-258"></span></p>
<div id="tsvetsrifta">
&nbsp;</p>
<h3>Как закрепить строку в Calc</h3>
<ol>
<li>Выделить строку ниже той, которую надо закрепить.</li>
<li><b>Окно &#8212; Фиксировать</b>.</li>
</ol>
<p>Если заданная область должна быть прокручиваемой, то используйте команду <b>Окно &#8212; Разбить</b>.</p>
<p>
Если нужно напечатать определенную строку на всех страницах документа, выберите команду <b>Формат &#8212; Диапазоны печати &#8212; Изменить</b>.</p>
<h3>Как указать цвет шрифта</h3>
</div>
<p>В установленном по-умолчанию О_о постоянно встречается проблема:</p>
<ol>
<li>выделяем текст,</li>
<li>применяем к нему какой-то цвет,</li>
<li>и видим фигу &#8212; цвет текста не меняется. Но О_о честно врет, что все в порядке, цвет к выделенному тексту применен&#8230;</li>
</ol>
<p>Решение проблемы: надо снять галочку по адресу <strong>Tools</strong> &gt; <strong>Options</strong> &gt; <strong><a href="http://OpenOffice.org">OpenOffice.org</a></strong> &gt; <strong>Accessibility</strong> &gt; <strong>Options for high contrast appearance</strong> &gt; <strong>Use automatic font color for screen display</strong>.</p>
<blockquote>
<p>По-русски: <strong>Сервис &gt; Параметры &gt; <a href="http://OpenOffice.org">OpenOffice.org</a> &gt; Специальные возможности &gt; Параметры контрастного режима &gt; Автоматически подбирать цвет для отображения текста</strong></p>
</blockquote>
<div id="avtozapolnenie">
<h3>Как назначить клавишу для управления &#171;автозаполняемыми&#187; словами</h3>
</div>
<p>В Writer есть особенность, знакомая опытным пользователям MS Excel &#8212; автозавершение слов по мере набора. То есть, если в документе уже есть слово &#171;Имматериализация&#187;, то при повторном наборе этого сочетания символов в другой ячейке программа сделает так: &#171;Имм<span style="background-color:black;color:white;">атериализация</span>&#171;, и при нажатии [Enter] это слово будет полностью вписано в ячейку. Удобно, да.</p>
<p>
О_о успешно делает это и в Calc, и в Writer, но поначалу бывает непонятно, какие клавиши отвечают за это автозаполнение и можно ли эти клавиши переназначить. Например, завершать автозаполнение клавишей [Tab], а не [Enter].</p>
<p>
Решение проблемы: надо пройти по адресу <strong>Tools</strong> &gt; <strong>AutoCorrect</strong> &gt; <strong>Word Completition</strong> &gt; <strong>Accept with</strong> &gt; выбрать удобную клавишу.</p>
<blockquote>
<p>По-русски: <strong>Сервис &gt; Автозамена &gt; Дополнение слов &gt; Принимать автозамену при нажатии </strong></p>
</blockquote>
<p>Полезно оставить галочку для <strong>При закрытии документа сохранять список</strong>&#8230;</p>
<h3><strong>Список регулярных выражений в О_о</p>
<p>
</strong></h3>
<p><a href="http://wiki.services.openoffice.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D1%85_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9">Полный список</a> (таблица).</p>
<p>
Следует учесть: О_о обрабатывает строки поодиночке. То есть, замену делает только внутри одно строки. Увы.</p>
<p>
MS Word в этом смысле рулит необычайно.</p>
<h3><strong>Управление списками и отступами с клавиатуры</strong></h3>
<p>Увеличить отступ от левого края</p>
<p style="padding-left:30px;">Customize &gt; Keyboard &gt; Shortcut Keys &gt; Alt+Shift+N &gt; Category = Format &gt; Function = Increase Indent &gt; Modify.</p>
<p>Уменьшить отступ от левого края</p>
<p style="padding-left:30px;">Customize &gt; Keyboard &gt; Shortcut Keys &gt; Alt+Shift+M &gt; Category = Format &gt; Function = Decrease Indent.</p>
<p>Включить/убрать нумерованый список</p>
<p style="padding-left:30px;">Customize &gt; Keyboard &gt; Shortcut Keys &gt; Alt+Shift+K &gt; Category = Numbering &gt; Function = Numbering On/Off &gt; Modify.</p>
<p>Включить/убрать ненумерованый список</p>
<p style="padding-left:30px;">Customize &gt; Keyboard &gt; Shortcut Keys &gt; Alt+Shift+L &gt; Category = Numbering &gt; Function = Bullets On/Off &gt; Modify.</p>
<h3>Как разделить текст на две (и более) колонки</h3>
<p>Применить ко всему документу: Формат &gt; Страница &gt; Колонки.</p>
<p style="padding-left:30px;">Результат: плохо. Вообще весь документ уложен в две колонки, и текст, и заголовки. А заголовки надо ставить по центру печатного листа.</p>
<p>Надо подойти к делу через разметку отдельных разделов в документе:</p>
<ol>
<li>Выделить текст, который необходимо уместить в две колонки и поместить его в отдельный раздел: Вставка &gt; Раздел (здесь его можно проименовать) &gt; Колонки.</li>
<li>Настроить нужное разделение текста на колонки.</li>
</ol>
<p>При вызове &#171;Навигатора&#187; (F5) можно проследить добавленные разделы. Внимание, они могут наслаиваться друг на друга (дочерняя структура).</p>
<h3>Как убрать отступы в нумерации</h3>
<p>При оформлении списка нумерации (да и просто буллитов) начиная с десятого пункта между буллитом и текстом появляется здоровенный отступ.</p>
<p>
<img decoding="async" class="alignnone size-full wp-image-3981" src="https://testitquickly.com/wp-content/uploads/2018/12/LibreOffice-tabs-at-nymbers.png" alt="LibreOffice - tabs at nymbers" width="436" height="360" /></p>
<ol>
<li>Выделить весь сектор списка, к которому нужно применить изменения.</li>
<li>Формат &gt; Маркеры и нумерация &gt; Положение.</li>
<li>В поле &#171;<strong>Начало отступа</strong>&#187; установить значение &#171;0,10 см&#187;.</li>
</ol>
<p>Можно также убрать отступ всего списка от края страницы. Обычно этот отступ полезен, но если надо всё ужать (например, список втиснут в две колонки), то дополнительно:</p>
<ol>
<li>в поле &#171;<strong>Выравнивание</strong>&#187; установить значение &#171;0,00 см&#187;,</li>
<li>для поля &#171;<strong>После нумерации</strong>&#187; выбрать значение &#171;Ничего&#187;.</li>
</ol>
<p>Если покажется, что &#171;всё поломалось&#187;, то на владке &#171;Положение&#187; есть кнопка &#171;Стандарт&#187;.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2008/07/21/oomazafakas/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">258</post-id>	</item>
		<item>
		<title>Черная команда</title>
		<link>https://testitquickly.com/2008/05/30/%d1%87%d0%b5%d1%80%d0%bd%d0%b0%d1%8f-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b0/</link>
					<comments>https://testitquickly.com/2008/05/30/%d1%87%d0%b5%d1%80%d0%bd%d0%b0%d1%8f-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b0/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Fri, 30 May 2008 15:03:55 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Книги]]></category>
		<category><![CDATA[Откровения]]></category>
		<category><![CDATA[Постановка мозгов]]></category>
		<category><![CDATA[Радости]]></category>
		<guid isPermaLink="false">http://testitquickly.wordpress.com/2008/05/30/%d1%87%d0%b5%d1%80%d0%bd%d0%b0%d1%8f-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b0-2/</guid>

					<description><![CDATA[Цитата из книги Демарко и Листера &#171;Человеческий фактор &#8212; успешные проекты и команды&#171;. Приводится пример понятия &#171;Кристаллизация&#187; &#8212; речь идет об эффекте увеличенной производительности, который присущ наиболее работоспособным командам разработчиков. Причина эффекта &#8212; командная работа, всеобщее понимание, признание и осуществление общих целей группы. Результат &#8212; неимоверно волшебные, не нарадуешься. Местные примеры: &#171;IQ labs&#187; в васильковскую… <span class="read-more"><a href="https://testitquickly.com/2008/05/30/%d1%87%d0%b5%d1%80%d0%bd%d0%b0%d1%8f-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b0/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Цитата из книги Демарко и Листера &#171;<span style="font-weight:bold;">Человеческий фактор &#8212; успешные проекты и команды</span>&#171;.</p>
<p>
Приводится пример понятия &#171;Кристаллизация&#187; &#8212; речь идет об эффекте увеличенной производительности, который присущ наиболее работоспособным командам разработчиков.</p>
<p>
<span id="more-151"></span>Причина эффекта &#8212; командная работа, всеобщее понимание, признание и осуществление общих целей группы. Результат &#8212; неимоверно волшебные, не нарадуешься.</p>
<p>
Местные примеры: &#171;IQ labs&#187; в васильковскую эпоху. Или газета &#171;Вечерний Кишинев&#187; в исаевскую эпоху.</p>
<blockquote>
<p>Команда, прошедшая кристаллизацию &#8212; это группа людей, столь сильно связанных (не веревками), что целое становится больше суммы составляющих его частей. Производительность этой команды выше, чем производительность тех же людей, не перешедших порог кристаллизации. И, что столь же важно, удовольствие от работы также выше, чем можно было бы ожидать, учитывая природу работы.</p>
<p>
Как только начинается кристаллизация команды, вероятность успеха очень резко возрастает. Управлять этой стихией &#8212; одно удовольствие. Управление в традиционном смысле этого слова им не нужно, и уж точно не нужны дополнительные стимулы. Они уже обладают собственным <span style="font-style:italic;">импульсом</span>.</p>
<p>
Кристаллизацию команды обычно сопровождает <span style="font-style:italic;">сильное чувство индивидуальности</span>.</p>
<p>
Участники хорошей команды испытывают <span style="font-style:italic;">ощущение элитарности</span>. Они чувствуют, что составляют нечто уникальное, что они выше всякой заурядности. Они проявляют смелость, достойную спецназа, что может отчасти раздражать людей, не входящих в группу.</p>
</blockquote>
<div style="text-align:left;">Собственно, отрывок из книги. Также отмечу то, что в примере указана команда тестировщиков.</p>
<div style="text-align:center;"><span style="font-weight:bold;">Черная команда</span></div>
</div>
<p>На заре времён (скажем так) в штате Нью-Йорк существовала компания, производившая большие синие компьютеры. Компания также выпускала программное обеспечение для этих компьютеров. Клиенты компании были весьма достойными людьми, но, говоря между нами, имели обыкновение препротивно придираться к программам с ошибками. Какое-то время компания прилагала усилия к обучению клиентов, чтобы сделать их более терпимыми к ошибкам. Но из этого ничего не получилось, поэтому пришлось проглотить пилюлю и начать избавляться от ошибок.</p>
<p>
Простой и очевидный подход &#8212; заставить программистов удалять все ошибки перед сдачей программы. Этот подход по какой-то причине тоже работал не очень хорошо. Похоже, программисты (по крайней мере, в те времена) были в целом слишком хорошего мнения о своих программах. Как они ни старались, найти все ошибки до последней не могли, поэтому часто объявляли о готовности программ, полных изъянов.</p>
<p>
Тяжело было обнаружить последнюю ошибку, но некоторые тестировщики справлялись лучше своих коллег. Компания сформировала группу из этих особо одарённых тестировщиков и предоставила ей право окончательного тестирования критических приложений перед отправкой их клиентам. Так родилась легендарная Чёрная Команда.</p>
<p>
Изначально в Чёрную Команду входили люди, проявившие себя в тестировании и превосходившие в этом качестве своих коллег. У них было больше мотивации. Они тестировали также и чужой код, поэтому были свободны от когнитивного диссонанса, сковывающего разработчика при тестировании собственных программ. В конечном итоге руководители, сформировавшие команду, ожидали хотя бы скромных улучшений качества продуктов, но не более того. А вот получили они гораздо больше.</p>
<p>
Удивительное заключалось не в том, насколько хороша была Чёрная Команда на заре своего существования, а в том, насколько она улучшилась за последующий год. Происходило что-то волшебное: в команде началось формирование индивидуальности. Эта индивидуальность находилась под влиянием оппозиционной философии тестирования, созданной участниками группы. Философия гласила, что они должны желать и ожидать недостатков в программах.</p>
<p>
Они вовсе даже не болели за разработчиков, но напротив находили наслаждение в том, чтобы подвергнуть программу (и программиста) испытаниям, которые были бы не просто тестом. Когда программист приносил программу на тестирование в Чёрную Команду, он чувствовал себя, как на аудиенции у Мина Беспощадного (персонаж комиксов, воплощение чистого зла).</p>
<p>
Поначалу просто ходили шутки, что тесты Чёрной Команды подлые и скверные и что участникам группы очень нравится, когда код работает неправильно. Затем шутки закончились. Члены команды начали культивировать образ разрушителей. Они разрушали не только ваш код, но и весь ваш день. Они делали нечеловечески несправедливые вещи, чтобы добиться сбоя: перегружали буферы, сравнивали пустые файлы, набирали возмутительные последовательности на клавиатуре. Взрослые мужчины и женщины начинали <a title="Принципы работы тестировщиков" href="http://testitquickly.wordpress.com/2007/07/16/эти-гадкие-и-противные-мужланы/">плакать</a>, когда видели ужасное поведение своих программ в руках сумасшедших врагов. Чем хуже вам приходилось, тем большее удовольствие получала группа тестирования.</p>
<p>
Чтобы усилить неприятный образ, участники команды начали носить чёрное (отсюда и название &#171;Чёрная Команда&#187;). Они взяли в привычку страшно фыркать, когда программа давала сбой. Некоторые отращивали длинные усы, которые крутили, подражая Саймону Легри (страшный работорговец из романа &#171;Хижина дяди Тома&#187;).</p>
<p>
Они собирались, чтобы придумывать ещё более ужасные тестовые уловки. Программисты начали перешёптываться о душевнобольных из Чёрной Команды.</p>
<p>
Что и говорить, компания была в восхищении. Каждый дефект, найденный командой, клиентам уже не суждено было увидеть. Команда стала настоящей удачей. Удачей в качестве подразделения тестирования, но, что более важно для нашего изложения, в качестве социальной ячейки. Люди в команде получали такое удовольствие от своей работы, что коллеги вне команды, несомненно, завидовали им. Чёрная одежда и по-детски глупое поведение были частью этого удовольствия, но происходило здесь и кое-что ещё. Химические процессы внутри группы стали самодостаточными.</p>
<p>
С течением времени участники команды время от времени покидали её, чтобы заняться другими вещами. Поскольку функция команды была весьма важна для компании, уходивших людей заменяли немедленно. И так продолжалось, пока в какой-то момент не осталось ни одного из участников первого состава. Но Чёрная Команда продолжала жить. Она пережила потерю всех основателей, но полностью сохранила свою энергию и индивидуальность.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2008/05/30/%d1%87%d0%b5%d1%80%d0%bd%d0%b0%d1%8f-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">151</post-id>	</item>
		<item>
		<title>Протокол sftp в Krusader</title>
		<link>https://testitquickly.com/2008/05/15/sftp-krusader/</link>
					<comments>https://testitquickly.com/2008/05/15/sftp-krusader/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Thu, 15 May 2008 10:31:34 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Инструменты]]></category>
		<category><![CDATA[Неприятно]]></category>
		<category><![CDATA[Озарения]]></category>
		<category><![CDATA[Krusader]]></category>
		<guid isPermaLink="false">http://testitquickly.wordpress.com/2008/05/15/%d0%9f%d1%80%d0%be%d1%82%d0%be%d0%ba%d0%be%d0%bb-sftp-%d0%b2-krusader-%d0%bf%d0%be%d0%b4-gnome-%d0%b2-ubuntu-gutsy/</guid>

					<description><![CDATA[Остро встала проблема взаимного перебрасывания документов между компьютерами, которые у меня с одной клавиатуры управляются через Terminal Server Client. Проблема: На PC1 в Krusader есть протокол sftp. А на РС2 в Krusader доступен один только ftp протокол. Так жить сложно. Чтобы открыть любой pdf на &#171;просмотрение&#187;, нужно копировать его на РС2. А если постоянно перекидывать… <span class="read-more"><a href="https://testitquickly.com/2008/05/15/sftp-krusader/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Остро встала проблема взаимного перебрасывания документов между компьютерами, которые у меня с одной клавиатуры <a href="http://testitquickly.wordpress.com/2008/05/14/%d0%9a%d0%b0%d0%ba-%d1%83%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d1%8f%d1%82%d1%8c-%d1%81-%d0%be%d0%b4%d0%bd%d0%be%d0%b9-%d0%ba%d0%bb%d0%b0%d0%b2%d0%b8%d0%b0%d1%82%d1%83%d1%80%d1%8b-%d0%b4%d0%b2%d1%83%d0%bc/">управляются</a> через Terminal Server Client.</p>
<p>
<span id="more-139"></span>Проблема:</p>
<blockquote>
<p>На PC1 в Krusader есть протокол sftp.</p>
<p>
А на РС2 в Krusader доступен один только ftp протокол.</p>
<p>
Так жить сложно. Чтобы открыть любой pdf на &#171;просмотрение&#187;, нужно копировать его на РС2. А если постоянно перекидывать файлы с РС1 на РС2, то легко запутаться, где что лежит. А уж если в файле были сделаны какие-то изменения&#8230;</p>
</blockquote>
<p>Не проблема через ssh коннектиться в консоли, но оттуда запустишь разве что MC, который нам друг, но который не любит длинные имена файлов.</p>
<p>Рецепт (искал почему-то долго, дольше пяти минут): в убунту нужно установить кдешные библиотеки для поддержки самбы и sftp в Krusader:</p>
<blockquote>
<p>sudo apt-get install kdebase-kio-plugin</p>
<p>
sudo apt-get install kdepim-kio-plugins</p>
</blockquote>
<p>Enjoy.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2008/05/15/sftp-krusader/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">139</post-id>	</item>
	</channel>
</rss>
