Задать вопрос
  • Обьясните в чём суть инкапсуляции?

    Steel_Balls
    @Steel_Balls
    Суть инкапсуляции - защита внутренних данных класса от изменения извне.
    Допустим, ты нарушил этот принцип и сделал поля класса доступными для изменения из любой точки кода напрямую.
    Отсюда возникают очевидные проблемы с невозможностью контролировать все эти процессы - кто откуда когда и зачем пытается изменить данные внутри класса.
    При реализованной инкапсуляции у нас такой проблемы нет - все данные внутри класса под полным контролем.
    При чём здесь вообще хакеры?
    ООП, ШП, методологии разработки - это всё создано для разработчиков ПО, а не для хакеров.
    Ответ написан
    Комментировать
  • Обьясните в чём суть инкапсуляции?

    Инкапсуляция защищает не от хакеров, а от неправильного использования объектов.
    Как пример - у тебя может быть класс "Заказ" и у него может быть какой-то статус (оплачен/ждёт оплаты/отменён итд).
    При этом у тебя могут быть правила типа: уже оплаченный заказ не может стать вдруг неоплаченным, а отменённый заказ нельзя взять обратно в работу.
    Тогда логично будет сделать поле статуса приватным (не доступным для изменения извне напрямую), а менять его только через методы, где будет происходить вся валидация.
    (В некоторых языках такие правила принято описывать на уровне типов, чтобы даже валидаций никаких было делать не нужно)

    Приватные поля объекта - это его состояние.
    Методы объекта - это способы его использования.

    Если у тебя в объекте появляется поле x и методы getX / setX (или авто геттеры/сеттеры в C#), то значит, что у тебя и нет явных причин делать это поле приватным, кроме соблюдения общепринятых соглашений.
    Ответ написан
    15 комментариев
  • Компьютер самопроизвольно выключается. Почему?

    byte916
    @byte916
    Смотрите в "Просмотр событий", Журналы Windows - Система. Там смотрите по времени, когда компьютер выключился, что стало причиной выключения (можно поискать по коду события 1074).
    Еще есть "Журнал стабильности системы", можно там посмотреть
    Ответ написан
    5 комментариев
  • Что не так с дуал бутом линукс? Сделал все правильно не все-равно не работает, что же делать?

    NeiroNx
    @NeiroNx
    Программист
    Виндовый загрузчик надо перенастроить на новую конфигурацию разделов. Он просто запуститься то запустился, но раздел целевой - откуда все грузить, найти не смог.
    Ответ написан
    Комментировать
  • Создание технического задания по разработке приложения?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Технические задания создаются в любом текстовом редакторе, так как это текстовый документ, описывающий требования. Если вы хотите выдать разработчику готовый дизайн интерфейса, то обычно такое делают в фигме.
    Ответ написан
    Комментировать
  • Как можно сделать двойную спираль ДНК?

    GavriKos
    @GavriKos Куратор тега Unity
    Микропетпроджект - домашнее облако homeCloud
    Вопрос максимально непонятен, что значит "сделать"?
    Модель? В программах для 3д моделирования.
    Спрайт? В программах для 2д арта.
    Анимацию?
    Какую то математическую модель?
    Что "сделать". что в итоге это должнобыть?

    А так то открываете ассетстор например для себя - https://assetstore.unity.com/packages/3d/dna-85031
    Ответ написан
    8 комментариев
  • Монитор в 180 гц, показывает 60 герц, как поменять настройки?

    GavriKos
    @GavriKos
    Микропетпроджект - домашнее облако homeCloud
    Проверяйте чтобы кабель был с поддержкой соответствующей герцовки исходя из разрешения - https://ru.wikipedia.org/wiki/DisplayPort
    Ответ написан
    2 комментария
  • Как организовать локальные домены при разработке?

    @q2digger
    никого не трогаю, починяю примус
    >> frontend имеет адрес допустим localhost:3000
    >> api имеет адрес допустим localhost:3001
    это они СНАРУЖИ докера имеют такие адреса, а внутри они "service_name:port" , и обращаться друг к другу могут без обращения к внешним (относительно докера) сервисам, просто по именам сервисов. А если надо имена, то в файл docker-compose.yml можно написать alias-ы
    Читаем очень внимательно вот этот важный мануал - https://docs.docker.com/compose/how-tos/networking/
    Ответ написан
    Комментировать
  • Как организовать локальные домены при разработке?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Используемые практики:
    1. внутренняя зона DNS и внутренний CA для выпуска wildcard сертификатов.
    Внешняя DNS зона и Let's encrypt или купленный wildcard сертификат для нее.
    Ответ написан
    Комментировать
  • Код: 39. В чем причина и как исправить ошибку драйвера для видеокарты?

    xez
    @xez
    TL Junior Roo
    Обычно это происходит из-за смерти видеокарты.
    Покупать такое нельзя.
    Ответ написан
    Комментировать
  • /etc/network/interfaces No such file or directory Как пофиксить?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Абсолютные пути начинаются со слэша. Без него - относительные.
    Ответ написан
    Комментировать
  • Есть смылс использовать Getway в asp.net core?

    Для конечного клиента единая точка удобна.
    + инкапсуляция. Клиенту не нужно думать, что его запрос идёт в какой-то конкретный микросервис.
    + можно всякие ретраи и рейт лимиты реализовать один раз для всех мс.
    И много чего ещё

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

    Если бы пользы и удобства в API gateway не было, то его бы никто не придумал
    Ответ написан
    Комментировать
  • Есть смылс использовать Getway в asp.net core?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    главный принцип микросервисной архитектуры — отсутствие единой точки входа для всех микросервисов

    Наличие или отсутствие шлюза - это не принцип и уж тем более не главный, а шаблон, у которого есть плюсы, минусы и области применения.
    Ответ написан
    Комментировать
  • Почему busybox wget не работает, пока не запустить вручную openssl?

    @rPman
    По больше бы таких интересных вопросов.

    Задал ваш вопрос openai:o1-preview, ответ выглядит очень логичным:
    Вызвано недостаточной энтропией в генераторе случайных чисел (RNG) вашей минимальной системы.
    В системах Linux безопасные операции, такие как установление SSL/TLS-соединений, требуют случайных чисел, сгенерированных из системного пула энтропии.
    В вашей минимальной системе очень мало активности для генерации энтропии (например, нет дискового ввода-вывода, сетевой активности, пользовательского ввода), поэтому пул энтропии мал.

    Когда `wget` пытается установить HTTPS-соединение, он полагается на эту энтропию. Если ее недостаточно, библиотека SSL не может сгенерировать необходимые случайные значения, что приводит к сбоям соединения, таким как «Сброс соединения одноранговым узлом».
    ...
    Когда вы запускаете `openssl s_client`, он выполняет операции, которые помогают накапливать энтропию.

    **Как это исправить:**

    1. **Убедитесь, что `/dev/random` и `/dev/urandom` существуют:**
    - Убедитесь, что в вашей системе есть эти устройства:
    ```sh
    ls -l /dev/random /dev/urandom
    ```
    - Если их нет, создайте их:
    ```sh
    mknod -m 666 /dev/random c 1 8
    mknod -m 666 /dev/urandom c 1 9
    ```

    2. **Заполните пул энтропии при запуске:**
    - **Используйте демон сбора энтропии:**
    - Включите в свою сборку такой инструмент, как `haveged` или `rng-tools`. Эти демоны генерируют энтропию на основе таймеров или аппаратных ГСЧ.
    - Например, с `haveged`:
    - Скомпилируйте и установите `haveged` в свою систему.
    - Запустите его при запуске:
    ```sh
    haveged -w 1024
    ```
    - **Ручное заполнение энтропии (менее безопасно):**
    - Если добавление демона невозможно, вы можете вручную заполнить энтропию (обратите внимание, что это менее безопасно и не рекомендуется для производства):
    ```sh
    dd if=/dev/urandom of=/dev/random bs=1 count=512
    ```
    - Эта команда записывает случайные данные обратно в `/dev/random`, помогая заполнить пул энтропии.

    3. **Проверьте уровни энтропии:**
    - Отслеживайте доступную энтропию:
    ```sh
    cat /proc/sys/kernel/random/entropy_avail
    ```
    - Значение ниже 100 может привести к блокировке или сбою операций SSL.

    4. **Используйте аппаратный генератор случайных чисел (если доступен):**
    ...

    Посмотри, что показывает cat /proc/sys/kernel/random/entropy_avail
    Ответ написан
    3 комментария
  • Microtik и оптоволокно МТС, как запустить?

    @elderl
    Звоните в МТС и узнавайте совместим ли ваш OSNOVO с их GPON.
    Пусто
    Ответ написан
    2 комментария
  • Microtik и оптоволокно МТС, как запустить?

    @Drno
    1й порт для WAN по умолчанию
    Используйте 2й порт доя подключения
    И лучше с помощью winbox настраивать

    По оптике не подскажу

    PS ну и судя по всему Вам вообще лучше нанять специалиста, микротик это оборудование провайдерского уровня, в плане настроек
    Ответ написан
    3 комментария
  • Какой стандарт C++ изучать?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    С. Прата подходит только для самого начала. 2012й год, стандарт C++11 вполне подходит чтобы начать.
    Дальше Прата рассматривать уже незачем. В стандарт нужно вникать самостоятельно, а не через книги.

    Смысла сначала разбираться с последними стандартами особого нет. Код C++ пишется на разных стандартах даже в рамках одного проекта. Редко получается найти достаточно большой коллектив людей, которые один стандарт знают достаточно хорошо. Поэтому люди пишут каждый в своем стиле и со своим знанием.
    И в таком коде надо уметь разбираться. Между стандартами много отличий как в синтаксисе, так и в поведении одного и того же кода. Это надо очень хорошо знать.

    Для систематизации своих знаний очень важно понимать то, почему в следующем стандарте были сделаны именно такие изменения. Поэтому очень важно разбираться по порядку их выхода.
    cfront, C++2.0 и C++98 сегодня иррелевантны. C++03 неактуален из-за изменений в C++11.
    C++11 является самой базой понимания современного C++. С ним нужно разобраться буквально до самых мелочей.
    C++14 является очень важным шагом вперед и его тоже нужно изучить. Важнее всего отличия поведения кода между C++11 и С++14.
    C++17 является радикальным. Помимо прочего в нем оговорен отказ от обратной совместимости стандартов. В нем же сделано больше всего изменений, влияющих на поведение кода. Разница поведения кода до 17-го и после него под час радикальна.

    C++20 сосредоточен на метапрограммировании и времени компиляции, но и других изменений в нем тоже хватает. Отличия от C++17 и более ранних весьма существенны. Но продуктового кода на нем сейчас крайне мало и его еще пару лет можно не брать во внимание.
    C++23 и C++26 пока можно не брать, они даже на уровне трансляторов все еще плохо поддерживаются.

    Из полезного стоит больше всего внимания уделить рабочей версии стандарта: eelis.net/c++draft
    А для быстрого ориентирования очень полезна выжимка изменений в стандартах: https://github.com/AnthonyCalandra/modern-cpp-features

    И самое главное. Не думай что у тебя получится все понять сразу. Люди на этот процесс кладут десятки лет своей рабочей жизни. Тебе их не перепрыгнуть. Но бежать впереди основной серой массы слабоквалифицированных кадров у тебя получится с успехом. И спустя твои десятки лет тебя тоже будут уважать за знания и навыки.
    Ответ написан
    Комментировать
  • Почему разные кабели заряжают телефон по разному?

    anthtml
    @anthtml
    Системный администратор программист радиолюбитель
    Легко
    1) кабель перебит, но не полностью, а несколько волокон - из-за чего ток через него проходит малый и соответственно большая просадка напряжения.
    2) Разное качество кабелей - фирменные телефонные держат 2А, дешевые от всяких китайских airdots-сов хорошо если 0,5А выдержат - там беличий волос а не проводник
    3) Дефолтный стандарт USB - 5V 0.5A - все что больше, это уже fast charge и некоторые контроллеры заряда не принимают больше от неизвестных зарядок проводов. Часто в micro разъеме 5 контакт может висеть на каком резисторе и если этот резистор не правильного сопротивления или его нет, то телефон не переключится в FC
    Ответ написан
    Комментировать
  • Как мне правильно развиваться в первую очередь как хороший программист, а потом уже как backend python?

    opium
    @opium
    Просто люблю качественно работать
    Книжки читать, если нужно тестовое задание маякни
    Ответ написан
    5 комментариев
  • Как мне правильно развиваться в первую очередь как хороший программист, а потом уже как backend python?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Все обучение без практики - ничто.
    Практика без смысла - демотивирует.

    Придумай себе проект и пиши его. Можешь чисто для себя что-то придумать.
    Популярно сейчас взять движок телеграм бота и попробовать в боте реализовать интересный и полезный функционал. Постепенно усложняй, дорабатывай.
    Добавляй технологии (базы данных, авторизация, интеграция с какими-то апи, с мониторингом).
    Гит можно и без команды использовать для своих изменений, чтобы мог откатить что-либо
    Ответ написан
    1 комментарий