<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>dans</title><generator>teletype.in</generator><description><![CDATA[В разработке... 👩‍💻]]></description><image><url>https://img2.teletype.in/files/92/da/92dac5f3-7edc-466a-bf23-a811356918f1.png</url><title>dans</title><link>https://blog.da-ns.ru/</link></image><link>https://blog.da-ns.ru/?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/da-ns?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/da-ns?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Fri, 17 Apr 2026 09:51:00 GMT</pubDate><lastBuildDate>Fri, 17 Apr 2026 09:51:00 GMT</lastBuildDate><item><guid isPermaLink="true">https://blog.da-ns.ru/VPwXSQk7-tn</guid><link>https://blog.da-ns.ru/VPwXSQk7-tn?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns</link><comments>https://blog.da-ns.ru/VPwXSQk7-tn?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns#comments</comments><dc:creator>da-ns</dc:creator><title>MS Word | Заголовок и таблица всегда на одной странице</title><pubDate>Fri, 19 Dec 2025 08:33:14 GMT</pubDate><description><![CDATA[Часто в последнее время приходится работать с шаблонами MS Word для генерации документов. Одна из типовых задач: сделать, чтобы заголовки таблицы не отделялись от основного содержимого.]]></description><content:encoded><![CDATA[
  <p id="bDqE">Часто в последнее время приходится работать с шаблонами MS Word для генерации документов. Одна из типовых задач: сделать, чтобы заголовки таблицы не отделялись от основного содержимого.</p>
  <p id="hm3G">Алгоритм: </p>
  <ul id="sNZz">
    <li id="UP7E">Выделить все строки, которые будут переноситься как целый объект.</li>
  </ul>
  <section style="background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <figure id="1aVG" class="m_column">
      <img src="https://img3.teletype.in/files/67/6b/676b2990-2ece-42c8-8b61-6aecf4fd1f2b.png" width="1059" />
      <figcaption>Шаг 1. Заголовок и таблица всегда на одной странице</figcaption>
    </figure>
  </section>
  <ul id="Zw64">
    <li id="BHie">В контекстном меню выбрать &quot;Абзац&quot;, вкладка &quot;Положение на странице&quot;, установить флажки &quot;Не отрывать от следующего&quot; и &quot;Не разрывать абзац&quot;.</li>
  </ul>
  <section style="background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <figure id="Izfn" class="m_column">
      <img src="https://img3.teletype.in/files/e2/68/e2689d7b-09cf-4761-9564-2dd01c5b82f2.png" width="1092" />
      <figcaption>Шаг 2. Заголовок и таблица всегда на одной странице</figcaption>
    </figure>
  </section>
  <ul id="1Hem">
    <li id="6iLZ">Включить режим отображения скрытых символов форматирования.</li>
  </ul>
  <section style="background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <figure id="6Mz4" class="m_column">
      <img src="https://img3.teletype.in/files/2f/26/2f26e476-4324-4a7b-b5b5-ae8e7f3b5d02.png" width="1176" />
      <figcaption>Шаг 3. Заголовок и таблица всегда на одной странице</figcaption>
    </figure>
  </section>
  <ul id="tlig">
    <li id="gnhG">Убедиться, что в конце шаблона последний символ не имеет свойств присоединения к следующему за ним блоку.</li>
  </ul>
  <section style="background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <figure id="32FR" class="m_column">
      <img src="https://img3.teletype.in/files/6b/07/6b070df3-8be2-40d7-b1b4-070f8ebcb8e2.png" width="962" />
      <figcaption>Шаг 4. Заголовок и таблица всегда на одной странице</figcaption>
    </figure>
  </section>
  <p id="7q4K"><em>Если галочки &quot;Не отрывать от следующего&quot; или &quot;Не разрывать абзац&quot; не сняты у последней строки, то рядом с последним символом будет стоять точка (черный маленький квадратик). Это приведет к тому, что блок при генерации будет цепляться к следующим строкам документа и могут появится нежелательные переносы.</em></p>
  <p id="aBed">Это всё. Спасибо за внимание.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://blog.da-ns.ru/chmod-calculator</guid><link>https://blog.da-ns.ru/chmod-calculator?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns</link><comments>https://blog.da-ns.ru/chmod-calculator?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns#comments</comments><dc:creator>da-ns</dc:creator><title>Chmod Calculator</title><pubDate>Thu, 05 Jun 2025 13:24:00 GMT</pubDate><category>Полезные ссылки</category><description><![CDATA[Утилита для расчета числового или символического значения для набора разрешений файлов/папок на серверах Linux]]></description><content:encoded><![CDATA[
  <p id="lfJx">Утилита для расчета числового или символического значения для набора разрешений файлов/папок на серверах Linux:</p>
  <p id="uRMo"><a href="https://chmod-calculator.com/" target="_blank">https://chmod-calculator.com/</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://blog.da-ns.ru/504-outdated-optimize-dep</guid><link>https://blog.da-ns.ru/504-outdated-optimize-dep?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns</link><comments>https://blog.da-ns.ru/504-outdated-optimize-dep?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns#comments</comments><dc:creator>da-ns</dc:creator><title>504 (Outdated Optimize Dep) React+Vite</title><pubDate>Mon, 07 Apr 2025 09:00:03 GMT</pubDate><category>React ⚛️</category><description><![CDATA[От ошибки поможет избавиться очистка кеша...]]></description><content:encoded><![CDATA[
  <ol id="GIGP">
    <li id="FpBm">Остановить сервер.</li>
    <li id="l8TO">Удалить папку: <code>node_modules/.vite/</code></li>
    <li id="yEES">Очистить кеш пакетного менеджера: <code>npm cache clean --force</code></li>
    <li id="YW45">Переустановить зависимости и запустить сервер: <code>npm i &amp;&amp; npm run dev</code></li>
  </ol>
  <p id="kMyv">Источник: <a href="https://stackoverflow.com" target="_blank">stackoverflow.com</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://blog.da-ns.ru/easing-links</guid><link>https://blog.da-ns.ru/easing-links?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns</link><comments>https://blog.da-ns.ru/easing-links?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns#comments</comments><dc:creator>da-ns</dc:creator><title>Функция плавности / easing</title><pubDate>Sun, 11 Aug 2024 07:40:24 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/f7/ae/f7aeaed8-4cf5-4ec9-8efe-e9079362b01e.png"></media:content><category>Полезные ссылки</category><description><![CDATA[<img src="https://img3.teletype.in/files/2e/77/2e772573-bea0-44c1-9d85-8e6342079313.jpeg"></img>Функция плавности — это инструмент, который позволяет регулировать степень гладкости или резкости перехода между двумя значениями. Она используется для создания эффекта постепенного изменения, чтобы избежать резких скачков или ступенчатых переходов.]]></description><content:encoded><![CDATA[
  <p id="SJMT">Функция плавности — это инструмент, который позволяет регулировать степень гладкости или резкости перехода между двумя значениями. Она используется для создания эффекта постепенного изменения, чтобы избежать резких скачков или ступенчатых переходов.</p>
  <p id="m1Il">Самая простая функция плавности — линейная. В случае линейной функции изменение значения происходит плавно и равномерно. Но для создания качественных визуальных эффектов может пригодиться не только линейная функция плавности, поскольку в реальной жизни объекты никогда не двигаются с постоянной скоростью.</p>
  <p id="BZaW"><a href="https://easings.net/" target="_blank">https://easings.net/</a></p>
  <p id="FqAd">На этом сайте можно найти обширный список функций плавности с визуализацией их в нескольких практических вариантах использования, такие как отрисовка градиента, появление/исчезновение объекта через прозрачность, движение, изменение размера. Мне понравилось. Очень наглядно и удобно! Плюс там же есть готовый код для разработки на CSS и JS.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://blog.da-ns.ru/links</guid><link>https://blog.da-ns.ru/links?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns</link><comments>https://blog.da-ns.ru/links?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns#comments</comments><dc:creator>da-ns</dc:creator><title>JavaScript Key Codes</title><pubDate>Tue, 25 Jun 2024 11:21:26 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/6a/6d/6a6de9d8-bb75-4277-97d8-704d7032abb3.png"></media:content><category>Полезные ссылки</category><description><![CDATA[<img src="https://img4.teletype.in/files/79/22/7922959a-b374-4de0-b230-0de643e6402f.png"></img>Небольшой сервис для отображения данных о событии нажатия клавиш. Пользуюсь вместо справочника.]]></description><content:encoded><![CDATA[
  <p id="9qaU">Небольшой сервис для отображения данных о событии нажатия клавиш. Пользуюсь вместо справочника.</p>
  <p id="wOol"><a href="https://www.toptal.com/developers/keycode" target="_blank">https://www.toptal.com/developers/keycode</a></p>
  <figure id="iZfQ" class="m_column">
    <img src="https://img4.teletype.in/files/79/22/7922959a-b374-4de0-b230-0de643e6402f.png" width="1065" />
    <figcaption>JavaScript Key Codes</figcaption>
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://blog.da-ns.ru/GJL-Vm10G1h</guid><link>https://blog.da-ns.ru/GJL-Vm10G1h?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns</link><comments>https://blog.da-ns.ru/GJL-Vm10G1h?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns#comments</comments><dc:creator>da-ns</dc:creator><title>React и проигрывание аудио</title><pubDate>Wed, 12 Jun 2024 09:07:10 GMT</pubDate><category>React ⚛️</category><description><![CDATA[Проигрывание звуковых дорожек в React можно сделать с помощью готового хука use-sound. Для этого — установить пакет:]]></description><content:encoded><![CDATA[
  <p id="yERr">Проигрывание звуковых дорожек в React можно сделать с помощью готового хука <code>use-sound</code>. Для этого — установить пакет:</p>
  <pre id="yERr">npm install use-sound</pre>
  <p id="eD2N"></p>
  <p id="9X44">Выполнить импорт хука и файла с аудио-записью:</p>
  <pre id="nIlU">import useSound from &#x27;use-sound&#x27;;
