Angry Frontend
64 subscribers
3 photos
5 links
Ну, почему мы не можем жить в мире и гармонии?..
Download Telegram
Channel created
Я долго думал, с чего начать, но повод, как это часто бывает, появился сам собой. Ниже последует зашкаливающее количество ненависти и обсценной лексики. Я предупредил.

Дорогие HR!
Когда вы, блядь, наконец уже поймёте и научитесь ценить время незнакомых вам лично людей? Когда вам в вашу тупую голову наконец вобьют, что все эти ваши «крупные международные компании», «никакого legacy» и «интересные задачи» цепляют только малолетних долбоебов, которые только и умеют, что сортировать пузырьком, вращать, прости меня, Господи, деревья и с придыханием произносить Scrum и SOLID? Когда на курсах «HR-ниндзя за три дня» вам наконец объяснят, что с определенно момента в жизни этого самого незнакомого человека, которому вы написали в личку на три скролла воды, это ровным счетом нихуя не значит? А значит ровно то, что либо он работает за бабло, либо пилит свой стартап. И так как писать самому офферы, по крайней мере, странно, остаётся один вариант. Который в вашем в оффере раскрыт чуть менее, чем нихуя. А если вы досидели до конца своих курсов, то вполне могли узнать, что подобное ничего, кроме раздражения, не вызывает. А раздражённый человек - это такой человек, который с удовольствием пишет говенный комментарий в сторе, минусует вашу карму и радостно доносит до товоращец по несчастью^W нетворкингу, что в данной компании работают долбоебы и иметь с ними дело - себя не уважать. Пожалуйста, поймите это и ваша жизнь станет лучше. Мир наполнится светом, а вас перестанут ежечасно посылать нахуй. Счастья, любви вам, держитесь там. Наболело.
Как вы думаете, сколько нужно дизайнеров электриков backend-разработчиков, чтобы ввернуть лампочку сделать АПИ с двумя эндпойнтами и базой примерно на три таблицы?.. Без какой-либо автоматизации и уебищной довольно простой админкой на две формы и три таблицы без полноценного CRUD?

Авотхуй. Ниугадали.

Нужно два бэкендера, один девопс и целый СТО для выдачи пиздюлей координации работ, чтобы через 3 (прописью: три) недели (недели, Карл!), получить неработающее говно.

Вот как так?
А зачем тебе жужжать, если ты не пчела? В смысле, зачем канал, если в него не писать.

Вот, кстати, интересная история, вкратце поясняющая за весь современный IT. Точнее откуда есть ноги растут.

Учительницу заклевали за то, что она написала в сочинении десятиклассника дословно следующие: «Твоего мнения никто не спрашивает. Его очень много». Чем вызвала бурю негодования в фейсбуке с последующими публикациями в СМИ, вызовами на ковёр и публичными извинениями. Но постойте: если мне не изменяет память, сочинение, в котором высказывается мнение, называется эссе. А у эссе есть конкретные правила, которые, если вкратце, сводятся к «твоё мнение без аргументации никому не интересно». На пальцах: «мне кажется, ты тут пишешь какую-то дичь» - это сочинение десятиклассника, мнение которого неинтересно вообще никому и он может засунуть его себе в жопу. Буквально: свернуть и засунуть. А вот «этот код говно потому, что...» вполне тянет на слова не мальчика, но мужа, ибо доводы, аргументация, рассуждение. И надо бы спасибо сказать. Но нет. «Ведь человек не может разглядеть хорошее, а сразу видит плохое» Ну, охуеть теперь: открытие сделал. Пулицера, не меньше.

P. S.
Про то, что десятиклассник строит предложения на уровне пятого класса, я тактично промолчу. И опус выше - это не эссе, если что 🙄
Я периодически задаю себе один вопрос: что за кромешный пиздец царит в умах маркетологов (или кто там за user stories и внедрение отвечает?..), если из этого смрада вдруг внезапно всплывает мысль, что было бы здорово вывести три последнии транзакции по всем счетам в виджет, а остатки по счетам выпилить нахуй. Видимо, это реверанс в сторону умственных способностей клиентов, которые не могут запомнить, за что они расплатились в течение последних нескольких часов. Или счёт у них один - зарплатный, с двумя состояниями: деньги пришли, деньги сняли. Особенно информативно, когда из этих трёх строчек две - доход-расход при переводе между счетами. Очень важная и полезная информация, да. И теперь я должен открыть приложение и посмотреть остаток, прежде чем заплатить за сраную чашку кофе. Вот зачем? Всё хорошо же было
Если у вас iPhone, Google Authenticator и iOS 14.2, то у меня для вас плохие новости. Вдруг вы ещё не в курсе
Так, братья апачи, я обо всём договорилась: идём в «Настройки» -> «Основные» -> «Хранилище iPhone», находим там Google Authenticator и нажимаем «Сгрузить приложение», после чего запускаем обычным макаром. Приложение загрузится и всё будет как и раньше. Ну, или не будет, но ведь уже всё равно?😊
Очень сложно писать в канал, будучи не до конца уверенным в своей компетенции, но тем не менее... Мы же помним, что я очень токсичный? Так вот. Последние несколько лет мне хотелось пиздить по голове чем-нибудь тяжёлым всех тех, кто бездумно тащит на проект сраный lodash, даже не удосужившись заглянуть внутрь. И тут я оставлю за скобками тот факт, что в 95 случаях из 100 он не нужен, а если всё таки нужен, то стоит задуматься о своей компетентности. Впрочем, неважно. О чем я собственно?.. JS немого не повезло с range и из коробки там вроде нет ничего такого, чтобы написать const arr = [1..10], однако можно написать что-то типа Array.from(Array(10), (item, index) => index + 1) и далее сделать map, reduce и всё что хочешь. Или не делать нихуя. Или завернуть это в функцию, протипировать, добавить проверку всякой хуиты (хотя если это ваш проект и вы не конченый долбоёб, хватит и просто типов) и использовать везде, где нужно. И каково же было мое изумление, когда я услышал, что надо использовать range из lodash. Так как это лучше, чем три раза index + 1 (я здесь немного погрешил против истины, так как в map у меня был вывод компонентов и я просто ногами воткнул там три раза i + 1, грешен). В общем, сказать, что я охуел - это вообще ни о чем не сказать. Я охуел настолько, что решил написать в канал, в который не писал с ноября прошлого года. И да, я для проверки сходил в репозиторий lodash и посмотрел код: вдруг что-то кардинально поменялась? Нет. Как было говно, так и осталось. И хуй бы с ним, но когда тимлид заявляет подобное с такой охуительной аргументацией, не в жопу ли такого тимлида?
Вот вам, кстати, последний и самый главный аргумент в пользу статической типизации: садишься в говно в пятницу вечером и с помощью TSC и Mother Mother невозбранно выкатываешь патч на API breaking changes, просто обновив пакет с типами… Ну, или под Toxicity. Кому что больше заходит 😋
Bad trip новостного робота Яндекса.

Случился в канун Хеллоуина. Может, оно так и задумано, но, кажется, все гораздо проще. Все-таки AI такой AI
На днях автор вот этого замечательного канала поделился со мной ссылкой на занимательную утилиту.

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

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

Раньше в моём топе говнопакетов с солидным отрывом лидировал lodash, но теперь ему придётся подвинуться.

Знакомьтесь: immutability-helper. Почти 5k звёзд на GitHub и почти две сотни форков.

Ссылку на него по слухам можно найти здесь.

А по сему мне больше нечего сказать: всё настолько плохо, что дальше некуда.

Этому миру уже ничего не поможет. Господи, жги!
Кстати, о вечном.

Немного пострефлексии на ночь.

