Да, весьма часто, а кроме того, если заранее знать, что utf8 валидный, то можно парсить более дешевым способом (в libicu U8_NEXT_UNSAFE вместо U8_NEXT). Хотя я пока это не применял — мне было важнее выбросить мусор пораньше, особенно когда обрабатывается "плохой" трафик, например, со спамтрапов, где как раз стоит вопрос производительности.
Угу, постоянно применяю fastutf в своем Rspamd, потому что задача валидации utf8 текстов стоит там постоянно и повсюду. Правда, я использую версию от китайца: https://github.com/cyb70289/utf8
который все организовал чуть более удобным для меня способом. Ну и для коротких строк (<64 байт) наивный метод валидации utf оказался быстрее avx2/sse41.
Ну а code points получать тоже приходится, но это потом — вначале нужно понять, не мусор ли у нас на входе, и не надо ли запустить тяжелые эвристики по определению кодировки, например.
С приличной зарплатой везде хорошо. А с приличной зарплатой по Лондонским меркам в условном средневерхнем нске еще лучше. Да и компаний, которые реально берут в Лондон на работу, гораздо, гораздо больше двух — просто не все светятся на хабре. Вот я, например, готов в своей компании сделать внутренние рекомендации хорошим специалистам из России, если уж кто-то так хочет в Лондон зачем-то. Проблема вся в том, что хорошие специалисты особо никуда не хотят — их и "там" неплохо кормят.
Страховые не судят по видео с регистраторов. Как и всякие арендные конторы и прочие. Меня первый год после получения UK прав задолбало всем доказывать, что у меня почти 10 лет стаж по русским правам.
Ну вот я работал некоторое время в Citadel. Не могу посоветовать идти туда, будучи на визе, даже злейшему врагу. Детали уточнять не буду, извините. Есть некое подозрение, что в других финансах все примерно также.
Блин, остался год до ПМЖ и после прочтения вашей статьи я понял, какой же я идиот, что сижу на Tier 2, так как в ряд жизненных периодов этот факт добавил много седых волос на моей голове.
Конфиг там — форменная помойка с тюринг полным языком на экспаншенах. Собственно, код Exim примерно такой же — чего стоит волшебный https://github.com/Exim/exim/blob/master/src/src/globals.h который содержит примерно все, что используется Exim'ом в виде глобальных переменных.
Ну так склонируйте с того же гитхаба: https://github.com/freebsd/freebsd-ports
Наверное, даже заменять ничего не надо будет — просто зайдите в склонированную директорию и далее в mail/exim и попробуйте запустить make.
Поставить рядом новый сервер, на нем потихоньку разворачивать новую систему, потом включить его как backup mx, а потом перенести приоритет и использовать как основной.
Мда, мне сложно сказать, наверное. А у вас есть вообще /usr/ports? Если есть, то можно взять mail/exim из свежих портов и подложить его вместо того, что есть в ваших. По идее, я в этом порте не использовал никаких особо свежих фич. Если каталога /usr/ports нету, тогда ой — придется собирать из исходников.
Кстати, всем, кто использует Exim, я не перестаю советовать прекратить вредную практику программирования на конфигурационных файлах и попробовать какой-нибудь нормальный MTA (например, Postfix) и Rspamd. Программировать на Lua гораздо проще, чем на exim.conf.
Все проще: бывают PR'ы, которые имеют хорошее качество, а бывают — не очень. Если говорить о крупных предложениях, то я обычно делаю review: https://github.com/rspamd/rspamd/pulls?q=is%3Apr+is%3Aclosed+reviewed-by%3Avstakhov А мелочи или же вещи, в которых я разбираюсь хуже, чем submitter, я просто сразу же принимаю — уже скоро полторы тысячи PR'ов, из которых подавляющее большинство принято.
Знаете, я хотел было что-то ответить на ваш комментарий, но моя богатая практика общения с личностями, подобными вам, подсказывает, что проще поставить вам заслуженный минус и заниматься более полезными делами, чем дискуссиями с дураками и/или троллями.
Не приму, конечно. Качество кода мне важнее, чем что бы-то ни было. Мне и по работе предлагают принимать говнокод, а я не принимаю — отправляю переписывать нормально.
Linux писался Just For Fun — даже книга такая есть. Зачем крупные корпорации выкладывают что-то в опенсорс — отдельная тема, например, на своей работе я вхожу внутренний OpenSource комитет. И мотив "помощь сообщества" там где-то в самом конце приоритетов, если вообще такой мотив есть.
Не могу себе представить ситуации, когда в open source выкладывают проект в поисках помощи от сообщества, если честно. Могу сказать только, что я пишу в open source, потому что могу и потому что мне это удобно. Ну и "себя показать" — не без того.
Помощи от сообщества я не ждал никогда, хотя зачастую появляются люди, которые поддерживают некоторые куски или подсистемы, на которые ты сам забил. Например, в Rspamd это у меня веб интерфейс, а в libucl — биндинги для C++.
Да, испытываю схожие ощущения со своим проектом. В начале развития своего проекта коммьюнити было очень маленьким, но каждый его участник был в какой-то степени либо контрибьютором, либо просто грамотным тестером пользователем проекта.
Сейчас количество людей, которые не шарят примерно никак, зато хотят, чтобы все было сделано БЫСТРО, просто зашкаливает. Сформулировать проблему обычно тоже не умеют, или же формулируют ее в стиле XY проблемы. Отвечать на тупые вопросы я уже устал, на сложные — не хватает времени сконцентрироваться.
Мудаки тоже проблема — даже один токсичный мудак может долго отравлять проект не только своим присутствием, но даже и после бана. Им не лень ходить на релевантные ресурсы и всем рассказывать, насколько плохой проект X и какой мудак его автор.
Выходных нет, перерывов нет, переключаться иногда хочется, но надолго нельзя. Бросать тоже нельзя — ответственность, когда твоим проектом пользуются десятки тысяч людей, колоссальная.
Принимать чужой код — это вообще за гранью добра и зла. Читаешь pull request, хватаешься за голову и пишешь нормально. Но времени на это тоже не хватает...
Особенно чудесные у kdb сообщения об ошибках — вот где настоящий ад. Хотя после нескольких месяцев ковыряния, я как-то стал понимать, что мне для анализа данных стало проще запустить q, а не python + pandas...
Хуже того, дырявое решето под названием Excel выполняет также XLM макросы из CSV файлов. Зато легендарная совместимость с дырками из прошлого тысячелетия.
Может, Ocaml и JaneStreet. Хотя не знаю, используют ли они FPGA. А так пакет (точнее, нотификация о пакете) может доходить до CPU действительно медленнее, чем FPGA пошлет на него ответ.
Можно еще через учебу. Но если вдруг будете подаваться на PhD, то постарайтесь сделать это по Tier 2, а не по Tier 4 визе. А то мы сделали такую ошибку, и теперь нужно ждать на три года больше, чтобы податься на ПМЖ...
Я бы задался вопросом "зачем" в первую очередь. UK — не лучшая страна для жизни, а зарплаты программистов не слишком высокие тут, если сравнивать с США, а в относительном плане, так и с Москвой. Финансы — это достаточно специфическая и достаточно неприятная область для программиста (как минимум в плане work-to-life баланса).
Работал в Citadel Securities, там все на C++, а непосредственно реактивный трейдинг на FPGA. Не уверен, что могу говорить точное время реакции, но это десятки/ок наносекунд. Разумеется, отвечает FPGA, а не CPU. Знаю, что XTX, например, кроме C++ используют http://luajit.org/dynasm.html HFT на Java тоже достаточно много, но я как-то миром Java не интересуюсь совершенно.
Карантин обязателен для большинства стран СНГ. РФ не входит в этот список. Для РФ (как и для всех остальных, впрочем) обязательны три вещи: 1) чипирование; 2) вакцинирование; 3) прибытие официально зарегистрированным маршрутом. Например, багажное отделение самолета BA или Эрофлота удовлетворяет п.3 (но никаких там маршрутов с пересадками). А вот насчет перевозки животных через евротуннель я, увы, не в курсе. Возможно, там просто забивают на п.3.