Angry Frontend – Telegram
Angry Frontend
64 subscribers
3 photos
5 links
Ну, почему мы не можем жить в мире и гармонии?..
Download Telegram
Я периодически задаю себе один вопрос: что за кромешный пиздец царит в умах маркетологов (или кто там за 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. При этом оно радостно сообщает, что хуй и всё сломалось в красивом модальном окне. И я вот думаю, насколько криворуким уебаном надо быть, чтобы запилить такое?

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

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

Такие дела
Леденящий душу пиздец

На мой неискушенный взгляд характеризующий отрасль в целом

Синопсис.

Отвечающий за выплаты сотрудник crypto.com ввёл, предположительно, номер счёта в поле, предназначенное для суммы. В итоге клиентка получила возврат на $10M вместо $100. И узнали об этом только через несколько месяцев в процессе аудита.

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

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

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

TLDR;
Кровь, кишки, распидорасило


Смешно и грустно. Одновременно.

Понадобилось мне день назад оправить SWIFT-перевод. За который, естественно, взимается некая комиссия. На форме отправки перевода есть опция выбора счёта для списания комиссии с указанием остатка. В моём случае величина остатка с лихвой покрывала размер комиссии. Поэтому кивнув бантиком, я заполнил необходимые поля и нажал «Отправить».

Авотхуй! «Суммы на вашем счёте недостаточно для оплаты комиссии»

Я протёр глаза и нажал ещё раз. Потом ещё. И ещё. Пока - увы! - совсем ничего не осталось не понял, что это дело бесперспективное. Ну, и я полез разбираться. Не, ну, а вдруг?

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

На мой вопрос поддерже «Какого хуя?», я ожидаемо получил предложение проследовать на хуй позвонить в банк.

Сука. Банк! Не сраная криптопомойка. А, блядь, инновационный банк.

Отдельного внимания заслуживает комиссия на перевод, которая всегда примерно 75€. Независимо от суммы.

Такие вот пироги с говном, ребятки.

P.S. А в одном узбекском банке всё ещё интереснее: если сложить суммы транзакций, получится третья цифра остатка на счёте.
Простите-извините, но я тут узнал, что в отдельно взятой стране за публичное выражение любви к своему папе совершеннолетней (по всей видимости) дочерью можно уехать на пару дней в обезьянник и получить некислый штраф в суде в соответствии с текущим законодательством. И если вы вдруг считаете, что это нормально, то у меня для вас хуёвые новости…

И это…

Уебите себя апстену чтоле в таком случае. Природа в лице чуть менее скорбных рассудком скажет вам за это огромное человеческое спасибо

P.S. Тут меня в комментариях справедливо упрекнули в отсутствии пруфов. Исправляюсь, извиняюсь, больше не повторится. Собственно, контекст. И там же опровержение. Что сути, в общем-то, не меняет
Не то, чтобы реклама, но я попробую поделиться

Вкратце. У меня есть бухгалтер. Итальянка. И сегодня она мне написала - дословно - следующее:

I am expanding my study abroad and I would like to ask you if you know people who are interested in my services. I can work in the EU and the US.

The services I provide are consultancy, creation, accounting, tax and fiscal services to companies that want to open businesses both in Italy and abroad. Particularly in the USA, the Netherlands, Scotland, Ireland, Spain and the Emirates


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

Вот. Простите за флуд. Человек хороший. Захотелось хоть как-то помочь

P. S. Меня царевной соблазняли Мне предлагали процент по факту, но я решил тактично отказаться. Как-то у меня это не матчится с моими взглядами на жизнь
- А давайте вырубим доступ к приложению опсоса за пределами страны?..
- Я в ахуе… Давай!

Это если вкратце.

Вначале я думал, что, может быть, билд кривой. Или руки. Но нет. Через VPN внезапно всё запустилось и работает. И вот теперь сижу, блядь, и думаю: какими феерическими долбоебами надо быть, чтобы по-блядски тихо забанить подсетку/страну/etc на уровне приложения или ебучего API в приложении, которое по идее как раз там и должно работать?..

При чем я не претендую на то, что мой коротенький ресерч - истина в последней инсталляции. Но блядь!.. Какого хуя?.. Это как у банковских карт вырубить на хуй возможность оплаты через POS-терминалы и оставить только вывод кэша в банкоматах банка-эмитента и тихо слиться.

Ad maiorem, сука, dei gloriam