Вы ведь все фиксируете версию npm пакетов в своих уютных package.json? Никаких ^ и - упаси Боже! - ~? Нет? Тогда мы идём к вам. Но с другой стороны. Ведь как известно, на всякую хитрую жопу найдётся свой хуй с левой резьбой.

Это была предыстория. Кулстори последует дальше.

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

- имена шрифтов хешированы;
- в пути до файла шрифта есть кусок про версию.

И всё бы хорошо, если бы в css API этого куска говна можно было указать версию…

А теперь следите за руками:

- ваш текст местами использует experimental feature вида -webkit -text-stroke;
- Гугл выкатывает новую версию шрифта;
- шрифт отрисовывается в браузере некорректно, точнее применение к нему вышеозначенной фичи превращает все заголовки в попытку сделать абрис с отрицательным отступом в Corel Draw 9;
- и - сюрприз-сюрприз! - откатить версию уже нельзя ввиду уже означенных выше жирным текстом причин.

Пизда хомячку, маркетинг в обмороке, зал рукоплещет.

Орали не будет. Sapienty sat

P.S. Возможно, я не осилил до конца все доки (были прецеденты), да и мопед не мой. Но тем не менее
Три цифры в версии браузера сломает всё. Вообще всё. Слака опять отличилась.

К примеру, выяснилось, что Slack сравнивал версию браузера пользователя с поддерживаемыми не как число, а как строку, поэтому сервис считал версию 100 более ранней, чем 52, и включал режим совместимости, который фактически ломал некоторые элементы интерфейса.

Сколько им, говорите, напихали на раунде А?..
Немного про Bankoff

Вот тут вчера тиснули статью про проблемы с пополнением карт Bankoff. Если читали и - в том числе - комментарии и обратили внимание на коментарий по поводу одного кошелька, то дальше можно не читать. Для всех остальных - короткое разъяснение.

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

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

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

P.S. Вот этот кошелек
Очень короткий пост

Оказывается, теперь можно поднять раунд на аналог пары каналов в Телеграмме и нескольких комнат в Дискорде, обмазать это элексиром и свелте и - вуаля! - новый медийный стартап, который поднимет бабло за два месяца с нихуя, готов.

А, бля. Самое главное забыл.

П - повестка. Ну, и Яндекс с Медузой в качестве бэкграунда
Крик души

Не так давно отправил жену учиться на QA для расширения кругозора и большей гибкости на рынке. Учится, схемы рисует, вебинары слушает. Всё ровно. Я особо не вникаю, только иногда отвечаю на вопросы. Когда спрашивает. Но сегодня я краем уха услышал одну сентенцию ментора - и меня бомбануло. Цитата, практически дословно:

Если пользователь пришёл на сайт, он хочет сразу искать, поэтому мы сразу переводим фокус в поле поиска

Это, блядь, леденящий душу пиздец. А ещё они этому людей учат, ага…

Вот скажите мне вот что: какого хуя какой-то картавящий BA, ставящий ударение на последний слог в слове «фича», должен решать, для чего я пришёл на его сайт и что я там должен делать? Ну, правда?.. Да, блядь, даже нахождение меня на странице с одним полем вообще ничего говорит о том, что я буду там делать. Можно только высказать гипотезу. И проверить ее. И никогда - никогда, блядь! - не говорить пользователю, что ему делать. Тем более пиздить фокус/влючать музыку/выкидывать попап/все-что-угодно, на что пользователь не дал явного разрешения. Иначе можно известно куда пойти.

Если вы так не делаете - вы молодцы, плюсики в карму и вообще умнички.

В противном случае - «тупая сука, убей себя апстену» (с)

Простите-извините, всех благ

P.S.
А ещё там про валидацию ввода у них интересно 😩
Немного чудесного UX by Avito

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

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

Патамушта
Ненависти пост

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

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

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

И да: счета с картами и кошелёк находятся на разных экранах. Поэтому я, сука, два часа ебал мозг поддержке с вопросом, где мои деньги.

Такие дела