• Что такое интерфейс и каким образом он представляет набор операций верхнему уровню?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Самое простое понятие интерфейса - сетевая розетка и штепсель (или вилка). К каждой розетке подходит свой тип вилки, например в разных странах разные стандарты.
    И вот линия передачи передает некую информацию (пусть это будет напряжение 220V), и чтобы подключиться к этой информации нужен интерфейс с одной и другой стороны (коннекторы или вилка-розетка). Тогда набором операций будет "включить вилку в розетку", и "выключить".
    Если это все перевести на программный уровень, то в понятие интерфейса может добавиться "определить тип розетки", "подать питание", "сигнализировать приемник и передатчик", "зарезервировать нагрузку, полосу пропускания" и т.д.
    Таким образом набор операций в виде "интерфеса" определяет те операции, который верхний уровень может делать с нижним, не заботясь о реализации нижнего уровня. Это как включить вилку в розетку, а уж как устроена сама передача по проводам на нижнем уровне, нас не интересует.
    Ответ написан
    Комментировать
  • Что такое интерфейс и каким образом он представляет набор операций верхнему уровню?

    takezi
    @takezi
    Intelligent people are full of doubts.
    Протокол - набор правил по которым происходят действия и передача информации внутри одного уровня.
    Интерфейс - тот же протокол, но для общения между уровнями. Как именно это происходит - на пальцах объяснить не получится, но если сложности вас не пугают, начните с RFC-1122.
    Ответ написан
    Комментировать
  • Зачем/Для чего нужен данный код?

    yudinikita
    @yudinikita
    Инженер-программист из России
    Сейчас постараюсь объяснить своими словами, а ниже прикреплю более полную и точную информацию.

    0. age - приватная переменная, которая доступна только в пределах этого класса.

    1. GetAge() - публичная (открытая для всех классов) функция, которая возвращает значение приватной (скрытой от других классов) переменной. Часто называют геттер, от слова Get.

    2. SetAge() - публичная функция, которая устанавливает значение приватной переменной. Называется сеттер, от слова Set.

    Для чего это нужно?
    В первую очередь, для безопасности, а также:
    - соблюдение одного из основных принципов ООП (на котором и построен C#) - инкапсуляция.
    - для того, чтобы нельзя было напрямую изменять переменную из других классов.
    - для того, чтобы задавать дополнительные условия.
    Например, в SetAge() можно написать условие, при котором возраст можно указать только в пределах от 0 до 100, это позволит избежать множества ошибок.

    Также в C# существует более удобный синтаксис:
    public int Age { get; set; }
    Это если нужно просто принимать или устанавливать значение, также set или get можно вообще не писать, если он не нужен. А для более сложной логики можно написать так:
    private int _age;
    public int Age
    {
        get
        {
            return _age;
        {
        set
        {
            if(value > 0) _age = value;
        }
    }


    Статья на docs.microsoft:
    https://docs.microsoft.com/ru-ru/dotnet/csharp/pro...

    Статья про инкапсуляцию и для чего нужны get/set:
    https://metanit.com/sharp/tutorial/3.4.php
    Ответ написан
    Комментировать
  • Зачем/Для чего нужен данный код?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Это геттеры и сеттеры. То есть функции доступа к свойству.

    Зачем? Попробую объяснить простым языком. Большие программы сложно полностью загрузить в мозг отдельного человека и представлять всю структуру целиком со всеми нюансами одновременно. Поэтому принято делить программу на части. Вынос кода в отдельную функцию - один из простых способов. В ООП к этой проблеме подходят более основательно. Класс как явление - тому пример.

    Класс делит программу как минимум на 2 части - то, что внутри класса, и то, что снаружи класса. Считается как бы, что класс пишет один человек, а пользуется им другой человек. Но это может быть и один единственный человек, всё равно так проще, потому что человек сначала пишет класс, тщательно всё там кодит и тестирует, а потом напрочь ЗАБЫВАЕТ, как он устроен внутри, потому что он уже готов и им можно пользоваться. То есть человек выгружает из своей ненадежной человеческой памяти эту инфу и переходит к следующей задаче, в которой просто использует этот класс. Всё, что ему нужно помнить, это то, как пользоваться классом, а всю подноготную можно забыть до тех пор, пока не понадобится улучшить класс. И здесь снова получается удобно. Когда будем улучшать класс (это не обязательно тот же самый человек), можно не думать о том, как его используют. Главное, чтобы способ взаимодействия с классом не изменился (не сильно изменился).

    В вашем примере - это просто заготовка. Дальше нужно наполнять эту заготовку функционалом. В самом простом виде геттер просто возвращает приватное свойство, а сеттер меняет его. Так нужно сделать сразу, чтобы потом не пришлось переписывать всю программу (и согласовывать с коллегами). Но даже здесь уже есть небольшое правило - нельзя передавать отрицательные значения. Условия могут быть сложнее. И вообще всё может быть сложнее. Например, вместо age можно хранить дату рождения. И функция GetAge будет каждый раз высчитывать разницу с текущей датой. По сути для внешнего использования ничего не меняется, но внутри происходит магия.
    Ответ написан
    3 комментария
  • Как отправлять письма от имени сайта?

    @LaraLover
    Так вы подключаетесь к аккаунту на gmail, он с него и отправляет. Чтоб отправлять от сайта, разверните почтовый сервер и подключитесь по smtp к нему.
    Ответ написан
    1 комментарий
  • Какие вопросы задавать на интервью для сотрудника Технической поддержки?

    @rionnagel
    ковырятель
    Если у вас есть системные администраторы - попросите их принять участие в собеседовании и составить список вопросов + систему оценки.
    Без этого можете нанимать любого продвинутого пользователя, умеющего гуглить, либо системного администратора, согласного на небольшую заработную плату.
    Ответ написан
    Комментировать
  • Как расшифровать соленный хэш?

    Jump
    @Jump
    Системный администратор со стажем.
    Как можно расшифровать соленный хэши (который делает роутер)?
    Никак! Нельзя расшифровать то что не зашифровано.

    Можно подобрать пароль который дает этот хэш. Либо словарным подбором, либо по радужным таблицам, либо банальным перебором всех вариантов.
    Если хэш соленый - нужно знать соль и радужные таблицы отпадают.
    Остается словарный подбор или тупой перебор.
    В общем вам нужно знать -
    1)Алгоритм хэширования.
    2)Соль
    3)Хэш пароля.
    Словарная атака реализуется следующим образом -
    Берете слово из словаря, солите, хэшируете сравниваете хэш с тем что имеется у вас и так до тех пор пока не найдете нужное слово.
    Если словарная не помогла - тогда брутафорс.
    Последовательно перебираете все возможные строки из латиницы, спецсимволов и цифр, солите и сравниваете - пока не найдете совпадение.
    В зависимости от длины пароля и мощности железа на хэшировании это может занять от нескольких минут до нескольких миллиардов лет.

    Роутер нам предоставил Ростелеком, когда проводил интернет в нашу организацию.
    Значит нечего туда лазить. Провайдер не обрадуется если вы будете настраивать его оборудование по своему усмотрению. И может либо поменять пароль, либо просто отключить вас. Теоретически может и в суд подать - это уголовная статья кстати.
    работая в нем под обычным админом, нельзя настроить удаленный доступ до роутера.
    Да как нефиг делать. Если у вас есть локальный доступ, то удаленный настроить не проблема. И роутер при этом трогать не обязательно.
    Ответ написан
    4 комментария
  • Можно ли виртуалитзировать 2 сервера в одной машине?

    @rionnagel
    ковырятель
    На 6 озу особо никуда не уедешь, особенно, если инфраструктура на винде. Можно попробовать поставить линукс, в докер запихать ldap, астериск, вашу CMS (если возможно)... Ну такое себе решение...
    По хорошему пинать начальство на хорошую железку, а лучше на 2 (для репликации виртуальных машин например). Начать с оценки рисков. Сколько будет стоить час простоя? А день? Что будет, если вся информация на сервере безвозвратно сдохнет? Простой какого времени компенсирует затраты на новое железо? Если это актуально и вы придёте к начальству с холодными цифрами - скорее всего будет у вас новое железо (и возможно даже лицензии на ПО).
    Ответ написан
    6 комментариев
  • Почему через «землю» нельзя сделать цепь без проводов?

    Moskus
    @Moskus
    Эта схема - отвратительная иллюстрация, потому что она содержит упрощения и ошибки, свойственные плохой научно-популярной литературе. На самом деле, так, как там нарисовано, ничего работать не будет. Эта схема - неверное упрощение схемы работы однопроводного телеграфа, где во-первых, использовалось весьма высокое напряжение, а, во-вторых, вовсю использовался эффект емкости земли, которая, согласно принципам физики проводимости, куда меньше сопротивляется переменному току. Поскольку ваши знания физики весьма сумбурны и малы, лучше пропустите эту главу, потому что вы не сможете продраться через ошибки и недопустимые упрощения, которые допущены в тексте.

    Ток не "знает", куда течь - электроны всегда движутся под действием электродвижущей силы, грубо - напряжения, создаваемого источником напряжения. Эта сила возникает, как результат электрического поля, приложенного к проводнику, а происходит это при подключении к нему источника напряжения (например, батарейки).

    Даже если бы земля реально имела такую же проводимость, как металл проводов, вообще обойтись без проводов было бы, конечно, нельзя, потому что воткнув два контакта от источника напряжения в землю вы бы их просто закоротили.
    Ответ написан
    8 комментариев
  • Как удалить самое свежее ядро в Ubuntu?

    @pfg21
    ex-турист
    поставить старое/нужное ядро вручную и запретить его обновлять.

    $ apt-mark --help
    apt 1.6.10 (i386)
    Использование: apt-mark [параметры] {auto|manual} пакет1 [пакет2 …]

    apt-mark — простая программа с интерфейсом командной строки для пометки пакетов как установленных вручную или автоматически. Также может использоваться для изменения состояния выбора пакетов dpkg(1) и показа списка пакетов с определённой меткой или без неё.

    Основные команды:
    auto - пометить указанные пакеты как установленные автоматически
    manual - пометить указанные пакеты как установленные вручную
    hold - пометить пакет как зафиксированный
    unhold - снять метку пакета, что он зафиксирован
    showauto - вывести список автоматически установленных пакетов
    showmanual - вывести список пакетов, установленных вручную
    showhold - вывести список зафиксированных пакетов
    Ответ написан
    Комментировать
  • Почему провайдер не совсем правильно обжал провод кабеля RJ-45?

    @mezhuev
    Системный администратор
    Переверните коннектор на 180° и всё встанет на свои места.
    spoiler
    Rj45plug-8p8c.png

    P. S. Такой простой вопрос и такое жаркое обсуждение…
    Ответ написан
    3 комментария
  • Можно ли собеседоваться в другие офисы крупной компании (google, amazon, etc.) сразу после отказа?

    inoise
    @inoise Куратор тега Карьера в IT
    Solution Architect, AWS Certified, Serverless
    Все зависит от компании, но вы серьезно считаете что если вам дали отказ то стоит это делать? "Первый признак шизофрении - делать одно и тоже, ожидая разный результат"
    Ответ написан
    5 комментариев
  • Есть ли такой сборщик почты?

    akelsey
    @akelsey
    Есть. Называется корпоративный почтовый сервер.
    Ответ написан
    Комментировать
  • На какие "обозначения" обратить внимание при выборе диска?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    В случае присутствия в хранилище вендор-лока на использование только их OEM-дисков, обычно самым надёжным ориентиром считается part number.

    Мы буквально недавно сталкивались с ситуацией, когда одного из клиентов, по-моему с Dell PowerVault, несмотря на то, что он купил их диски, поддержка деликатно завернула с общей формулировкой "покупайте правильные партномера".

    В целом ситуацию можно описать, перефразировав старый рекламный слоган:
    "Модель на этикетке - ничто. Партномер - всё."
    Ответ написан
    5 комментариев
  • В чем смысл быть гуру тостера?

    EYPPNM
    @EYPPNM
    I'm not gonna tell you about anything, here
    Лучший способ стать умнее - это учить других (Евгений Линский). Вы никогда не задумывались над тем, что большинство из этих людей могут быть владельцами тостера?))
    Ответ написан
    1 комментарий
  • Как упорядочить задания, так чтобы среднее время выполнения задачи было минимальным?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Возможно, что под временем выполнения задачи подразумевается время с начала дня до завершения задачи, а не непосредственное время, затраченное на задачу.
    Ответ написан
    Комментировать
  • Как настроить mikrotik?

    CityCat4
    @CityCat4 Куратор тега Сетевое оборудование
    //COPY01 EXEC PGM=IEBGENER
    С рисования, если визуал.
    С бормотания, если аудиал
    С осмотра техники, если кинестетик :)

    С планирования, в общем. Что куда как и к кому будет подключено. И с формирования схемы в том виде, в котором находите приемлемым :)

    Потом ставите winbox и начинаете эту схему впиливать в устройства, попутно гугля все необходимое. Микротик - это линух. Соответственно, все написанное скажем про iptables - будет справедливо и для микротика, только указываться будет немного не в тех местах.
    Ответ написан
    1 комментарий
  • В чем смысл быть гуру тостера?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Для чего просиживаете на тостере по 5-6 часов в день?

    Около получаса в день, а то и меньше.
    Причины:

    * Часто отвлекаюсь от работы, чтобы размять мозги, особенно пока запустил какой-то процесс, есть пару минут - либо чай, либо тостер полистать.

    * Интересные вопросы расширяют кругозор

    * Хочется сделать свой вклад в русскоязычный интернет. Тостер - весьма неплохой вариант для "ленивого" вклада.

    * Собственных вопросов мало, потому что в основном те, кто много отвечают, умеют хорошо гуглить. Реально, умеешь гуглить - очень сложно придумать вопрос, на который сам не можешь найти готовый ответ. А если такой вопрос все-таки находишь, то и на тостере и на стековерфлоу редко кто может помочь.
    Ответ написан
    1 комментарий
  • В чем смысл быть гуру тостера?

    rockon404
    @rockon404
    Frontend Developer
    1. Помогать другим приятно.
    2. Зарядка для ума.
    3. Обучение других людей - важный шаг в развитии, как профессионала, так и личности в целом.
    4. Помогая другим часто узнаешь новое, видишь старые задачи под новым углом, сталкиваешься с новыми, рождаются новые идеи.
    5. Какое-никакое общение на профессиональные темы.

    для чего просиживаете на тостере по 5-6 часов в день

    Зачем? Можно просто подписаться на интересующие технологии и оповещения о новых вопросах будут приходить на почту. Хотя, я бы добавил Push-уведомления.

    но вы то ничего и не спрашиваете.

    Нечего спрашивать. Единственные серьезные проблемы с которыми сталкиваюсь в проектах - архитектурные задачи, требующие целого комплекса знаний. Алгоритм решения подобных задач давно отработан. Для проблем поменьше так же есть алгоритм поиска решения.
    Ответ написан
    Комментировать
  • В чем смысл быть гуру тостера?

    sashkets
    @sashkets
    Прекратил отвечать после 24.02.2022
    «ДАРОМ получили — даром давайте» (Матфея 10:8)

    П.С.
    Был случай, когда человек так нуждался в помощи, что рискнул дать рута. Помог. Моральное удовлетворение.
    Ответ написан
    Комментировать