• Как уменьшить разрешение картинки без потери качества?

    @Tabletko
    никого не трогаю, починяю примус
    Без искажения растровую картинку не уменьшить, кроме как обрезать до нужного размера.
    Ответ написан
    1 комментарий
  • Нарушают ли конструкторы инкапсуляцию?

    greabock
    @greabock
    Могу
    1. Сеттеры не нарушают инкапсуляцию.
    Если вы устанавливаете свойство через сеттер, вы вообще уверены, что оно хранится в свойстве с тем же именем того же класса?
    object.setProperty(value)

    Вот я, глядя снаружи вообще хз, где и как хранится это свойство, если вообще хранится. А вы?

    2. Конструктор не нарушает инкапсуляцию. Ровно по тем же причинам.

    По понятным причинам, у вас не на всё должны быть сеттеры, а только те, что вы хотите менять снаружи. Если же у вас сеттеры, на все подряд свойства, то это вы нарушаете инкапсуляцию. Сеттеры тут не при чем.
    Ответ написан
    3 комментария
  • Нарушают ли конструкторы инкапсуляцию?

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

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

    То есть, смысл инкапсуляции — это возможность реализации конкретной логики с распределением закрытости свойств. В одних случаях уместно закрыть доступ целиком, чтобы не нарушать базовое поведение объекта, когда разумно оставить установку значений только через конструктор, скажем, если цикл жизни объекта это некий конечный процесс, и может быть уместно запретить изменение этого поведения для дочерних классов, в других — допустимо менять свойства динамически, сеттерами, но оставляя обработку изменения за логикой класса.
    Ответ написан
    Комментировать
  • Лучший безопасный почтовый сервер на Linux?

    suffix_ixbt
    @suffix_ixbt
    https://www.babai.ru/
    Выбор только из двух вариантов exim (60+% от всех почтовых серверов в мире), postfix (30+%).
    Уязвимости чаще находят в exim.

    Но Вам уже написали правильно - Вам нужно найти postmaster-a и он уж поставит тот вариант что ему более знаком.

    Самостоятельная настройка почтового сервера (exim/postfix+dovecot+sieve+
    spamassassin+clamav+dkim+
    dmarc+spf+ptr+mx+tls+
    mta-sts+tlsa dane+bimi) приведёт лишь к быстрому попаданию ip во все блеклисты а всех рассылок в спам.
    Ответ написан
    Комментировать
  • Лучший безопасный почтовый сервер на Linux?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Профессиональное решение: любой стабильный почтовый сервер + человек, достаточно хорошо в нём разбирающийся. Начать даже стоит, пожалуй, со второго.
    Ответ написан
    5 комментариев
  • Можно ли стать специалистом по железу, если тебе почти 30?

    kotomyava
    @kotomyava
    Системный администратор
    Всякие телефоны чинят люди, зачастую, не обременнённые образованием. Но они используют по большей части метода "нагугли что надо делать при таких симптомах" и "вспомни что помогло в в прошлый", в основном.

    Научиться паять вообще не проблема. BGA, в частности - это только оборудование и механический навык.
    А вот со схемотехникой будет всё куда сложнее, особенно без базиса, в виде той же физики.
    Если речь о повторении готовых конструкций, или ремонте, это не так сложно. Если о разработке, то весьма сложно.

    Программирование контроллеров, или плис, это и вовсе другая специальность.

    Освоить азы всего этого как хобби, можно, наверное, даже не имея базовых знаний. Серьёзно освоить всё нет смысла - надо специализироваться в чём-то, ну и это годы обучения.
    Ответ написан
    3 комментария
  • Есть ли маршрутизаторы Cisco с VGA портом?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    И с весёлой RGB-подсветкой?

    Доступ к сетевым железкам обычно происходит либо через консольный/менеджмент-порт, либо через веб-морду для не осиливших CLI.
    Ответ написан
    8 комментариев
  • Клиент присылает 100500 правок, при этом проект завершен на 99%. Как быть?

    @kandrash
    Кратко о себе
    А может не на 99% а на 50 завершён? Вот вы, как фрилансер видите что всё готово, мелкие баги поправить. А клиент видит что регистрация в половине случаев Fatal Error выдаёт и сервер роняет.

    Не надо ныть, нужно исправлять. Тупо берём и проходим по правкам. Ваш косяк? Исправляем. Требования поменялись на 180 градусов? Уважаемый Сан Саныч, оплачивайте доработки. Вроде всё просто.
    Ответ написан
    2 комментария
  • Клиент присылает 100500 правок, при этом проект завершен на 99%. Как быть?

    DevMan
    @DevMan
    правки бывают двух типов:
    1. исправление косяков.
    2. дополнительные фичи/изменение уже реализованных.

    1 делается бесплатно и как можно быстрее.
    2 делается за отдельные деньги. или не делается вообще и работа с клиентом прекращается.

    есть ещё 3: дать клиенту скидобан на конкретно оговоренный объем дополнительных работ.

    это из основного. есть ещё методы, но они уже для постоянных клиентов.
    Ответ написан
    1 комментарий
  • Чем можно заменить выключатель сетевого фильтра (удлинителя)?

    Jump
    @Jump
    Системный администратор со стажем.
    и при этом имеющим "офисный" (а не промышленный) вид?
    Офисный вид это под небольшие токи.
    Если нужно коммутировать большой ток - нужно соответствующее оборудование.

    Если речь про офисные сетевые фильтры там максимальная мощность 2-2,4квт.

    Если вы подключаете принтер или чайник в него - вы нарушаете условия эксплуатации.
    Среднестатистический принтер потребляет около 350ватт. При пуске холодного мощность будет примерно в семь раз выше - около 2450ватт, что выше чем указанная в паспорте максимальная мощность.
    Включайте принтеры, чайники и прочие мощные электроприборы в розетки электросети, а не в сетевые фильтры, ибо сетевые фильтры не предназначены для этого вообще.

    Если надо коммутировать оборудование - пригласите электрика, поставьте задачу, он все сделает.
    Будет красивая пластиковая коробочка на стене, а в ней автоматы аккуратно подписанные.
    Ответ написан
    8 комментариев
  • Как сделать слежение за созданием/изменением строк в БД?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    для этого придумали триггеры
    Ответ написан
    3 комментария
  • Как клонировать систему со всеми пользователями и настройками на меньший по объёму диск?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    1. вставляете диск2
    2. подготавливаете диск2, создав и отформатировав разделы
    3. монтируете разделы диска2 к своей системе
    4. внимательно читаете это
    5. выставляете в rsync то что вам нужно и копируете данные с диск1 на диск2
    6. на диске2 правите fstab и чините свой загрузчик
    7. отключаете диск1 и запускаете систему с диска2

    можно проделывать из системы которую переносим и без бекапа (так как мы не трогаем основную систему и в случае чего можно просто загрузится с диска1)
    Ответ написан
    Комментировать
  • Какие есть утилиты для переформатирования винчестера?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    утилиты для переформатирования винчестера ... norton utilities, calibrate. Отличная штука

    У меня маловато опыта с жёсткими дисками того времени, но полагаю, что и в целом людей, у которых его в достатке, на просторах бывшего СССР немного. Склонен так думать из-за того, что в те времена зарубежные персональные компьютеры были слишком большим раритетом. А когда они начали у нас появляться более массово, технологии уже успели продвинуться вперёд, отправив в историю целый ряд производителей жёстких дисков, названия которых многие даже не слышали.

    Насколько мне известно, Калибрейт из пакета "Нортон утилиты" была настолько популярной во многом из-за того, что с её помощью можно было подобрать оптимальное значение interleave для жёсткого диска. Это явно стоило делать для RLL и MFM-винчестеров с ёмкостью в мегабайтах - скорость передачи данных вполне можно было повысить в три раза.

    Точно оценить сложно, но я думаю, что, несмотря на её возможности, утилита Calibrate утратила актуальность примерно к середине 90-х. "Средний" винчестер тех времён заметно подрос и уже не требовал к себе такого внимания со стороны пользователя. Собственно, поэтому в Norton Utilities, предназначенных для Windows, вы вряд ли найдёте тот самый calibrat.exe.

    Даже не самые новые диски сильно отличаются от дисков тех времён.
    В самых же современных вовсю творится адъ и израиль - 4-хядерный процессор на плате стал нормой, появляются элементы наподобие транслятора.
    Из-за разницы в размерах головок чтения и записи внедряются новые технологии записи, например, SMR. С результатом можно наглядно ознакомиться тут: https://habr.com/ru/post/529860/

    Если же отвечать кратко, то не совсем ясно, что вы имеете в виду, говоря "переформатирование".
    Жёсткий диск у вас отформатирован как-то не так? Как именно? И во что вы хотите его переформатировать?

    Было бы хорошо, если бы вы указали точную модель диска, а также какую задачу вы хотите решить.
    Если она связана с потерей и восстановлением данных, то никакое форматирование (и смежные с ним операции) не помогут, скорее сделают хуже.
    Если вам нужно как-то проверить жёсткий диск, возьмите Р.тестер, в нём есть возможность максимально детализировать результаты тестов, сделать детализацию выше, на наш взгляд, невозможно.
    Ответ написан
    1 комментарий
  • Есть ли механизм работы с сокетами в C++?

    @res2001
    Developer, ex-admin
    Ни в одном языке нет подобных функций. Просто потому, что это API операционной системы, а ОС, обычно пишут на Си. Но даже в Си их нет - это функции ОС.
    Но полно библиотек, которые оборачивают ОС API в классы. Пользуйтесь. Их достаточно много. Хорошие варианты привел @gbg

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

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Абсолютной защиты не существует. Можно только максимально усложнить скачивание. Например генерировать каждому клиенту уникальную ссылку с ограниченным временем жизни, отдать по ней данные в потоковом режиме, блоки данных шифровать и т.д. и т.п.
    Ответ написан
    1 комментарий
  • Централизованный менеджмент ssh доступа?

    @MechanID
    Админ хостинг провайдера
    Есть LDAP, SSSD и прочие полезные штуки.
    Ответ написан
    1 комментарий
  • Где то слышал что префиксный инкремент работает быстрее чем постфиксный. Это так?

    @res2001
    Developer, ex-admin
    Не замерял скорость. И даже не смотрел в дизасемблере реализацию.
    Но предлагаю просто разложить обе операции на примитивные ассемблерные инструкции (где нет инкремента, данные хранятся в памяти, а считаются в регистрах). Примерно так будет в псевдокоде:
    int preinc(int i) {
      mov r1, [i];
      add r1, 1;
      mov [i], r1;
      return r1;
    }
    int postinc(int i) {
      mov r1, [i];
      mov r2, r1;
      add r2, 1;
      mov [i], r2;
      return r1;
    }

    Видно, что у постфиксного варианта на одну операцию больше, чем у префиксного. А так же постфиксный использует 2 регистра, тогда как префиксный 1.
    Логика работы префиксного проще и понятней. Так что используйте по умолчанию всегда префиксный. И только тогда когда действительно необходимо постфиксный.

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

    martin74ua
    @martin74ua
    Linux administrator
    Идете по ДЦ, которые вам нравятся. Изучаете условия размещения. Выбираете. Изучаете как получить связность к вашему оборудованию, что для этого необходимо. Подключаетесь к нужному провайдеру, протягиваете или арендуете каналы связи....
    Вообщем это не тут решается )
    Ответ написан
    Комментировать
  • Какое разрешение от собственника является валидным для гуглплей?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Если в приложении используется доступ к вебсайту/базам данных/видеоаудиотрансляциям
    как гугл различает собственника ресурса?

    Никак. Гугл не страдает такой ерундой.
    Если подать жалобу на приложение изза использования моего вебсайта без разрешения - нужно ли будет каким-либо образом подтверждать собственность на сайт?

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

    Смотри выше
    Ответ написан
    Комментировать
  • Какое разрешение от собственника является валидным для гуглплей?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Никак не контролирует, это не его зона ответственности. Можете написать им в поддержку с почты того же доменного имени о нарушении прав использования. Для этого, правда, они должны быть опубликованы на сайте
    Ответ написан
    2 комментария