All streams
Search
Write a publication
Pull to refresh
104
3.5
FanatPHP @FanatPHP

User

Send message

Я - нет. Но в этом как бы вся соль данной "новости" - что Линус считает это нормальным.

Да ну, нету там никакой умеренности, откуда вы это взяли? Вы ещё "fuck off" переведите как "проваливай". "Отыметь" - это эвфемизм, которому в английском вполне есть аналог - to screw (впрочем, поскольку здесь речь идёт о прилагательном, то больше подойдут эвфемизмы "грёбаный" или "долбаный". Для которых в английском так же есть многочисленные аналоги " с умеренной экспрессией" - freakin', bloody, bledin' и т.д.).

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

Идиомы не переводят буквально. По-русски так не говорят, "ё%^5го понятия". Надо не по словам переводить, а, поняв смысл выражения, найти его аналог в русском - "вы ни х%я не поймёте". Ну или "ни хрена", как предложено ниже.

"Вы не будете иметь не малейшего понятия". "У вас нет шанса понять" - это вообще не по-русски, а "вы не сможете догадаться" не передаёт экспрессию.

Вообще даже интересно, каким переводчиком надо умудриться пользоваться в 2025, чтобы допускать такие ляпы? Вот я засунул текст в Deepl, там нет ничего из этого безумного бормотания:

  • "Это вещи, которые никто не должен мне присылать, не говоря уже о том, чтобы присылать их поздно в окне слияния." вместо бессмысленного "Это то, что мне никто никогда не должен присылать, не говоря уже о том, что он находится в конце окна слияния."

  • "вспомогательная функция" вместо "помощника"

  • "Это бесполезный мусор, который делает любой код непонятным для пользователя и активно УХУДШАЕТ ситуацию по сравнению с тем, если бы эта глупая «вспомогательная функция» не использовалась." вместо полной белиберды "Это бесполезный мусор, который делает любого пользователя непонятным, и он действительно ХУЖЕ, чем отсутствие этого дурацкого «помощника»."

  • "в этом окне слияния" вместо "том окне слияния".

Deepl тоже не без огрехов, но хотя бы явную бессмыслицу не пишет. И даже поправляет за Торвальдсом кривое "makes any user incomprehensible", правильно передавая смысл, а не тупо следуя подстрочнику.

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

@denis-19 добавьте "no" в первую цитату в заголовке. Нет такого выражения, "fucking clue". Есть выражение "no [fucking] clue". Например "Habr.com editors have no fucking clue about English".

Вы, наверное, хотели сказать "совестно".

Я думаю, ваша проблема не в том, что вас не так читают, а в том, что вы не так пишете. Рискну предположить, что как и большинство зумеров, вы не очень любите читать. А минимальная начитанность - это, к сожалению, необходимое условие для умения связно выражать свои мысли. (Если что - я готов легко отказаться от этой гипотезы, она просто является самой очевидной). Как бы то ни было, текст оказался вообще никак не связан с заголовком (ШУТКА в котором совсем не читается). Кстати, к выделению заглавными буквами прибегают из-за бедности выразительных средств в писательском арсенале.

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

Вам надо работать над стилем и связностью, больше читать (причём нормальных текстов, а не на Хабре), меньше полагаться на ИИ, следить за тем, чтобы текст действительно передавал мысль, которую вы хотите донести.

Каша из топора. Сказка

Шёл солдат с похода, день-другой идёт, притомился, проголодался. Видит избушка стоит. Зашёл, а там бабушка сидит возле печи, старенькая-престаренькая. — Здравствуй, бабушка! Дай мне чего-нибудь поесть! — говорит солдат. — Ох, сынок, да вон там на гвоздике повесь! — отвечает старуха. — Ты что же это, совсем глуха, не чуешь? — Где хочешь, там и заночуешь. — Ах ты хитрая какая! Подавай на стол! — кричит солдат. — Да нечего, родимый! — Вари кашу! — Да не из чего, родимый! — Давай топор; я из топора сварю! — Что за диво! — думает старушка. — Дай посмотрю, как из топора солдат кашу сварит. Пошла в закуток и принесла служивому топор. А тот положил его в горшок, налил воды и давай себе варить. Варил, варил, попробовал и говорит: — Всем бы каша хороша, только бы чуточку крупы добавить! Старушка принесла ему крупы. Опять варил, варил, попробовал и говорит: — Совсем бы готово, только бы маслицем сдобрить! Старушка принесла ему и масла. Солдат тогда говорит: — Ну, теперь подавай хлеб да соль, да принимайся за ложку — станем кашу есть. Стали есть они вдвоём кашу. Наелись досыта. Старушка и спрашивает: — Служивый! Когда же топор будем есть? — Да видишь, он ещё не уварился, — отвечал солдат, — где-нибудь по дороге доварю и позавтракаю. Тотчас припрятал топор в свою сумку, простился с хозяйкой и пошёл в другую деревню. Вот так-то солдат и каши поел, и топор унёс!

Как не собирать авторизацию на Ларавле руками. Быль

