• Как переустановить Debian с нуля на vps, к которому ты имеешь доступ только по ssh?

    @nihi1ist
    Попробуйте так.
    Ответ написан
    Комментировать
  • Карта мира с детализацией до города и привязкой своих меток?

    @ber_enot
    Веб-разработчик, Vue.js / Node.js
    Посмотрите на библиотеки:
    Leaflet
    OpenLayers

    Источник карт можно задать самому (Яндекс.Карты, Google Maps, OSM и любые другие).
    На карту можно добавлять метки, полигоны, попапы и вообще всё, что душе угодно.

    PS. Работал с обеими библиотеками, по своему опыту рекомендую Leaflet - меньше кода и в целом понятнее.
    Ответ написан
    1 комментарий
  • Обязательно ли читать книгу по языку/технологии что бы быть тру и продвинутым кодером?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Вы не найдёте ни одного авторитетного программиста с мировой известностью, который бы утверждал, что курсы и видео-уроки лучше книг. Обычно это утверждают либо профаны, оправдывающие своё нежелание читать, либо авторы курсов, делающие деньги на лентяях и глупцах. И я лично за 18 лет в отрасли встретил множество программистов, но ни одного хорошего, выучившегося по курсам и видео-урокам.

    Видеокурс может запилить любой дурак. Чтобы написать книгу, нужно иметь авторитет достаточный для издательства. Кроме того, текст пройдёт редактуру нескольких профессионалов. Поэтому знания в книгах качественные и систематизированные. Для начинающего это очень важные качества.

    К тому же, после достижения профессионального уровня достаточного чтобы называться специалистом, вы обнаружите, что необходимые на этом уровне знания можно почерпнуть только из документации. То есть всё равно придётся читать. Много и часто.

    Наконец, постоянная практика чтения неизбежно приводит к увеличению скорости чтения. И наступает момент когда прочитать учебник будет в 10 и более раз быстрее, чем просмотреть видеокурсы по той же теме и в том же объёме.

    Кроме того, чтение развивает абстрактное мышление - основной инструмент разработчика.
    Ответ написан
    16 комментариев
  • Как защитить Websocket based сайт от DDoS атак?

    @MechanID
    Админ хостинг провайдера
    Если сильно обощать ддосы бывают двух видов -
    1 атака на канал вам просто забивают трафиком под завязку сетевой интерфейс вашего сервера и он не может общатся с клиентами, это на стороне самого сервера никак не решается - только внешние решения типа клаудфлары.
    2 атака на приложение и сопутствующий софт, заваливают медленными коннтектами вебсервер пока не заокнчится лимит, ищут тяжолые дейсвия с базой на вашем сайте(поиск например) чтобы потом кучей запросов нагрузить базу и сервис начнет тупить, и так далее. Основные приемы борьбы - знать паттерн обычного пользвателя, и настроить необходимые лимиты чуть выше чем надо обычному юзеру) в фаерволе или фронтенд проксе (например haproxy)
    Ответ написан
    Комментировать
  • Как защитить Websocket based сайт от DDoS атак?

    AlexanderYudakov
    @AlexanderYudakov
    C#, 1С, Android, TypeScript
    Чат? — Отлично. Значит, у нас задача: отделить ботов от людей и забанить ботов.

    Я действую так:

    1. Собираю в оперативке на бэкенде статистику действий клиентов в разрезе IP.

    2. После (!) обработки запроса клиента на бэкенде проверяю по статистике, не бот ли это? Использую несколько метрик и три временных среза для контроля лимитов: последние 3 секунды (здесь отлавливаются самые глупые боты), последние 10 секунд (здесь уже боты поумнее), последние 3 минуты (здесь ловятся совсем хитрые боты).

    3. Если хотя-бы по одному из сочетаний метрика/период клиент выходит за границы дозволенного, объявляю его ботом.

    4. Автоматизированно добавляю для данного IP-шника запрещающее правило на ближайшем брандмауэре. В итоге трафик на бэкенд больше не приходит.

    5. Через месяц также автоматизированно удаляю IP-шник из черного списка брандмауэра.

    В итоге обычный бот живёт у меня на сервере примерно полсекунды, успевая сделать 3...4 запроса. Потом IP уходит в бан на месяц и общается только с брандмауэром. Бэкенд сидит спокойно и ковыряет в носу.
    Ответ написан
    Комментировать
  • Как сверстать и настроить процентную шкалу (пример на фото)?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Линейный градиент.
    Два блока, один поверх другого
    https://jsfiddle.net/z350p86a/
    Ответ написан
    Комментировать
  • Какой torrent-клиент в linux позволяет смотреть фильм недокачанным?

    @Programizd
    qBittorrent
    Галочки выставил и можно смотреть
    5d6eeb4c0ebb8940325971.png
    Ответ написан
    Комментировать
  • Как получают два вида производной, на примере сигмоида?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    Производная частного равна разности произведения производной числителя на знаменатель и произведения числителя на производную знаменателя, деленной на квадрат знаменателя.

    (1/(1 + е^-х))'
    = (1' * (1 + е^-х) - 1 * (1 + е^-х)')/(1 + е^-х)^2 #по формуле производной частного
    =( 0 * (...) - 1' + (е^-х)' )/(1 + е^-х)^2 #по формуле производной суммы
    = (- e^-x * (-x)')/(1 + е^-х)^2 #по формуле производной экспоненты
    = (e^-x)/(1 + е^-х)^2

    Дальше
    f(x) = 1/(1 + е^-х)
    (e^-x)/(1 + е^-х)^2
    = (e^-x)/(1 + е^-х) * 1/(1 + е^-х)
    = (e^-x)/(1 + е^-х) * f(x)
    = (-1 + 1 + e^-x) / (1 + e^-x) * f(x)
    = (-1 + (1 + e^-x)) / (1 + e^-x) * f(x)
    = ((-1 / (1 + e^-x) + (1 + e^-x)/(1 + e^-x)) * f(x)
    = (1 - (1/(1 + e^-x))) * f(x)
    = (1 - f(x)) * f(x)

    То есть это никакой не "другой способ вычисления производной в МЛ", это просто преобразования производной этой конкретной функции.

    Подробнее изучить в учебнике по математике за 8-11 класс.
    Ответ написан
    3 комментария
  • Можно ли использовать тег br для переноса строк, и не критично ли это?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Можно.
    И даже нужно.

    Небольшой по смыслу разрыв - br, а большой - p.
    Ответ написан
    2 комментария
  • Вернуть из степени?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    echo sprintf('%f', $var);
    echo number_format($var, 6);
    Ответ написан
    Комментировать
  • Как избежать дублирования кода для горизонтально масштабируемого веб-приложения?

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

    Так сказать инвестиция в развитие.

    На протяжении года занимаюсь проектированием собственного фреймворка, есть некие достижения.
    Сразу оговорюсь, я тоже использую сторонний код.
    В частности я использую Doctrine ORM и ряд других компонентов от Symfony и других.
    Например роутинг свой, загрузка сервисов своя...

    Очень много сил потратил, а заказчик средств.
    Фреймворк уже готов.

    При разработке столкнулся с рядом проблем, как раз с дублированием кода.
    Да, эта проблема частично решена.

    Например:

    Сущности, и репозитории сущностей - это общий код для всех окружений.
    Окружений может быть сколько угодно.

    На данный момент использую два окружения
    Admin
    Api

    admin.mysite.com
    api.mysite.com
    mysite.com - например фронт вообще на NUXT

    У окружений есть общий конфиг
    Общие языковые пакеты с ленивой загрузкой

    Вот так выглядят контроллеры в своих окружениях
    5d6ae80b31c6d516616002.png

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

    Точек входа всегда ровно количеству окружений, но загрузчик приложения один
    5d6aeab1c0789688262811.png
    Код файла запуска приложения
    <?php
    
    define('ENV', basename(__DIR__));
    require '../../engine/bootstrap.php';


    В контроллере у каждого окружения могут быть дублирующие методы

    Для себя выделил неформальное определение

    Функции, модули которые решают одну и туже задачу для всех окружений, выношу в отдельную папку
    Визуально это выглядит так

    5d6aed5540883788430736.png
    Ответ написан
    1 комментарий
  • Как от позиционировать карточки?

    FreeMan94
    @FreeMan94
    Frontend developer
    Можно использовать css grid (пример), либо библиотеку, например, Masonry, если нужна поддержка старых браузеров.
    Ответ написан
    Комментировать
  • Способы расшифровки файлов игры?

    Zoominger
    @Zoominger
    System Integrator
    Сграббить во времы игры.
    Запускаете игру, ждёте музыку и включаете запись (не микрофона, а аудиопотока).
    Я бы сделал так и не заморачивался.
    Ответ написан
    Комментировать
  • Опен соурс альтернатива truecrypt?

    @kalapanga
    Так собственно наследник TrueCrypt - VeraCrypt
    Ответ написан
    Комментировать
  • Как логически организовать защиту от удаления чужих записей?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Есть такая штука - авторизация, и есть такое понятие как овнершип (владение) и ACL/RBAC. Во всех скриптах проверяется кто владелец файла, или кто может его изменять/удалять. Если у пользователя есть права на изменение/удаление объекта - скрипт отрабатывает, если нет - выдает ексепшн или иначе оповещает о неудачном завершении.
    Ответ написан
    2 комментария
  • Как избежать дублирования кода для горизонтально масштабируемого веб-приложения?

    @vism
    Как мне видется, и имено так и делал - вынести общий код в отдельный репозитарий и подключать где нужно.
    Если нужно эти данные уже как-то обработать, декорируете их уже в кокретном приложении.

    Если у вас сейчас эти приложения похожи, то не известно, что будет через несколько лет. А вынос в отдельный репозитарий даст гибкость для архитектуры.

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

    Долбится по HTTP выглядит вкусно, но там все недостатки репозитария и еще куча других.

    Update:
    Philipp , xmoonlight и я о том же пишем разными словами, насколько я понимаю. По крайней мере ответ Philipp это то, что я имею ввиду.
    Ответ написан
    Комментировать
  • Как избежать дублирования кода для горизонтально масштабируемого веб-приложения?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Немного перефразирую xmoonlight. Налицо разделение модели данных и различных ее представлений.
    Создайте общий репозитарий с моделями и через наследование сделайте сериализацию с возвращением нужных структур для админки и API.
    Для API представление реализуйте в стиле белого списка. При расширении системы будет сохраняться совместимость.
    Работу с данными реализуйте через общий сервисный слой, в котором будет жить бизнес-логика.
    В таком случае бизнес-процессы будут реализованы вне зависимости от интерфейсов, а значит меньше багов и т.д.
    Ответ написан
    Комментировать