Обновить
3
Александр@aegoroff

.NET, Go, Rust

Отправить сообщение

Потому что отдельно это не работает - нужны другие сервисы вроде кролика, базы и ещё много чего. Да можно все развернуть локально - но это такой геморрой, что врагу не пожелаешь

Это вариант да, но накладные расходы на VM никто не отменял. Мне проще и быстрее было перейти на линукс

git pull

Это неудобно - сначала надо git commit, потом git push на удалённый сервер. Кроме того, при активной разработке я предпочитаю только законченные коммиты, чтобы история была более менее чистой, а с таким подходом будет много промежуточного хлама. Да есть изменение истории, но это дополнительный оверхед.

По поводу читай сиди - локально собрать в несколько раз быстрее, а когда это надо сделать 30 раз в день - экономия времени очень существенная

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

Современная Windows - это быстрая ...

Все очень сильно зависит от конекста. Личный опыт - был у меня 2 года наза рабочий ноут на Windows, и все работало, задачи делались, но почему то у него постоянно, при более менее рабочей нагрузке работал вентилятор охлаждения процессора. Моя работа связана была с докером и все такое, для этого использовался Docker Desktop для Windows. Потом надоели глюки WSL (докер нормально только через него работает), я снес виндоус, и поставил линукс. Да было привыкание месяца два, но зато потом - я перестал постоянно слышать вентилятор, докер образы стали собираться буквально в ТРИ раза быстрее, ну и машина на аккумуляторе спокойно полдня а то и больше выживала. В случае Windows это было всего 2-3 часа. Теперь на Windows больше возвращаться не хочется.

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

можно за чуть меньше чем 7К купить роутер с wifi 6, тот же ASUS RT-AX53U, который прекрасно ставится OpenWRT (https://openwrt.org/toh/asus/rt-ax53u) у которого 4-х ядерный проц те же 256 мегабайт ОЗУ, флешка на 128 Мб. Сам на таком сижу уже почти месяц, с включенным программным и аппаратным offloading нагрузка на проц околонулевая при любом потоке. Брал в озоне месяц назад чуть больше чем за 5К (да сейчас немного дороже стало, но некритично)

Спасибо автору, прямо в ридми он собрал список проектов делающие аналогичные трюки под другие операционки. Вся суть этих проектов, в том, что бы как то извратить передаваемую в открытом виде строку домена.

на самом деле автор упомянутой статьи топил не совсем за это, а за то, чтобы разбить TCP пакет на 2 части, передавая их в обратном порядке с SNI посередине, что и было сделано в его проекте https://github.com/Waujito/youtubeUnblock а в других ссылках возможно конечно и то что вы говорите, является рецептом от замедления.

Если совсем кратко, своими словами - во время установки SSL соединения в открытом виде домен передается к которому мы подключаемся(так называемое SNI).

может лучше так? "Если совсем кратко, своими словами - во время установки SSL соединения, домен, к которому мы подключаемся(так называемое SNI), передается в открытом виде." А то я весь мозг сломал пока понял фразу :)

И как это видео работало 10-20-30 лет назад?

10-20-30 лет назад не было сжатого 4К видео

А какие объективно полезные задачи решает plex, по сравнению с обычным видеоплейером?

категоризация, удобный интерфейс, всеядность, раздача по сети и много чего еще. У меня даже в телевизоре 10 летней давности есть plex клиент

PS: давайте закончим этот диалог - ни вы меня не убедите, ни я вас, просто впустую тратим время

Полно" - это какая доля?

Да собственно везде где видео используется, я тот же браузер например, или любой плеер или например ffmpeg. Точно я вам не скажу, да и надо ли? Да конечно можно обойтись и без этих новых инструкций. Современный проц и это вытянет, но какой ценой - без аппаратного декодирования, тот же plex, при декодировании более менее большого файла загружен почти полностью и для другой работы места не остается, а это очень нежелательно.

> "Работа ОС" - что это? Без каких функций ОС, добавленных за последние лет двадцать, не может обойтись софт более-менее общего назначения, а не редкий/специальный?