import mySound from &#x27;@/../assets/sounds/sound.mp3&#x27; // assets располагается в папке resources</pre>
  <p id="WDsx"></p>
  <p id="HQF3">Использовать в коде так:</p>
  <pre id="vI5w">const MyButton = () =&gt; {
  const [playSound] = useSound(mySound);
  
  return (
    &lt;button onClick={() =&gt; playSound()}&gt;
       Play Sound
    &lt;/button&gt;
  );
};</pre>
  <p id="7r1O"></p>
  <p id="voqg">Или так:</p>
  <pre id="SF0h">const MyButton = () =&gt; {
  const [playSound] = useSound(mySound, { volume: 0.7 });
  
  const handleClick = () =&gt; {
    playSound();
    // ...
  };

  return (
    &lt;button onClick={() =&gt; handleClick()}&gt;
       Play Sound
    &lt;/button&gt;
  );
};</pre>
  <p id="gFM2"></p>
  <p id="eR0i">Подробности можно посмотреть <a href="https://www.joshwcomeau.com/react/announcing-use-sound-react-hook/" target="_blank">тут</a> или на <a href="https://github.com/joshwcomeau/use-sound" target="_blank">гитхаб</a>.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://blog.da-ns.ru/change-state-without-rerendering</guid><link>https://blog.da-ns.ru/change-state-without-rerendering?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns</link><comments>https://blog.da-ns.ru/change-state-without-rerendering?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns#comments</comments><dc:creator>da-ns</dc:creator><title>Изменение состояния без повторного рендеринга / React</title><pubDate>Thu, 21 Mar 2024 11:10:58 GMT</pubDate><category>React ⚛️</category><description><![CDATA[В разработке может возникнуть необходимость поменять состояние, но не вызывать перерисовку компонента (-ов). В этом будет полезен хук useRef...]]></description><content:encoded><![CDATA[
  <p id="Lh6L">Каждый раз, когда состояния (<code>useState</code>, <code>useReducer</code>) компонента изменяются, весь компонент рендерится заново. Это означает, что текущий и каждый дочерний, зависимый от этого состояния компонент будет повторно перерисовывать себя.<br /><br />В разработке может возникнуть необходимость поменять состояние, но не вызывать перерисовку компонента (-ов). В этом будет полезен хук <code>useRef</code>.<br /><br />Хук <code>React.useRef()</code>— это функция, которая возвращает изменяемый объект ссылки. У этого объекта есть свойство под названием <code>current</code>. Доступ к значению, сохраненному с помощью хука <code>useRef</code>, можно получить или обновить через свойство <code>current</code>. Этот объект сохраняет значение в течение всего срока службы компонента.</p>
  <pre id="16Qq">const refValue = React.useRef(&quot;Initial value&quot;); &lt;-- initializing 

