Pull to refresh
67
0
Гордый Хохол @Nomad1

Погромист игоръ

Send message
Личный опыт: купил два АКБ на 12В 10Ач, в форм-факторе для бесперебойника. При получении заподозрил неладное из-за веса — весят они по 400 грамм, даже меньше, чем аккум шуруповерта на 2Ач. Открыл — внутри пена и сборка из 4 штук 18650 неизвестной емкости, тобишь в лучшем случае 3.3Ач. Арбитраж отказал, говорят, не доказуемо — оно же реально работает, а емкость это понятие растяжимое.
Вывод: ССЗБ.
Как-то раз зашел я в отделении милиции с ножом в руках. Ребята побледнели и потянулись к кобурам; тут я их добил: говорю, сейчас я там машину вскрывать буду, под вашим зданием. Вы не пугайтесь, она моя — захлопнулись ключи внутри. Оценили, ржали :)
Он у меня завелся еще N времени назад, но приходилось прописывать NAT для доступа к ресурсам сервера, а это откровенно ненормально. А как сделать двусторонний NAT (точнее, Transparent Firewall) я так и не разобрался.
В целом, из ненормального тут только настройка endpoint и allowed-address на Mikrotik, за счет того, что конфиг WG хранится в текстовом виде и редактируется через текстовый редактор, доступный только по SSH.
А, ну еще на старом RB750UP все настроилось, но не заработало и сильно-сильно кушало процессор. Видимо, не по нему эта задача.
Наверное все-таки на 192.168.1.20 знает «192.168.68.0/24 через 192.168.1.254»

Да, опечатался. Ясное дело, у меня ж сетки совсем иначе называются.

Чаще всего я ошибался AllowedIPs или маршрутах.
Недостаточно прописать «дома» маршрут «192.168.68.0/24 через 192.168.1.254»

Итого, проблема оказалась именно тут — в AllowedIPs на сервере должен быть адрес сети клиента, которая хочет работать с этим интерфейсом.
Задача — соединить wg сетку и локальную. Маршрутизация допустима.

— Домашняя сеть 192.168.1.0/24
— Удаленная машина 192.168.68.20
— WG сервер 192.168.1.254, WG сетка 192.168.68.0/24
— прописан маршрут 192.168.68.0/24 через 192.168.68.254 и он не думает работать

А у кого-нибудь получилось добавить wireguard интерфейс в bridge? Или связывать его с сеткой реально только через фаервол?
Ну наверное это хороший фестиваль, но я как инди разработчик из Восточной Европы узнал о нем аж прямо сейчас. Мы были бы заинтересованы там свою игру показа, но информации о событии не было в принципе нигде.
Ну и Steam Summer Festival of Games показал, что эти мероприятия сродни поиску чего-то ценного на гаражной распродаже.
У массивов есть куча важных и неприятных недостатков, из-за которых они не всегда подходят для возвращаемого типа из метода и точно не стоит делать ToArray() на каждом шагу.

1. Массив это объект и подвержен сборке мусора. И если мы возвращаем его из функции, то он сразу попадет в GC Gen 1. А в плохом раскладе и в Gen 2. Массовый ToArray() по всему коду может удвоить нагрузку на GC, что не критично для небольшого проекта, но может быть важно в бекэнде. Чтобы бороться с этим в .Net Core сделан ArrayPool<>, но с ним есть нюанс №2.
2. Получив из ArrayPool<> массив нельзя быть уверенным, что его длина не больше, чем надо и что вы заполните все его элементы. В итоге некоторые программисты начинают возвращать из каждого метода ArraySegment, собственную обертку, отдельно значение count. Либо таки возвращают массив и каждый элемент при переборе сравнивают с null или default. Отдельно остается вопрос, что массивы надо бы и возвращать в пул, а за этим автор метода уже проследить не может.
3. Массив структур физически хранит в себе эти структуры и его создание через ToArray() или CopyTo приведет к массовому копированию. Ну а сам массив потенциально может попасть в LOH, для этого достаточно иметь всего 85000 байт размера. Обработка LOH объектов обычно блокирующая, т.е. останавливает ваше приложение. Есть исключения, но речь не о них.
4. В отличие от IReadOnlyList<>, в массиве можно заменить элемент с каким-то индексом и изначальный метод не узнает об этом.