Да без всего можно обойтись, но только ценой увеличения нагрузки на ЦП но зачем? Тот же SHA-1 используется в том же git для хэшей, да много где еще он используется для проверки целостности, а не только в безопасности кстати. И круто когда это ничего не стоит.

Посмотрите на тот софт, что есть у Вас - какой его части действительно нужны функции из версий ОС, добавленные за последние десять-двадцать-тридцать лет?

его полно - AVX2 и иже с ним, много где нужны и они реально ускоряют. Видео, расчеты, работа ОС, да много чего. Да для перекладывания JSONов это как правило не нужно.

Чаще всего совместимость теряется просто потому, что кто-то увидел в новой версии ОС встроенную реализацию функции, для реализации которой у себя когда-то написали несколько десятков (или даже сотен) строк кода.

Все так, но часто не только из-за новой функции ОС поднимаются требования - часто дело и в железе - например использование новых инструкций процессора, например появилась поддержка аппаратного вычисления SHA-1, CRC32 и пр.

ну коли речь зашла о компиляторах в оригинальном ответе - то все они нынче open source, и собственно никто не мешает брать это и поддерживать для старых систем - только вот желающих кот наплакал :) Ибо вы со временем устанете постоянно актуализировать состояние нового кода и своих несущих костылей.

например убирают из современных компиляторов возможность сборки под старые системы.

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

вопрос правильный (важна не строгость наказания, а его неотвратимость), но кто же даст такую статистику? Я все равно очень часто вижу и катание вдвоем, и езду на пешеходном переходе через оживленную улицу и много других вещей.

Опять же, Wi-Fi 5 роутер ASUS (RT-AC87U), 2 декабря 2015 года (специально залез посмотрел заказы), стоил 14500, правда на тот момент он был топ, ибо 802.11ac только, только стал выходить на массовый уровень. И кстати, старичок живой до сих пор (до этого отработал 5 лет без проблем), лежит как запасной, и недавно пригодился, ибо заглючил основной роутер. В общем у меня много было роутоеров ASUS - и ни с одним не было проблем. Может все потому, что не стоит покупать по низу рынка?

Он был довольно дорогой, стоил примерно 3 500 тысячи рублей

Вы серьезно? Сейчас более, менее нормальный роутер WiFi-6 наверно от 5000 рублей. Например ASUS RT-AX53U (на него кстати спокойно ставится тот же OpenWRT). Дорогой это уже от 10К по нынешним временам. Топовые модели стоят от 30К

Не совсем так - RemoveWhere идет по списку значений, а Remove по списку бакетов, а это не совсем одно и тоже, точнее совсем разное - в один бакет может попасть несколько разных значений (если у них хэш код один), а в списке значений такое невозможно. Но собственно, ни один, ни другой метод не меняют поле _version у коллекции, изменение которого, приводит к инвалидации итератора.

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

public int RemoveWhere(Predicate<T> match)
{
    if (match == null)
    {
        ThrowHelper.ThrowArgumentNullException(ExceptionArgument.match);
    }

    Entry[]? entries = _entries;
    int numRemoved = 0;
    for (int i = 0; i < _count; i++)
    {
        ref Entry entry = ref entries![i];
        if (entry.Next >= -1)
        {
            // Cache value in case delegate removes it
            T value = entry.Value;
            if (match(value))
            {
                // Check again that remove actually removed it.
                if (Remove(value))
                {
                    numRemoved++;
                }
            }
        }
    }

    return numRemoved;
}

так она по сути и использует то, что описано в статье

В структуре данные хранятся в стеке, в отличие от классов, которые хранятся в куче.

Это слишком грубое упрощение. Более правильное другое - память для структур (или Value type), выделяется прямо в месте, где она используется (да, часто это стек), память для классов (или Reference type), выделяется где-то еще, а в месте использования, присутствует лишь ссылка на выделенную в другом месте память.

К вашему утверждению можно с ходу задать вопрос - а где хранятся данные для, скажем, каждой из структур, из массива в 1 млн. структур ну или даже в 10 млн.? В стек такое явно не влезет

Информация

В рейтинге
6 299-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность