• Как запретить изменения в настройках роутера или как сделать чтоб меня не отключили от оного?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Пусть вам настроят приоритеты так, чтобы вы видели, а пароль - разделят пополам и отдадут вам: каждому по-половине.
    И конец проблеме.
    Ответ написан
    2 комментария
  • Можно ли таким образом связать два хоста, находящиеся за NAT напрямую?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Читайте тут
    2.gif
    Symmetric NAT. До недавнего времени это была наиболее распространённая реализация. Его характерная особенность – в таблице NAT маппинг адреса IL на адрес IG жёстко привязан к адресу OG, то есть к адресу назначения, который был указан в исходящем пакете, инициировавшем этот маппинг. При указанной реализации NAT в нашем примере хост 192.168.0.141 получит оттранслированные входящие UDP-пакеты только от хоста 1.2.3.4 и строго с портом источника 53 и портом назначения 1053 – ни от кого более. Пакеты от других хостов, даже если указанные в пакете адрес назначения и порт назначения присутствуют в таблице NAT, будут уничтожаться маршрутизатором. Это наиболее параноидальная реализация NAT, обеспечивающая более высокую безопасность для хостов локальной сети, но в некоторых случаях сильно усложняющая жизнь системных администраторов. Да и пользователей тоже.

    Full Cone NAT. Эта реализация NAT – полная противоположность предыдущей. При Full Cone NAT входящие пакеты от любого внешнего хоста будут оттранслированы и переправлены соответствующему хосту в локальной сети, если в таблице NAT присутствует соответствующая запись. Более того, номер порта источника в этом случае тоже не имеет значения – он может быть и 53, и 54, и вообще каким угодно. Например, если некое приложение, запущенное на компьютере в локальной сети, инициировало получение пакетов UDP от внешнего хоста 1.2.3.4 на локальный порт 4444, то пакеты UDP для этого приложения смогут слать также и 1.2.3.5, и 1.2.3.6, и вообще все до тех пор, пока запись в таблице NAT не будет по какой-либо причине удалена. Ещё раз: в этой реализации NAT во входящих пакетах проверяется только транспортный протокол, адрес назначения и порт назначения, адрес и порт источника значения не имеют.

    Address Restricted Cone NAT (он же Restricted NAT). Эта реализация занимает промежуточное положение между Symmetric и Full Cone реализациями NAT – маршрутизатор будет транслировать входящие пакеты только с определенного адреса источника (в нашем случае 1.2.3.4), но номер порта источника при этом может быть любым.

    Port Restricted Cone NAT (или Port Restricted NAT). То же, что и Address Restricted Cone NAT, но в этом случае маршрутизатор обращает внимание на соответствие номера порта источника и не обращает внимания на адрес источника. В нашем примере маршрутизатор будет транслировать входящие пакеты с любым адресом источника, но порт источника при этом обязан быть 53, в противном случае пакет будет уничтожен маршрутизатором.
    Ответ написан
  • Нужен ли диплом программисту?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Раньше диплом "говорил" всем, кто его просил показать: "он хорошо учился и у него есть знания для работы по направлению...".

    Сейчас - стало так: "он хорошо учился и у него были знания по направлению..., но это не точно, они могут быть неактуальны и нужно всё снова проверять".

    Если нет диплома, работодатели чаще оценивают так: "Не критично, т.к. он мог получить нужные для необходимой нам работы знания через интернет, надо просто их проверить..."

    Остальное - сейчас абсолютно непредсказуемо и вероятность отказа соискателя без диплома напрямую зависит от эволюции той или иной структуры.

    Лучше - чтобы какой-никакой, но он был.
    Ответ написан
    Комментировать
  • Что можно использовать для хранения данных на компьютере с быстрым доступом?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    На файлах - можно, но нужно знать, как правильно работать с конкурентными/параллельными потоками чтения и записи через файловый дескриптор.
    (думаю, что тут можно разобраться)
    Далее - про логику работы самой базы.

    Алгоритм для файловой БД:
    Отсортируйте список перед добавлением так, чтобы самые короткие уникальные сочетания символов - были в самом верху, а длиннее - чуть ниже.

    В самом низу списка - максимально повторяющиеся сочетания по одному символу, затем 2-м и т.д., и в конце - по подряд идущим сочетаниям повторяющихся символов.

    Создайте биграммные-триграммные кластеры на повторных сочетаниях.

    При проверке на дубликат - спускаетесь вглубь по кластерному "дереву" (это и есть индексная карта ваших данных), используя файловое смещение узлов "дерева" (от узла к узлу) и получаете мгновенно вердикт: есть/нет проверяемое сочетание символов (например, уникальное слово или хеш-строка) в базе.
    Ответ написан
    Комментировать
  • Не проходит fetch запрос, проблема с CORS, как решить?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Контент-тайп: plain/text
    Ответ написан
    Комментировать
  • Как обычно хранят данные зарегистрированных пользователей?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Всего два типа объектов уровня:
    Юзеры/Сервисы и Права (для них)

    Сервис (это сервис-пользователь; внутри системы) знает юзера (пользователя сервиса) только по id, если не разрешён явный доступ для этого сервиса к данным юзера через права сервиса.
    Верхний уровень - управляет доступом к нижним.
    The end.
    Ответ написан
    4 комментария
  • Какие есть иструменты разрбаотки поведения NPC?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Вам нужно сформировать дерево триггеров по разным параметрам (расстояние до других объектов по каждому типу, возможности/способности для взаимодействия - полезность для достижения цели (личной или групповой) в процентах, цель личная, цель в группе, цель руководителя группы, цель в цепи и т.д.).
    И уже по ним - поставить нужные действия: реакции на конкретные события или их совокупность.
    После действия - снова проверка триггеров (и так - по-кругу).
    Ответ написан
    Комментировать
  • Как искусственно увеличить размер диска?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Есть ли способы заставить считать, что на диске больше места чем есть на самом деле?
    1. Подменить в реестре букву системного диска (в пути системной папки).
    2. Можно свой хук написать, который вернёт нужный размер.
    3. Вообще, нужно попробовать открыть инсталлятор архиватором.
    Ответ написан
    2 комментария
  • Как перехватывать все ошибки в приложении, если некоторые функции уже обернуты в try ... catch?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Добавить break point на catch (остальное - как обычно).
    Ответ написан
    Комментировать
  • Локальный мастер-пароль с помощью ресурсоемкой хеш-функции - безопасно ли?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Отвечу простой фразой:
    Вглядывайтесь в бесконечность так, как никто другой.
    Поймёте - создадите то, что хотите.
    Ответ написан
  • Как спарсить группу вк?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Документацию к виджетам (группы) в VK читайте.
    Ответ написан
    Комментировать
  • В чем может быть проблема. Почему не срабатывает exit?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Флаг авторизации в сессии нужно сбрасывать, когда работы проводятся.
    Прям, добавьте сброс авторизации в блок кода перед exit();

    И проверьте кеш-механизм, ради интереса (хотя, это уже не особо будет важно, если юзер станет не авторизован).
    Ответ написан
    3 комментария
  • Альтернатива Notepad++ с обновлением данных в редакторе в реальном времени?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Far - F3.
    Ответ написан
    Комментировать
  • Как реализовать поиск определенных значений из заданных в CSV?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Делается просто: на PHP без базы данных.

    И, хотя, это и не совсем правильно: не использовать БД, но работает достаточно быстро для навигации поиска по файлу вообще без индексации его содержимого (правда, с обязательной изначальной сортировкой по артикулу!).

    По шагам:
    1. Все строки позиций артикула должны быть отсортированными по возрастанию номера артикула.
    2. Нужно указать смещение в скрипте-парсере. Т.е. начинаем не с 0(или 1), а с цифры 12345, например.
    3. При поиске - сразу переходим через смещение на середину файла 1/2 (от размера файла) и читаем первую строку с артикулом. Если он меньше, переходим на смещение 3/4, иначе - на 1/4.
    Так мы находим нужную нам строку (с заданным артикулом) через половинное деление.
    4. Также, можно заранее создать индекс-таблицу: номера артикулов и смещение от начала по количеству байт. Вдобавок, для скорости, можно создать глоссарий со смещениями по конкретным данным.

    Использовать функции работы с файлами и fseek() для навигации указателя по смещениям.
    Ответ написан
    Комментировать
  • Как интересно рассказать о профессии программиста детям младшей школы?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Трюк №1: Сумма ряда
    Задача: показать подсчёт суммы ряда разными алгоритмами, сравнив их скорость.

    1. Просите их посчитать сумму цифр от 1 до 100: 1+2+...+100 и засечь время. Кто первый - пусть поднимет руку и Вы тихо подойдёте и посмотрите ответ и ход решения - без огласки верного ответа.

    2. Просите каждого сосчитать сумму следующих в ряду по порядку 4-х/5-и чисел (100/[кол-во учеников]) и засечь время. Как все будут готовы - пусть каждый встаёт по порядку и называет свою сумму. Вы записываете на доске и суммируете.

    Фиксируете время расчёта на доске по 1-му и 2-му алгоритму и резервируете поле для оставшегося 3-го - вашего.

    Затем, показываете им свой магический алгоритм на доске:
    Переворачиваете ряд и складываете первую цифру исходного и перевёрнутого рядов: 1+100=101
    Затем, умножаете на кол-во элементов в одном ряду: 101*100=10100 и делите на 2.
    10100/2=5050 и...
    Следите за реакцией!)))


    Трюк №2: Нужный цвет
    Задача: показать наглядно, как работает нейросеть на 2-х полярных и на 2-х триггерных нейронах.
    Нейросеть будет постепенно учиться распознавать нужный цвет.

    Нужно 4 непрозрачных стакана, 12 шариков красного и 12 шариков синего цвета.

    В два стакана насыпаем по 10 шариков: по 5 каждого цвета (5красных + 5синих).
    Рядом с каждым - кладём шарик с нужным цветом для обозначения входов - это будут маркеры выходных нейронов (кладём так, чтобы хорошо их видели все).
    Ещё два оставшихся, пустых стакана - ставим чуть правее и левее от предыдущих 2-х - это будут триггеры.

    Пусть кто-нибудь выйдет к столу и, не глядя в стакан, случайно будет доставать нужный шарик, который Вы будете ему показывать (это оставшиеся 2 из 24 - это ваши, для демонстрации).

    Несколько ошибок - Вы демонстрируете, что всё случайно и нейросеть не обучена.

    Затем, начинаете демонстрацию самообучения нейросети с помощью распределения сигналов выходных нейронов, используя их же маркеры.

    Достаём из двух стаканов (случайным образом) одновременно 2 шарика, смотрим:
    1. Если у них один цвет - кладём их все в пустой стакан, находящийся рядом с тем же цветом.
    2. Если разные и цвета совпадают с маркерами - кладём эти шарики обратно.
    3. Если разные и противоположные цвета - меняем шарики местами и опускаем в эти же стаканы.
    Проделываем это 3 раза.

    Передаём состояние триггера выходным нейронам - высыпаем боковые стаканы с шариками одного цвета (если они были) в стаканы с выходными нейронами. Таким образом, процент верных - значительно возрастёт.

    Снова показываем: какого цвета нужно вытащить шарик.
    Ученик, снова, согласно маркеру, берёт из стакана шарик случайным образом.
    У него это уже получается лучше: цвет совпадать стал чаще ...и все это видят.

    Повторяете обучение НС ещё 4-5 раз (это и есть эпохи эволюции).

    В итоге (в идеальном случае!), в одном стакане с красным маркером - будут только красные шарики, в синем - только синие, а в стаканах-триггерах - будет пусто.

    И, при показе вами синего шарика, ученик вытаскивает случайным образом из стакана с синим маркером всегда синий шарик и, также, с красным.

    Вот так Вы покажете, как обучаются нейросети буквально "на пальцах".
    Ответ написан
  • Ре-рендер элемента HTML на JS?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Ответ написан
    Комментировать
  • Ошибка: Cannot modify headers information - headers already sent. Почему php ругается на header и не открывает страницу?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Кодировка файла: UTF8 without BOM
    2. Уберите весь вывод до установки всех заголовков.
    Ответ написан
  • Как правильно вкатиться в разработку игр?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    C#/Unity - см. оф.уроки, изучайте C#.
    Никаких сторонних видео!
    Только ОФИЦИАЛЬНЫЕ УРОКИ!
    Ответ написан
    Комментировать
  • Распределение процента в зависимости от цены кейса и вещей в нём?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Два уравнения:
    1. Зависимость от стоимости кейса номера предмета с 30% вероятности.
    2. Циклоидное распределение предметов по вероятностям. (30% - в самой верхней точке: 90°)
    Ответ написан
  • Что лучше применить для мессенджера многопоточность или неблокирующий ввод/вывод?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Многопоточность - это не соединения, а потоки обработки каждого соединения.
    NIO - это обмен данными по сети.
    Применять надо и то, и то!
    Ответ написан
    Комментировать