• Double VPN. Как маршрутизировать трафик одного tun-интерфейса через другой tun?

    @dronmaxman
    VoIP Administrator
    У меня вот такая дичь.
    echo "100 	vpn" >> /etc/iproute2/rt_tables
    echo 1 > /proc/sys/net/ipv4/ip_forward
    
    export VPN_NET="10.10.10.0/24"
    export VPN_IFACE="tun1"
    export VPN_OFACE="tun2s1"
    
    iptables -t nat -A PREROUTING -s $VPN_NET -i $VPN_IFACE -m conntrack --ctstate RELATED,ESTABLISHED -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
    iptables -t nat -A PREROUTING -s $VPN_NET -j MARK --set-xmark 0x1/0xffffffff
    iptables -t nat -A PREROUTING -s $VPN_NET -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff
    
    iptables -t nat -A POSTROUTING -s $VPN_NET -o $VPN_OFACE -j MASQUERADE
    
    ip rule add fwmark 1 table vpn
    ip route add default dev $VPN_OFACE table vpn
    ip route flush cache
    Ответ написан
    4 комментария
  • Функции по "Чистому коду" - нужно ли это?

    Zifix
    @Zifix
    Barbatum
    Только ситхи возводят всё в абсолют. Если вы считаете, что какой-то совет даже в распиаренной книге противоречит здравому смыслу, то не обязательно слепо ему следовать. Развивайте критическое мышление.
    Ответ написан
    2 комментария
  • Какую современную систему стейт-менеджмента лучше выбрать для React-проекта с "нуля"?

    Все сильно зависит от специфики вашего проекта, но по своему опыту могу сказать, что ФП хранилища в проекте с бизнес-логикой - зачастую хуже, чем ООП варианты.
    В своих проектах обычно использую стек из Mobx + tsyringe(DI). С недавних пор добавил в эту схему React-Query. Иногда бывает полезно использовать MST, если ваша бизнес логика требует каких-то сложных моделей данных с собственной логикой, а так же сложной связи между ними. В частности, MST дает немного больше возможностей для проектирования моделей данных, нежели обычные классы с Mobx.
    Поясню за ответственности:
    1. Mobx - отвечает именно за бизнес-логику frontend приложения. Не надо туда пихать геттеры данных с бэкенда, которые нужно просто визуализировать, для это есть React-Query. Поскольку Mobx базируется в первую очередь на классах, для работы с ним мы можем применять ООП и соответствующие паттерны, выстраивая интересно логику из хранилищ и сервисов прямо на frontend. Для лучшего понимания как это правильно варить, рекомендую глянуть на backend.
    2. React-Query - у них на сайте прекрасно описано, зачем они нужны, и этот инструмент в любом случае призван дополнять типичные хранилища состояний, будь то хоть Mobx, хоть Redux, хоть еще что-либо, рекомендую почитать. Отличный инструмент для работы с состоянием приложение в случае тех данных, которые просто нужно взять с бэка и отобразить.
    3. Tsyringe - для меня проверенный и неплохой инструмент для работы с DI на фронте. Это гораздо лучше, чем пробрасывать хранилища внутрь других хранилищ через конструкторы или через глобальные переменные. Аналогично с подключением в эту схему сервисов. Сразу скажу, что есть риск запутаться в конфигурациях сборщика, если используете CRA, ибо и Mobx, и Tsyringe используют в своей основе декораторы, а babel их переваривает с переменным успехом, но если разобраться, настроить можно)

    Опять таки, адепты Redux и ФП могут сказать, что я просто не умею готовить Redux. Действительно, не умею. Несколько раз пытался трогать Redux, но он не нравился ни до того, как узнал про Mobx, ни после. Верю, что разрабатывать на нем можно. Но и ухо можно чесать левой рукой через затылок. Чтобы Redux был производительным и эффективным, нужно понимать как устроены данные и как работает его реактивность. Он может неплохо подойти для менеджмента состояния каких-то простых моделей данных, например, форм. Но зачем нам центральное хранилище для форм?
    Mobx в этом плане сильно проще и при хорошей архитектуре проекта и самого приложения, джуниоры редко могут там что-то вытворить своеобразное, да и производительность там поломать куда сложнее. В общем, Mobx банально удобнее и проще, но при этом не только не ограничивает разработчиков в возможности создавать сложные и элегантные решения, а только помогает в этом.

    Вот такие мысли, надеюсь поможет)
    Ответ написан
    Комментировать
  • Что значит поддержка проекта?

    @Levhav
    Возьмусь за разработку проектов любой сложности.
    Представьте что проект важный и если случится проблема то вам в час ночи позвонят и попросят починить. Вот поддержа это всё то что вы будете делать чтобы
    1. всё работало и вам не звонили с такими просьбами
    2. если таки позвонили то вы смогли починить всё быстро, а не за пару дней.

    А стоимость такой поддержки это те деньги ради которых вы готовы быть на связи 24 часа в сутки и таскать ссобой ноутбук на море в выходной чтоб если что то случится то вы смогли починить сразу.
    Ответ написан
    Комментировать
  • Что значит поддержка проекта?

    opium
    @opium
    Просто люблю качественно работать
    Ну например есть клиент который платить мне 123 тысячи рублей в месяц, что я поддерживаю.
    Сервер и его аптайм
    Дев среду для разработчиков
    Бекапы
    Обновление по , секьюрити фиксы, всякие похапе мускул и прочее, минорные постоянно, мажорные раз в один два года
    Правки сайта если что то отвалилось само или при апдейте.
    Оптимизация кода и запросов в базу.
    Нагрузочное тестирование по расписанию и подготовка масштабирования к сезону.

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

    Другой пример клиент платит двести баксов в месяц за поддержку
    Бекап
    Правки если что то поломалось
    Автоапдейты софта.

    90 процентов времени ничего не делаю, но клиенту спокойно что когда случится час икс я буду готов принять удар и все исправить
    Ответ написан
    1 комментарий
  • Как правильно переделать компьютерный БП под питание светодиодов?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    адресную ленту
    По-видимому, то, что вы назвали адресной лентой, точнее будет назвать матрицей, поскольку организовать индивидуальное управление диодами легче всего через подключение их в узлы строк и столбцов. Стало понятно, почему 5 вольт.
    Если я просто возьму 5V линию и подключу ее к контроллеру - БП будет нормально работать? .... Я слышал, что БП не очень хорошо себя чувствует, если нагружать только один канал.
    На мой взгляд, можно использовать 5-вольтовый канал сам по себе, без оглядки на остальные. Стабильность напряжения будет сохранена, несмотря на недогрузку остальных каналов, поскольку в комповом БП предусмотрены специальные меры для таких случаев - т.н. цепи групповой стабилизации, помогающие сохранить соотношение выходных напряжений при неравномерной нагрузке. Если вам допустимы отклонения выходного напряжения до 10...15%, то можно не заниматься переделкой БП.
    я хочу потом иметь возможность подключить аккумулятор с 12V, как мне лучше это сделать?
    Если так, то это перечёркивает написанное мною выше, или по крайней мере заставляет вместо 5-вольтового выходного канала использовать 12-вольтовый.
    Может есть возможность запитать БП от 12V и потом получить 5V так же, как в предыдущем варианте?
    Энтузиасты пробовали такую модернизацию стандартных комповых БП, но вам лучше не смотреть в эту сторону, поскольку такая переделка весьма сложна. Лучше внедрять аккумуляторное питание чисто с низковольтной стороны - это вам обойдётся всего лишь в пару развязывающих шоттки-диодов.
    Или остается только ставить понижающий преобразователь 12-5?
    Именно так. Китайцы продают множество подходящих понижающих преобразователей, среди них есть достаточно экономичные, с высоким КПД (я намекаю на то, что они не потребуют дополнительных вентиляторов). 5-вольтовый канал самого БП при этом использовать не получится, к сожалению. Это неизбежная цена аккумуляторного питания.
    Если во втором вопросе нужно будет ставить понижающий преобразователь - тогда может тогда и с БП брать сразу 12V и пускать через него?
    Именно про этот вариант я и толкую.
    А что касается вентилятора и шума от него... Его удаление - это наиболее неудобная переделка компового БП. Можем обсудить и её.
    Ответ написан
    Комментировать
  • Как правильно переделать компьютерный БП под питание светодиодов?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Возьмите блок питания и запитайте ленты от любой линии, подходящей по вольтажу.
    1. Будет нормально работать.
    Но это в любом случае колхоз - иметь вместо дешевого компактного импульсного БП огромную коробку с шумящим вентилятором.
    На ali безкорпусные такие стоят 123 рубля.
    2. Можно через преобразователь 12V-220V, но это еще больший колхоз.
    Найдите преобразователь, который на входе берет 12V и на выходе выдает 5.
    На ali - 90 руб.
    Ответ написан
    Комментировать
  • Какая математика нужна для фракталов?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Для начала хватит арифметики. Кривые Пеано, Серпиньского и другие не требуют для повторения никаких особых знаний

    Следующий уровень - Комплексный анализ. Знания из него нужны для оперирования со множеством Жолиа и другими итеративными картинками и аттракторами.

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