Моя рекомендация: возвращайте из методов IEnumerable, IReadOnlyCollection, IReadOnlyList (если нужен доступ по индексу). Не заморачивайтесь с массивами, если это не требуется явно. И точно не делайте ToArray по поводу и без повода, от этого код не станет работать быстрее.
Это как если бизнесмен скажет, что он не смог с партнером выкурить сигару в самолете и это привело к срыву сделки. Или таки ее выкурит, а затем подаст в суд на компанию, говоря, что закона он не нарушил, только надуманные правила авиакомпании. А вот пребывание в тюрьме подорвало его авторитет, здоровье и прибыль фирмы. Плюс попал в черный список и не может летать, что тоже чревато убытками.
У меня какое-то странное впечатление, будто кто-то подсмотрел как делаются системы в энтерпрайзе и попытался натянуть этот подход на более широкий глобус. Хранимые процедуры есть почти везде, но в Oracle и MSSQL они выведены на совсем высокий уровень, включая CLR Stored Procedures на .Net и их отладку в Visual Studio. А так с Postgres я вижу непонятную борьбу с кактусом, логированием вместо отладки, отсутствие тестов и написание кода чуть ли не в emacs, а потом жалобы, что это неудобно.
Чем ближе лагерь к границе, тем удобнее будет туда возить несогласных из нового Казахского автономного региона КНР :)
Кстати, рискну предположить, что у базы ПВО и лагеря отличаются площади и тип строений. Все-таки ПВО подразумевает меньше казарм для личного состава
Давайте пофантазируем о геополитике (прямо как профессиональные таксисты). Не думаю, что Таджикистан, Афганистан, Монголия, Киргизстан и Казахстан относятся к потенциальным противникам Китая, с этими странами отношения условно приемлемые, их военная мощь сравнительно невелика. Остаются Индия, Пакистан и Россия, вот с ними вероятность войны заметно выше (хотя и протяженность границы меньше). Можно предположить, что концентрация лагерей на границах именно с этими странами существенно ниже. Посмотрим теперь на карту — действительно, скопления видны возле совсем «безвредных» границ, например, возле Казахстана.
Конечно война может быть сразу региональная, масштабная. Но в таком случае скорее всего сама граница отодвинется на территории этих стран и не удивлюсь, если у китайских генералов давно висят на стенах карты с пунктирными линиями.
Там пустыня и горы, это крайне отдаленный Синьцзян-Уйгурский автономный район. Если бы современная война и подразумевала пересечение границы огромной армией, то в этой местности это было бы крайне не удобно.

У вас конструкция из 5 вложенных циклов. Это операция такой сложности для понимания и отладки, что макросами и синтаксическим сахаром вы можете ее сделать только менее понятной для стороннего человека. У вас отличные комментарии в коде, сам он весьма читабельный. Если в первую секунду не ясно, что и как итенируется, то потом видны комментарии и все становится на свои места. Смешайте это на половину с for-range или for each и читабельность упадёт. Буквально мне не нравятся только константы 4 и пр. в цикле.

А можно даже дальше пойти — в дорогу встраивать датчик! Фантастика, правда?
Люцерн на фото Олега Ненашева

Люцерн находится в германоязычном кантоне Люцерн в самом центре страны. Так что, фото хорошее, но, кхм, мимо кассы.
На каждом светофоре держать WiFi точку, которая передаст в явном (подключение) или скрытом виде (в названии) токен, меняющийся каждые 5 минут. Не зная токена нельзя подтвердить, что ты возле этого светофора.
Без поддержки Unreal Engine большинство AAA тайтлов не будут выходить на MacOS, что сильно ограничит возможность apple наращивать долю рынка потребительских компьютеров.

Apple не поддерживает даже видеокарты NVidia, им наличие AAA игр на «потребительских компьютерах» вообще не существенно. И отсутствие UE на iOS ударит сильно не по Apple, а по самим Эпикам и тем, кто на этом движке собрался релизиться.
Они лет 5 обещали это, как и MBIM режим в 7й версии. Так на форуме все и смеялись «в 7-ке будет». Ну вот это время настало. :)
Если это китайская технология, то есть важный плюс: любое доморощенное решение, проходящее через анализатор будет работать несколько недель, пока не будет апдейта из Китая. Ну или система самообучается, но тогда бы не работали Psiphone и прочие варианты.

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity