• Допустимо ли "хардкодить" глобальные константы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да, можно. Вот константа Math.PI захардкожена в библиотеке математики и ни у кого не возникает с этим вопросов.

    По поводу констант в Dagger2. Я с ним 1 раз поработал на проекте Java/AWS/lambda стека. Для простых проектов где требуется инжекторный двигатель, но Spring затаскивать - лениво, Dagger - самое то.

    По поводу допустимо или нет - да допустимо. Тем более что ты пишешь что "один раз на проект". Вот к примеру имя таблицы. Ну кому в голову придет его менять? Это объем работ на самом деле в сто крат более тяжелый. И даже не в Даггере дело а в том что таблица к тому времени станет слишком родной для environment и дешевле будет поднять новую таблицу чем переименоввать старую. Уж повертье так оно бывает.

    Передавать через конструктор или нет? Смотри если для модульных тестов тебе надо их менять - то передавай через конструктор. Если тесты не нужны на эту компоненту - то делай как проще.

    Про константу PI конечно была шутка но в проекте есть два зла. Первое зло - заиграться в конфигурации и любой пустяк через них протаскивать. И второе зло - сделать проект неконфигурируемым. Я думаю что хороший проект - стоит где-то посередине.
    Ответ написан
    Комментировать
  • Ошибка при запуске сервера Django. Что делать?

    deepblack
    @deepblack
    Имя хоста написано кириллицей и Python 3.4 или старее?
    Windows: socket.gethostbyaddr(name) fails for non-ASCII hostname
    bugs.python.org/issue26227

    • Обновить Python
    • Переименовать хост
    • Либо запускать Django передав ему ip адрес вместо имени хоста python manage.py runserver 127.0.0.1:8000
    UPD:

    я попробовал воспроизвести подобную ошибку в среде Win 10 (в VirtualBox) и у меня получилось только в случае
    если в файле hosts присутствует алиас с кириллицей и локаль Windows русская.
    spoiler
    5cfb3a55d8bd0793644215.png5cfb39ec9a939231168766.png

    Если удалить русский, оставив только английский (на русском только интерфейс системы), то всё ок.

    Так-же не удалось воспроизвести ошибку если при запуске указывать ip хоста как 127.0.0.2
    python manage.py runserver 127.0.0.2:8080
    При условии, что в hosts нет алиаса с кириллицей для него.

    На чистой системе (установлены только Python 3.7.2 и Pycharm Community, русская локаль) подобной ошибки нет.

    Заглянул в исходники socket.py и socketmodule.c
    Скорее всего данная особенность связаны с этой частью исходного кода Python на C, а именно PyUnicode_DecodeFSDefault
    #ifdef MS_WINDOWS
        /* Issue #26227: gethostbyaddr() returns a string encoded
         * to the ANSI code page */
        return PyUnicode_DecodeFSDefault(name);
    #else
        /* Decode from UTF-8 */
        return PyUnicode_FromString(name);
    #endif


    Далее, если имя хоста не написано кириллицей и в hosts нет кириллицы следует вывод, что с высокой долей вероятности дело в стороннем софте(антивирус, кривой кряк и т.д.).
    Ответ написан
  • Можно ли сделать две mx записи для одного домена и двух почтовых сервисов?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Думаю в вашем случае надо делать split delivery
    Если кратко:
    ВСЮ почту получает gmail, все что знает (заведенные почтовые ящики) он хранит у себя, все что не знает - он переправляет на ваш сервер
    Возможность этой настройки, однако, может зависеть от тарифного плана на gmail
    Ну и надо внимательно отнестись к настройке почтовых DNS записей, чтобы иметь возможность отправлять почту как с gmail так и с self hosted

    P.S. ах да, блин, забыл ответ на вопрос
    Две (и больше) MX записи для одного почтового домена и разных почтовых сервисов сделать можно, но предназначение у них совершенно другое и вашу схему вы ими не реализуете
    Ответ написан
    Комментировать
  • Что это за кодировка и как ее раскодировать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    UTF-8, выведенный в режиме однобайтной кодировки.
    ПЗСО/ ЛО 60 / Відкрита (пріор.)
    Ð\x9f ~ \xD0\x9F ~ П
    Ответ написан
    5 комментариев
  • Как влияет полное шифрование диска на срок его службы?

    Melkij
    @Melkij
    PostgreSQL DBA
    Для полноты картины добавлю: по соображениям криптостойкости шифрование диска наверняка отключит использование TRIM (см. конкретную реализацию шифрования). Что при шифровании всей доступной ёмкости диска существенно ухудшит производительность I/O на дешёвых SSD - они не смогут использовать неиспользуемое пространство flash для ускорения записи (так называемый SLC кеш) потому что будут думать, что вся ёмкость занята полезными данными, а избыточной подменной ёмкости flash ради удешевления там конечно практически нет.
    Скорей всего SMR HDD тоже рады не будут (да они вообще ничему не рады).

    И не забудьте заранее позаботиться о бекапах.
    Ответ написан
    Комментировать
  • Как влияет полное шифрование диска на срок его службы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я думаю что с точки зрения дисковой подсистемы запись шифрованного блока ничем не отличается от записи нешифрованного. Тоесть диску - безразлично.

    Другое дело что основному процессору придется какой-то процент своих ресурсов тратить на работу симметричных алгоритмов.
    Ответ написан
  • Что лучше 3 сервера с двумя процессорами или 4 сервера но по одному процессору?

    paran0id
    @paran0id
    Умный, но ленивый
    Я бы сказал, что больше серверов - лучше. Проще будет распределить ресурс в случае выхода одного из строя, меньше соседей по серверу.
    Ответ написан
    2 комментария
  • Как в Zabbix преобразовать значение B в kbps?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Для этого нужно добавить препроцессинг "Change per second".
    https://www.zabbix.com/documentation/4.2/en/manual...
    Ответ написан
    3 комментария
  • Open Server. Как пробросить один входящий порт на три разных приложения?

    @Drno
    поднять обратный прокси на nginx...
    Ответ написан
    Комментировать
  • Разбиение локалки на подсети?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Теоретически так. Практически, для таких целей обычно используют другие адреса: 172.16.0.0 с маской 255.240.0.0 или 10.0.0.0 с маской 255.0.0.0
    Ответ написан
    Комментировать
  • Почему nextcloud не может писать в папке home?

    Melkij
    @Melkij
    PostgreSQL DBA
    У www-data нет x прав на директорию /home/username/
    Ответ написан
    Комментировать
  • Устройству присваивается ip адрес из другой подсети. Как исправить?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Возможно, в сети есть второй DHCP.
    Ответ написан
    2 комментария
  • Возможно ли перенести конфигурацию контроллера домена AD с одного сервера на другой?

    hint000
    @hint000
    у админа три руки
    Это делается совсем иначе.
    1. Включаете новый сервер в домен;
    2. Добавляете на новом сервере роли DNS и AD DC;
    3. Повышаете роль нового сервера до контроллера домена (гуглить команду dcpromo);
    4. Ждёте некоторое время (от нескольких минут в идеальном случае), пока все данные реплицируются на новый DC (в том числе и DNS); можно глазами смотреть в оснастках (иногда F5 не помогает, тогда закрыть и открыть оснастку), а можно воспользоваться командами dcdiag и repadmin;
    5. Когда на ваш взгляд всё реплицировалось, выключаете старый DC и смотрите, как всё работает с новым DC (перезагружаете или перелогиниваете пользовательские ПК, при возможности перезагружаете другие серверы в домене и проверяете, что можете нормально зайти на них,..)
      Это момент, когда ещё не поздно включить старый DC и решить возникшие проблемы, если таковые действительно возникли. Я предпочитаю дать "отстояться" выключенному серверу хотя бы несколько дней. Но если сроки поджимают, то хотя бы полный рабочий день (пользователи разлогинились вечером, залогинились утром, поработали день и никаких проблем не выявлено).
    6. После этого вы принимаете решение о "точке невозврата": понижаете роль старого DC до обычного компьютера в домене;

    На этом всё.

    Проблема только в том, что у вас, вероятно, сейчас всего один контроллер домена, а должно быть не меньше двух (официальная рекомендация MS и best practices миллионов айтишников во всём мире).

    Update: п.4.1. передать FSMO со старого DC новому DC.
    Ответ написан
    3 комментария
  • Каким бесплатным SSL воспользоваться, когда Let's Encrypt более не работают с Российскими доменами?

    @Drno
    Let's Encrypt работает с российскими доменами
    2 дня назад обновлял сертификаты
    Ответ написан
    4 комментария
  • Как сделать программу которую невозможно закрыть?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Максимум, что можно сделать - при получении сигнала/сообщения об остановке/закрытии окна не останавливать приложение/не закрывать окно. В случае остановки процесса - перезапускать его сторонним приложением. Сам процесс легко убивается таск-менеджером или ОС. За исключением редких некоторых багов на уровне системы (конкретно windows), когда процесс завис наглухо либо что-то в системе и система по каким-то причинам не способна его завершить.
    Ответ написан
    Комментировать
  • IKEv1 + Windows 10 - возможно ли?

    ValdikSS
    @ValdikSS
    IKE(v1) плохо подходит для удалённого подключения клиентов (сценарий road warrior), он создавался для связи стационарных точек. У него много проблем, много недоработок, вся дополнительная функциональность добавлялась костылями.
    Windows не поддерживает обычный IKE без L2TP.

    1. IKEv2 и L2TP не умеют в LDAP, только RADIUS? RADIUS поднимать не хочу, лень.
    Протоколы поддерживают EAP, в частности, для логина и пароля в Windows используется EAP-MSCHAPv2. Какой бекэнд для аутентификации использовать — зависит только от сервера.
    strongSwan не поддерживает LDAP напрямую, но поддерживает RADIUS. Для freeradius есть плагин аутентификации через LDAP.

    2. Можно ли к IKEv1 подцепить windows-хосты?
    К «чистому» — нет. По крайней мере, не через стандартный Windows-клиент. Возможно, какие-то дополнения от Cisco или других сторонних производителей могут добавить такую возможность, но необходимо устанавливать дополнительно.

    3. Насколько вообще безопасно/эффективно/глупо юзать голый IPsec?
    IPsec — хороший протокол, но IKEv2 лучше IKEv1 во всём.

    Вот здесь приводил пример конфигурации:
    https://qna.habr.com/answer?answer_id=2192678#answ...
    Ответ написан
    1 комментарий
  • Возможно ли несколько уровней RAID?

    @Drno
    raid 10 - из четырех дисков
    по 2 диска объединит в raid0 потом эти массивы в raid1

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

    @v__V__v
    Разработчик
    Если не использовано аппаратное шифорование на основе всяких TPM, то должно прочитаться.
    Ответ написан
    Комментировать
  • Как настроить Strongswan (или другой встроенный в Винду VPN) на OpenWRT без сертификатов по паролю с Винды?

    ValdikSS
    @ValdikSS
    Windows полноценно, без дополнительных настроек, поддерживает только аутентификацию сервера по сертификату из списка публичных центров сертификации. Сертификат может быть бесплатным, например, вполне подойдёт Let's Encrypt или вовсе ZeroSSL, который можно выписать на IP-адрес, а не домен.

    Аутентификация клиента может быть по логину и паролю (EAP-MSCHAPv2), как вы и хотите.

    Настройка производилась на Ubuntu 20.04
    Установка: apt install strongswan libcharon-extra-plugins

    Получить сертификат на IP-адрес в ZeroSSL, поместить certificate.crt в /etc/ipsec.d/certs/server.crt, private.key в /etc/ipsec.d/private/server.key, ca_bundle.crt в /etc/ipsec.d/cacerts/ca_bundle.crt

    Содержимое /etc/ipsec.conf
    conn %default
    	dpdaction=clear
    	dpddelay=35s
    	dpdtimeout=300s
    
    	fragmentation=yes
    	rekey=no
    
    	ike=aes128gcm16-aes256gcm16-sha1-sha256-sha384-modp1024,3des-aes128-aes192-aes256-sha1-sha256-sha384-modp1024,aes256-sha1-sha256-sha384-modp2048
    
    	# left - local (server) side
    	left=%any
    	leftauth=pubkey
    	leftcert=server.crt
    	leftsendcert=always
    	leftsubnet=0.0.0.0/0
    
    	# right - remote (client) side
    	right=%any
    	rightauth=pubkey
    	rightsourceip=192.168.155.0/24
    	rightdns=8.8.8.8
    
    conn ikev2-eap-mschapv2
    	keyexchange=ikev2
    	rightauth=eap-mschapv2
    	eap_identity=%any
    	auto=add


    Содержимое /etc/ipsec.secrets:
    : RSA server.key
    user1 : EAP "password1"


    Остаётся только настроить маршрутизацию и NAT.
    В Windows нужно настроить подключение IPsec IKEv2 на этот IP-адрес, с именем user1 и паролем password1.
    Ответ написан
    2 комментария