refValue.current = &quot;new value&quot;; &lt;-- Assigning new value through &#x27;current&#x27; property

console.log(refValue.current);  &lt;-- Accessing values using &#x27;current&#x27; property
&gt;&gt; &quot;new value&quot; &lt;&lt;</pre>
  <p id="KObK"><br />Оба хука и <code>useState</code>, и <code>useRef</code>могут использоваться для сохранения состояния. Но обновление значений <code>useState</code>приводит к повторному рендерингу компонента, тогда как для <code>useRef</code>не происходит повторного рендеринга при обновлении значения.</p>
  <p id="vgw2"><em>Также <code>useRef</code> используется для сохранения ссылки на элементы DOM-дерева. Но это уже совсем другая тема.</em><br /><br /><a href="https://www.anshuljain.in/useref" target="_blank">Ссылка на источник.</a><br /></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://blog.da-ns.ru/yIQB3cw4g0N</guid><link>https://blog.da-ns.ru/yIQB3cw4g0N?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns</link><comments>https://blog.da-ns.ru/yIQB3cw4g0N?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns#comments</comments><dc:creator>da-ns</dc:creator><title>Не подключаются стили tailwindcss для библиотеки material-tailwind</title><pubDate>Wed, 28 Feb 2024 10:25:12 GMT</pubDate><description><![CDATA[Подключила к проекту @material-tailwind/react. Стили, которые используются внутри компонентов библиотеки после сборки отсутствуют.]]></description><content:encoded><![CDATA[
  <p id="1KEo">Подключила к проекту <code>@material-tailwind/react</code>. Стили, которые используются внутри компонентов библиотеки после сборки отсутствуют. </p>
  <p id="9eKX">Чтобы они попали в сборку в конфиге <code>tailwind.config.js</code> необходимо добавить путь до компонентов:</p>
  <pre id="2UB5" data-lang="jsx">...

export default {
    content: [
        ...
        &#x27;./node_modules/@material-tailwind/react/components/**/*.{js,ts,jsx,tsx}&#x27;,
        &#x27;./node_modules/@material-tailwind/react/theme/components/**/*.{js,ts,jsx,tsx}&#x27;    
    ],
    
    ...
};</pre>

]]></content:encoded></item><item><guid isPermaLink="true">https://blog.da-ns.ru/ngrok-https</guid><link>https://blog.da-ns.ru/ngrok-https?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns</link><comments>https://blog.da-ns.ru/ngrok-https?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns#comments</comments><dc:creator>da-ns</dc:creator><title>ngrok / Публикация локального приложения, работающего по протоколу HTTPS</title><pubDate>Fri, 22 Dec 2023 11:01:13 GMT</pubDate><description><![CDATA[Можно представить, что ngrok — это входная дверь для ваших приложений.]]></description><content:encoded><![CDATA[
  <h3 id="F5F7">Что такое ngrok?</h3>
  <blockquote id="vOfI"><code>ngrok</code> — это глобально распределенный обратный прокси-сервер, который защищает и ускоряет ваши приложения и сетевые службы, независимо от того, где вы их запускаете. Можно представить, что <code>ngrok</code> — это входная дверь для ваших приложений.<br /><br /><code>ngrok</code> не зависит от среды, поскольку он может доставлять трафик службам, работающим где угодно, без каких-либо изменений в вашей сетевой среде. Запустите свое приложение на AWS, Azure, Heroku, локальном кластере Kubernetes, Raspberry Pi и даже на своем ноутбуке. С <code>ngrok</code> все работает так же.<br /><br /><code>ngrok</code> — это унифицированная входная платформа, поскольку она объединяет  в одно все компоненты для доставки трафика от ваших сервисов в Интернет. <code>ngrok</code> объединяет ваш обратный прокси-сервер, балансировщик нагрузки, шлюз API, межсетевой экран, сеть доставки, защиту от DDoS и многое другое.</blockquote>
  <p id="mBhm" data-align="right"><em>Источник: <a href="https://ngrok.com/docs/what-is-ngrok/" target="_blank">дока по ngrok</a>.</em></p>
  <p id="klsV">Команда для создания туннеля и публикации приложения, доступного по протоколу HTTPS: </p>
  <p id="ztVB"><code>ngrok http <a href="http://localhost:8000" target="_blank">http://localhost:8000</a> --scheme=https </code></p>
  <p id="3x4V">После успешного запуска в консоли появится информация о зарегистрированном ресурсе:</p>
  <figure id="dNws" class="m_column">
    <img src="https://img3.teletype.in/files/a8/f1/a8f1217d-1731-4dda-bec9-5199b0fc4a43.png" width="895" />
  </figure>
  <p id="jE6U">В строке <code>Forwarding</code> есть адрес, по которому приложение доступно в Интернете: <code>https://6c8d-178-64-170-208.ngrok-free.app</code> При завершении сеанса <code>Ctrl+C</code> туннель будет удален и приложение снова станет недоступно.</p>
  <p id="Mcz1"><br />Разработчикам это может пригодится, например, для тестирования и отладки подключения платежных систем к проектам.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://blog.da-ns.ru/phpp-ssl-cert-error</guid><link>https://blog.da-ns.ru/phpp-ssl-cert-error?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns</link><comments>https://blog.da-ns.ru/phpp-ssl-cert-error?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=da-ns#comments</comments><dc:creator>da-ns</dc:creator><title>Could not verify SSL certificate</title><pubDate>Tue, 19 Dec 2023 08:34:34 GMT</pubDate><description><![CDATA[Could not verify SSL certificate. (Network error [errno 60]: SSL certificate problem: self-signed certificate in certificate chain)]]></description><content:encoded><![CDATA[
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="LQn5">Could not verify SSL certificate. (Network error [errno 60]: SSL certificate problem: self-signed certificate in certificate chain)</p>
  </section>
  <p id="eD17">Ошибка происходит, если сертификаты SSL не установлены в системе должным образом.</p>
  <p id="iBgA">Можно решить эту проблему следующим образом:</p>
  <ol id="9M1W">
    <li id="MPpC">Загрузить файл с обновленным списком сертификатов по ссылке:<br /><a href="https://curl.haxx.se/ca/cacert.pem" target="_blank">https://curl.haxx.se/ca/cacert.pem</a></li>
    <li id="BNaM">Переместить загруженный файл <code>cacert.pem</code> в локальное безопасное место.</li>
    <li id="OPGC">Обновить файл <code>php.ini:</code> добавить или обновить путь до сертификата:<br /><code>openssl.cafile=C:/dev/ssl/cacert.pem</code></li>
    <li id="BuZJ">Перезапустить сервер.</li>
  </ol>

]]></content:encoded></item></channel></rss>