<?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>ZCODER</title><generator>teletype.in</generator><description><![CDATA[ZCODER]]></description><image><url>https://img4.teletype.in/files/79/5a/795a9fb9-f45b-4c16-a6a6-301869afe552.png</url><title>ZCODER</title><link>https://zcoder.ru/</link></image><link>https://zcoder.ru/?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zcoder</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/zcoder?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/zcoder?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Fri, 01 May 2026 11:11:54 GMT</pubDate><lastBuildDate>Fri, 01 May 2026 11:11:54 GMT</lastBuildDate><item><guid isPermaLink="true">https://zcoder.ru/aijs01</guid><link>https://zcoder.ru/aijs01?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zcoder</link><comments>https://zcoder.ru/aijs01?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zcoder#comments</comments><dc:creator>zcoder</dc:creator><title>Пример реализации ИИ на JS</title><pubDate>Wed, 09 Oct 2024 13:52:56 GMT</pubDate><description><![CDATA[Хотя использование внешних библиотек может упростить задачу написания кода для машинного обучения, я могу предложить вам пример, который использует только стандартные возможности языка JavaScript без использования внешних библиотек. Этот пример реализует простую нейронную сеть с одним скрытым слоем и функцией активации ReLU.]]></description><content:encoded><![CDATA[
  <p id="MeVG">Хотя использование внешних библиотек может упростить задачу написания кода для машинного обучения, я могу предложить вам пример, который использует только стандартные возможности языка JavaScript без использования внешних библиотек. Этот пример реализует простую нейронную сеть с одним скрытым слоем и функцией активации ReLU.</p>
  <h3 id="sTVn">Подготовка данных</h3>
  <p id="SngX">Для начала создадим некоторые простые обучающие данные, которые будут представлять собой линейную функцию с добавлением некоторого шума.</p>
  <p id="Gxy1"></p>
  <pre id="jKzC" data-lang="javascript">const NUM_TRAINING_POINTS = 100;
const TRAINING_DATA = [];</pre>
  <pre id="4ThH" data-lang="javascript">
for (let i = 0; i &lt; NUM_TRAINING_POINTS; ++i) {
  const x = i / NUM_TRAINING_POINTS;
  const y = x + Math.random() * 0.2 - 0.1; // добавляем шум от -0.1 до +0.1
  TRAINING_DATA.push([x, y]);
}

console.log(&quot;Training Data: &quot;, TRAINING_DATA);</pre>
  <h3 id="h65m">Реализация функции активации ReLU</h3>
  <p id="JeXh">Реализуем функцию активации ReLU, которая возвращает максимальное значение между нулём и переданным ей аргументом.</p>
  <pre id="dlRW" data-lang="javascript">function relu(x) {
  return Math.max(0, x);
}</pre>
  <h3 id="Qpv8">Архитектура нейронной сети</h3>
  <p id="ZxSg">Создадим архитектуру нейронной сети с одним скрытым слоем. У нас есть входные данные, которые представляют собой вектор [x], промежуточный слой с весами <code>w1</code>, который преобразует вход в скрытое состояние, и выходной слой с весом <code>w2</code>, который преобразует скрытое состояние в результат.</p>
  <pre id="8fs3" data-lang="javascript">class NeuralNetwork {
  constructor(nInputs, nHiddenNodes, nOutputs) {
    this.nInputs = nInputs;
    this.nHiddenNodes = nHiddenNodes;
    this.nOutputs = nOutputs;

    this.initializeWeights();
  }

  initializeWeights() {
    this.weights1 = Array.from({ length: this.nHiddenNodes }, () =&gt; Math.random());
    this.weights2 = Array.from({ length: this.nOutputs }, () =&gt; Math.random());
  }

  predict(input) {
    const hiddenState = this.weights1.map((weight, index) =&gt; weight * input[index]).reduce((sum, val) =&gt; sum + relu(val), 0);
    const output = this.weights2.map((weight, index) =&gt; weight * hiddenState).reduce((sum, val) =&gt; sum + val, 0);
    return output;
  }

  train(trainingData, numEpochs, learningRate) {
    for (let epoch = 0; epoch &lt; numEpochs; ++epoch) {
      trainingData.forEach(([input, desiredOutput]) =&gt; {
        const predictedOutput = this.predict(input);
        const error = desiredOutput - predictedOutput;
        this.updateWeights(input, error, learningRate);
      });
    }
  }

  updateWeights(input, error, learningRate) {
    const hiddenState = this.weights1.map((weight, index) =&gt; weight * input[index]).reduce((sum, val) =&gt; sum + relu(val), 0);
    const dOutputErrorWrtHidden = this.weights2.map((weight, index) =&gt; weight * error).reduce((sum, val) =&gt; sum + val, 0);

    this.weights1 = this.weights1.map((weight, index) =&gt; weight + learningRate * (error * input[index] * (hiddenState &gt; 0 ? 1 : 0)));
    this.weights2 = this.weights2.map((weight, index) =&gt; weight + learningRate * dOutputErrorWrtHidden * hiddenState);
  }
}</pre>
  <h3 id="9SXC">Тренировка модели</h3>
  <p id="X8b3">Запустим процесс тренировки модели на наших обучающих данных.</p>
  <pre id="AA3h" data-lang="javascript">const NETWORK = new NeuralNetwork(1, 10, 1);
NETWORK.train(TRAINING_DATA, 1000, 0.01);</pre>
  <h3 id="cJ3x">Оценка модели</h3>
  <p id="lQsJ">Теперь проверим модель на тестовых данных, чтобы увидеть её производительность.</p>
  <pre id="KNSX" data-lang="javascript">const TEST_DATA = [];

for (let i = 0; i &lt; 10; ++i) {
  const x = i / 10;
  const y = x + Math.random() * 0.2 - 0.1;
  TEST_DATA.push([x, y]);
}

TEST_DATA.forEach(([input, expected]) =&gt; {
  const actual = NETWORK.predict(input);
  console.log(&#x60;Actual Output: ${actual}, Expected Output: ${expected}&#x60;);
});</pre>
  <p id="v8oe">Этот код представляет собой базовую реализацию простой нейронной сети с функцией активации ReLU. Она позволяет обучать модель на данных и оценивать её результаты.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://zcoder.ru/gitfaq</guid><link>https://zcoder.ru/gitfaq?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zcoder</link><comments>https://zcoder.ru/gitfaq?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zcoder#comments</comments><dc:creator>zcoder</dc:creator><title>GIT FAQ</title><pubDate>Tue, 08 Oct 2024 06:29:21 GMT</pubDate><description><![CDATA[Как сохранить пароль в терминале?]]></description><content:encoded><![CDATA[
  <p id="yry9">Как сохранить пароль в терминале?</p>
  <pre id="bmfL">git config --global credential.helper store
Потом
git pull</pre>

]]></content:encoded></item><item><guid isPermaLink="true">https://zcoder.ru/localhost_https_vite</guid><link>https://zcoder.ru/localhost_https_vite?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zcoder</link><comments>https://zcoder.ru/localhost_https_vite?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zcoder#comments</comments><dc:creator>zcoder</dc:creator><title>LOCALHOST+HTTPS+VITE</title><pubDate>Sat, 05 Oct 2024 08:58:56 GMT</pubDate><description><![CDATA[1.Установить vite-plugin-mkcert пакет.]]></description><content:encoded><![CDATA[
  <h2 id="w1oR"><strong>Шаг-1</strong></h2>
  <p id="0WKB">1.Установить <a href="https://www.npmjs.com/package/vite-plugin-mkcert" target="_blank">vite-plugin-mkcert</a> пакет.</p>
  <p id="5T1p">npm i vite-plugin-mkcert -D</p>
  <h2 id="bo8g"><strong>Шаг-2</strong></h2>
  <ol id="z2gM">
    <li id="Pflq">Изменить файл <code>vite.config.js</code></li>
  </ol>
  <pre id="D13I">

import { defineConfig } from &#x27;vite&#x27;
import react from &#x27;@vitejs/plugin-react&#x27;
import mkcert from &#x27;vite-plugin-mkcert&#x27;

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react(),mkcert()],
  server:{
    port:3000,
    https: true
  }

})


</pre>
  <p id="Lz4j">и запустить через <code>npm run dev</code></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://zcoder.ru/z7KUS4U5K2s</guid><link>https://zcoder.ru/z7KUS4U5K2s?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zcoder</link><comments>https://zcoder.ru/z7KUS4U5K2s?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zcoder#comments</comments><dc:creator>zcoder</dc:creator><title>Генерация тестовых BTC в ноде</title><pubDate>Fri, 15 Dec 2023 21:29:24 GMT</pubDate><description><![CDATA[bitcoin-cli -regtest generatetoaddress 101 $(bitcoin-cli -regtest getnewaddress)]]></description><content:encoded><![CDATA[
  <p id="p57U"><strong>bitcoin-cli -regtest generatetoaddress 101 $(bitcoin-cli -regtest getnewaddress)</strong></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://zcoder.ru/7mjyPnToR6W</guid><link>https://zcoder.ru/7mjyPnToR6W?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zcoder</link><comments>https://zcoder.ru/7mjyPnToR6W?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zcoder#comments</comments><dc:creator>zcoder</dc:creator><title>Получение уникальных случайных чисел</title><pubDate>Fri, 15 Dec 2023 11:11:27 GMT</pubDate><category>algorithms</category><description><![CDATA[Формулировка теоремы:
Если p — простое число, a — целое число, не делящееся на p, то a^(p — 1) = 1 (mod p).]]></description><content:encoded><![CDATA[
  <p id="gtaR">Формулировка теоремы:<br />Если p — простое число, a — целое число, не делящееся на p, то a^(p — 1) = 1 (mod p). </p>
  <p id="oQzj">Доказательство:</p>
  <section style="background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="PNOz"><em><strong>Каждое из p — 1 чисел a, 2a, . . ., (p-1)a даёт при делении на p ненулевой остаток: </strong></em></p>
    <p id="AYwL"><em><strong>a = k_1*p + r1, <br />2a = k_2*p + r2, <br />. . . . . . . . . . . . . . . <br />(p — 1)a = k_{p-1}*p + r_{p — 1}</strong></em></p>
    <p id="cC0n"></p>
    <p id="vJRx"><em><strong>Если число различных встречающихся здесь остатков меньше p — 1, то среди них найдутся по крайней мере два одинаковых. Но это невозможно, так как при r_n = r_m число (n-m)a = (k_n-k_m)p делится на p, что противоречиво, ибо |n-m| &lt; p и a взаимно просто с p. Значит, все остатки r_1, . . . , r_{p — 1} между собой различны и образуют перестановку чисел 1, 2, . . . , p — 1. Перемножая все предыдущие равенства, получаем <br /></strong></em></p>
    <p id="aBZ2"><em><strong>(p-1)! * a^(p — 1) = N·p + r_1*r_2*...*r_{p — 1} = N*p + (p-1)!, </strong></em></p>
    <p id="LQZR"></p>
    <p id="uXSo"><em><strong>где N — некоторое целое число. Следовательно, (p-1)! * [a^(p-1) — 1] делится на p, а тогда и a^(p — 1) — 1 делится на p, поскольку (p-1)! не кратно p. Теорема доказана. </strong></em><br /></p>
  </section>
  <p id="jYxF">Таким образом, все-таки можно реализовать простой алгоритм генерации кодов не запоминая списка предыдущих кодов, а помня только номер последнего сгенеренного кода.<br /></p>
  <p id="rcw0">Вот тогда будет работающий алгоритм:</p>
  <p id="AA72">• берем большое десятизначное простое число. на наше счастье это будет 9999999997.<br />• берем любое число &lt; 9999999997. К примеру 5678901234 — тоже десятизначное, чтобы в примере получить сразу приличные коды.<br />• начинаем генерацию:</p>
  <p id="XsHG"><br />1: 1 * 5678901234 = 5678901234 mod 9999999997<br />2: 2 * 5678901234 = 1357802471 mod 9999999997<br />3: 3 * 5678901234 = 7036703705 mod 9999999997<br />4: 4 * 5678901234 = 2715604942 mod 9999999997<br />5: 5 * 5678901234 = 8394506176 mod 9999999997<br />6: 6 * 5678901234 = 4073407413 mod 9999999997<br />7: 7 * 5678901234 = 9752308647 mod 9999999997<br />8: 8 * 5678901234 = 5431209884 mod 9999999997<br />9: 9 * 5678901234 = 1110111121 mod 9999999997<br />10: 10 * 5678901234 = 6789012355 mod 9999999997<br />11: 11 * 5678901234 = 2467913592 mod 9999999997<br />12: 12 * 5678901234 = 8146814826 mod 9999999997<br />13: 13 * 5678901234 = 3825716063 mod 9999999997<br />14: 14 * 5678901234 = 9504617297 mod 9999999997<br />...</p>
  <p id="w0rC">Итак, будут получаться большие числа. Последнее сгенеренное большое число будет равно (p-1)*a = (9999999997 — 1) * 5678901234 = 56789012317284395064 — 20 цифр, что влезает в UInt64.</p>
  <p id="zOKT">Ничего не надо помнить, ничего не надо искать. И главное — есть гарантия от ошибки, поскольку уникальность строго доказана.<br /></p>
  <p id="heAO">Конечно, у этого алгоритма есть недостаток — при помощи него никогда не будут получены коды 0000000000, 9999999997, 9999999998 и 9999999999.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://zcoder.ru/_FxmWBAs_Fj</guid><link>https://zcoder.ru/_FxmWBAs_Fj?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zcoder</link><comments>https://zcoder.ru/_FxmWBAs_Fj?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zcoder#comments</comments><dc:creator>zcoder</dc:creator><title>Selenium+nodejs быстрый старт</title><pubDate>Wed, 25 Oct 2023 19:16:50 GMT</pubDate><category>nodejs</category><description><![CDATA[Для парсинга сайта с использованием библиотеки Selenium в Node.js, вам потребуется установить несколько зависимостей и настроить среду. Вот как вы можете это сделать:]]></description><content:encoded><![CDATA[
  <p id="77qB">Для парсинга сайта с использованием библиотеки Selenium в Node.js, вам потребуется установить несколько зависимостей и настроить среду. Вот как вы можете это сделать:</p>
  <p id="QyGW">1. Установите Node.js: Убедитесь, что у вас установлен Node.js. Если нет, вы можете загрузить его с официального сайта: <a href="https://nodejs.org/" target="_blank">https://nodejs.org/</a></p>
  <p id="Yz5M">2. Установите Selenium WebDriver: Вы можете установить Selenium WebDriver с помощью npm, выполнив следующую команду:</p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="kzf0">npm install selenium-webdriver</p>
  </section>
  <p id="kXE5">3. Установите веб-драйвер браузера: Вам также понадобится веб-драйвер для браузера, который вы хотите использовать (например, Chrome или Firefox). Загрузите соответствующий веб-драйвер и укажите путь к нему.</p>
  <p id="YorD">4. Создайте скрипт для парсинга сайта:Вот пример скрипта, который использует Selenium для открытия веб-страницы и извлечения данных:</p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="lK0X">const { Builder, By, Key, until } = require(&#x27;selenium-webdriver&#x27;);<br />const webdriver = require(&#x27;selenium-webdriver&#x27;);</p>
    <p id="ENEy">// Указываете путь к веб-драйверу (например, для Chrome)<br />const driver = new Builder()<br />  .forBrowser(&#x27;chrome&#x27;)<br />  .build();</p>
    <p id="hp6Z">async function parseWebsite() {<br />  try {<br />    // Открываем веб-страницу<br />    await driver.get(&#x27;https://www.example.com&#x27;);</p>
    <p id="HTNf">    // Ищем элемент на странице<br />    const element = await driver.findElement(By.css(&#x27;#yourElementSelector&#x27;));</p>
    <p id="qe82">    // Извлекаем текст из элемента<br />    const text = await element.getText();</p>
    <p id="wa5X">    console.log(&#x27;Извлеченный текст:&#x27;, text);<br />  } catch (error) {<br />    console.error(&#x27;Произошла ошибка:&#x27;, error);<br />  } finally {<br />    // Закрываем браузер после завершения<br />    driver.quit();<br />  }<br />}</p>
    <p id="6yvy">// Вызываем функцию для парсинга<br />parseWebsite();<br /></p>
  </section>
  <p id="Vm5j">5. Замените <code>&#x27;https://www.example.com&#x27;</code> на URL сайта, который вы хотите спарсить, и <code>&#x27;yourElementSelector&#x27;</code> на селектор элемента, который вы хотите извлечь.</p>
  <p id="1cLS">6. Запустите скрипт: Выполните скрипт, используя Node.js:</p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="vo8P">node ваш_скрипт.js</p>
  </section>
  <p id="qyFR">Этот пример демонстрирует основы использования Selenium для парсинга веб-страницы. Вы можете расширить его для выполнения более сложных задач, таких как навигация по нескольким страницам и сбор данных.</p>
  <p id="7TX6"></p>
  <p id="hQQX"></p>
  <p id="60P6"></p>
  <figure id="2U5E" class="m_original">
    <img src="https://img1.teletype.in/files/07/25/0725faaa-8efa-42e1-9b82-2d714f013e63.gif" width="498" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://zcoder.ru/yP_a8ipoaqT</guid><link>https://zcoder.ru/yP_a8ipoaqT?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zcoder</link><comments>https://zcoder.ru/yP_a8ipoaqT?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zcoder#comments</comments><dc:creator>zcoder</dc:creator><title>Начало</title><pubDate>Wed, 25 Oct 2023 13:18:46 GMT</pubDate><description><![CDATA[Всем привет!]]></description><content:encoded><![CDATA[
  <p id="yJZg">Всем привет! </p>
  <p id="hKHG">Это мой первый (очередной) мини блог. Цель этого блога, задокументировать и сохранить всякие интересные находки в сфере ИТ, какие то разработки и так далее. </p>
  <p id="ifkv">Почему такое имя сайта? </p>
  <p id="0yYR">Всё пошло от того, что основная моя деятельность была (и пока есть) это SAP разработка, где используется встроенный язык ABAP. Все кастомные объекты в этой системе принято начинать на букву Z или Y. Отсюда и название.</p>
  <p id="KnyO"></p>
  <figure id="ppdG" class="m_original">
    <img src="https://img4.teletype.in/files/7a/3a/7a3a2a8b-e667-470f-9f31-c6913f0f96bb.gif" width="350" />
  </figure>
  <p id="Kx71"></p>
  <p id="qg6q">Шло время и мне стали интересны другие технологии, такие как JS во всём его проявлении (react, nodejs...), devops, blockchain и другие. </p>
  <figure id="7TOd" class="m_original">
    <img src="https://img3.teletype.in/files/aa/30/aa300f0d-55ce-44b5-9a6a-42068e6e54d5.gif" width="300" />
  </figure>
  <p id="83he">Дак вот, о чём это я, суть этого блога, это как блокнот. Помню раньше в начале 2000-х, когда работал сначала админом, потом программистом на дельфи у меня были всегда под рукой блокноты, куда я записывал интересную информацию.</p>
  <p id="OP0a"></p>
  <figure id="L1Rb" class="m_original">
    <img src="https://img1.teletype.in/files/86/05/8605e00a-9386-4e38-92a1-dd19c1166004.gif" width="498" />
  </figure>
  <p id="Eqs6"></p>
  <p id="IG8W">В общем вот так. </p>

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