Шаг 1. Ставим Laravel
Шаг 2. Ставим Admiral
Шаг 3. Ставим Laravel Sanctum, ставим и настраиваем:
Шаг 4. php artisan install:api
Шаг 5. Добавляем guard admin в config/auth.php:
Шаг 6. Добавляем в User.php
Шаг 7. Контроллер для входа, выхода и проверки
Шаг 8. Формы и ресурсы
Шаг 9. Сервисы и защита от дурака
Шаг 10. Роуты
Шаг 11. Сидируем тестового юзера

В общем, там выяснилось, что как и всегда, порядок цифр пропорционален кривизне рук тестировщика. Магия опкеша заключалась в том, что он разумно кешировал сразу результат(!) вызова функции, благодаря константному аргументу. А у исправленного теста результат оказался гораздо скромнее, вплоть до неразличимости. Так что ближе к истине оказался тезис в этой статье, а не в той.

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

return strlen($firstName) + strlen($middleName) +  strlen($lastName);

Даёт мне такой результат

benchFormatUserName1....................R3 I3 - Mo0.055μs (±1.84%)
benchFormatUserName2....................R5 I4 - Mo0.036μs (±0.00%)

Интересно, что практически одновременно с этой статьёй, с разницей в одну минуту, на Реддите был опубликован пост ровно на ту же тему, но с полностью противоположными выводами!
И приводится условие, при котором разницу (весьма значительную), можно увидеть, и которое не выполнено в приведённом здесь тесте:

opcache ❌

Но что ещё интереснее - если здешний тест выполнить при включённом опкеше, то разницы всё равно нет...

Окей, зачем канал лично вам - стало понятнее. Но вот зачем вам подписчики, а подписчикам - канал, вы не знаете. Ну ок.

Я не вас спрашивал.

Извините, а можно вас спросить?
Зачем вам канал? Ну или в другой формулировке - зачем вам набирать подписчиков? До размера, когда можно будет что-то впаривать пастве, он явно не дорастёт - слишком узкая ниша и слишком мало постов.
Зачем канал вашим подписчикам? Особенно учитывая, что посты там раз в месяц, и половина - или "я написал на Хабр", или "Я нашёл на Хабре" - то есть желающие это прочтут и так.

Только не говорите "все побежали, и я побежал" - это как-то совсем глупо.

Интересно, вспомнит ли кто-нибудь пинбу... :)

Спасибо. Но это ведь уже получается не автоматическое разрешение, а очень даже ручное?

Ну, кому-то вся эта беллетристика наоборот только мешает, и особенно пересказ от первого лица сбивает с толку. Но соглашусь, это всё детали. Главное что есть актуальные подробности, для тех, как это правильно замечено, кто хочет в них разбираться.

А англоязычная версия не планируется? Если нет, то можно запостить небольшой пересказ на Реддите?

Спасибо за очень интересный разбор. Сначала, правда, сильно разило Славой Рюминым, но потом стало терпимо, когда стало ясно, что пересказчик и сам увлечён этой историей. Тем не менее, стиль от истории про лепку пельменей не очень хорошо подходит для разбора критической уязвимости. Тем более, когда это сказывается на связности повествования.

Откуда взялся локальный путь к SALT.php? Здесь явно показан путь в локальной песочнице тестировщика. Понятно, что есть варианты - можно угадать, можно через относительные пути - но в тексте не показано, как именно. "Извилистая цепочка до RCE" также изложена очень сумбурно, и в ней надо разбираться отдельно. И лучше бы усилия пересказчика были направлены на эту часть, а не на бравурное вступление ;-)

Ещё такой вопрос возник при прочтении. В случае, если у нас есть две разных реализации интерфейса, как контейнер с автоматическим разрешением зависимостей различает, какую именно использовать? Я правильно понимаю, что чистого решения у этой проблемы нет, и мы в итоге всё равно указываем конкретный класс - только не при вызове, а где-то в конфигурации?

Большое спасибо за статью! Особенно порадовало упоминание Yii3.

Но не могу удержаться от небольшого замечания, тем более, что этот код уж очень диссонирует с толковостью остальной статьи своей вопиющей бессмысленностью. Да, я про try/catch/echo $e->getMessage(). С большой натяжкой его наличие можно оправдать отключённым при разработке информированием об ошибках. Но в этом случае человеку надо садиться учить самые основы, а не внедрение зависимостей. А если информирование об ошибках включено - как это и должно быть - то этот кусок кода становится полностью бессмысленным, поскольку РНР прекрасно выведет сообщение об ошибке и без каких-либо телодвижений со стороны разработчика.

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

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

Я понимаю, что PHPStorm, как и другие анализаторы, постоянно дёргает за штаны, "Караул, неотловленное исключение, всё пропало!". Но на мой взгляд, это одна из инспекций, которая приносит гораздо больше вреда, чем пользы - приводя к такому вот подходу, "написать абы что, лишь бы мамка не ругалась". Надо не вестись, а наоборот, укорачивать этой инспекции ручки в настройках, ну или хотя бы аннотациями.

Information

Rating
1,115-th
Registered
Activity

Specialization

Backend Developer, Web Developer
Middle
From 140,000 ₽
PHP
OOP
MySQL
Linux
Git
SQL
Database
Nginx
Bash
Laravel