Stalinko

Stalinko

Пикабушник
поставил 9355 плюсов и 1071 минус
отредактировал 34 поста
проголосовал за 38 редактирований
Награды:
5 лет на Пикабу
83К рейтинг 128 подписчиков 98 подписок 64 поста 29 в горячем

Почему я больше не летаю "Победой"

Почему я больше не летаю "Победой" Победа, Авиакомпания Победа, Багаж, Правила, Длиннопост

Месяц назад летел я Победой по маршруту Екатеринбург - Кёльн с пересадкой в Москве.

Очень основательно подошёл к вопросу ручной клади, т.к. был наслышан об их зверствах.

Правила на текущий момент (март-апрель 2018) следующие:

Ручная кладь не ограничена количеством и весом. Главное, чтобы вещи входили в ящик размером 36 x 30 x 27 см.

Есть ряд вещей, которые можно проносить сверх габарита, но электроника туда не входит.


Поэтому от ноутбука пришлось сразу отказаться. Обычный ноутбук 17' уже никак не влазит даже по диагонали.

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


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


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

- П: доплачивайте за багаж

- Я: ?!

- П: вы же рюкзак смяли! На выходе на посадку его померят линейкой и вы не пройдёте!


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

В итоге сотрудники сдались и согласились пропустить меня с условием, что перед выходом на посадку я перевяжу рюкзак так, чтобы он внешне был похож на 36x30x27 :D


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


В самолёте естественно не кормили. Сидения у победы сделаны так, будто было специальное ТЗ сделать их максимально неудобными: места для ног мало, спинки настолько вертикальные, что поспать в них практически нереально. Я летал на разных лоукостах от Европы до Азии - нигде не было так неудобно как в Победе.


Обратно летел на другой а/к. Билет стоил почти как на Победу. При этом абсолютно никаких проблем при регистрации, нормальная кормёжка и вполне удобные места. Так что я для себя решил: выгоды почти никакой (или вообще никакой), унижения при регистрации, неудобства в полёте - больше я на "Победе" не летаю.

Показать полностью

Предложение: возможность группировать новые ответы по постам

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

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

При всём этом, редкие комменты к старым постам часто бывают важнее чем куча новых комментов.


Предложение: в разделе "Ответы" добавить возможность группировать комментарии по постам. Типа:


Пост "Такой-то" +325 комментариев

Пост "Сякой" +2 комментария

...


При клике будут показываться только комменты (ответы) из выбранного поста.

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


Возможно, будут предложения более удобного интерфейса, но, надеюсь, общая идея понятна.

Показать полностью

Встречать надо по одёжке

По мотивам https://new.pikabu.ru/story/otkroyu_kogda_budet_pravilnyiy_o...


Когда я начал фрилансить из дома, тоже обнаружил, сколько всяких разводил ходят по квартирам в течение дня. Ко мне приходили: продавцы посуды, проверка газа, свидетели иеговы, из пенсионного фонда... Но знаете какое правило я вывел для себя, чтобы отличить мошенника от настоящего работника?

Мошенники всегда выглядят солидно, опрятно, у них хорошо поставленная речь. Настоящие же работники обычно задолбанные, им нахрен ничего вот этого не надо, отказу они рады, одеты по-простому - либо свитер, либо рабочая уже неновая одежда. Например, на ту же проверку газа (настоящую) приходила женщина лет за 50, жаловалась, какого хрена её заставляют ходить по квартирам, хотя это не её обязанность, и за всю проверку + обслуживание взяли 30р.

Ещё ни разу это правило не дало сбой. Надеюсь, мошенники не просекут фишку.

Фрилансерский блокбастер или история одного непростого заказа

Здравствуйте, меня зовут @Stalinko и я фрилансер. Работаю в основном через UpWork. В качестве подработки обожаю писать скрейперы. Это такие программы, которые парсят (выкачивают) данные с других сайтов.


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


Заказ стандартный абсолютно. Я оценил его в 8 часов на скрейпер + 8 часов на веб-страничку. Клиент захотел по фиксированной цене работать, поэтому я предложил $700, в итоге сторговались на $600. Заключили контракт, работаю.


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


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


Решили использовать прокси, да не простые, а rotating proxy, которые меняют свой IP каждые 10 минут. Стало бодрее. Но оказалось, сайт банит вообще всех, кто шлёт запросы подряд в течение нескольких минут. Т.е. даже с проксями нам нельзя было скрейпить на максимальной скорости. Пришлось вводить таймауты, и в итоге удалось добиться сокращения времени до 2 недель.

Но это всё равно много.


Начал активно думать днём и ночью над этой проблемой и придумал. Странички с продуктами можно скачивать не с сайта напрямую, а из гугл-кеша! Данные на страничках практически не меняются, так что кеш нас полностью устраивает. Гугл не так строг к скрейперам, да к тому же у меня были наработки по скрейпингу гугла с предыдущего проекта. В общем запустил! К сайту обращался только за списком товаров, либо за товарами, которых нет в кеше. Всё остальное — из гугла. Удалось сократить срок до 4 дней!

Заказчик доволен. Видит, что всё работает ну и оплатил заказ полностью. Я тоже доволен, но недолго…


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


В итоге психанул и решил бесплатно всё доделать. Потратил ещё полдня. Нашёл решение — сайт банит стандартный протокол http1.1. Если работать по http2, то всё работает прекрасно.

Починил. Рассказал всё клиенту. Он был впечатлён и сказал, что если программа всё докачает нормально через 3 дня, то он заплатит мне бонус за старания. Это мне понравилось )

Но через 2 дня программа ломается снова… Опять та же история — какой бы запрос ни посылал, автоматически ошибка 403 (идите нахер боты). Снова смог починить, путём добавления ещё одного http-заголовка. И программа продолжила работать.


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

Но проходит ещё день и программа ломается снова… Я добавляю ещё один http-заголовок… Меня это начинает напрягать т.к. бесконечно это продолжаться не может. Нужно кардинально другое решение.


И тут я вспомнил, что у них есть мобильные приложения, а значит и мобильное API. Скачал android-приложение. Попытался ловить его запросы, но во-первых они были шифрованные, а во-вторых, приложение даже не работало, авторизация не проходила вообще. Думаем дальше… Оказалось, android-приложения можно легко декомпилировать. Прямо онлайн. Таким образом, из apk получается чистый исходный код. Всё хорошо, но оказалось, что единственное API у приложения — это авторизация. Всё остальное через webview — беда… Но, погодите… Я видел скрины ios-приложения и они выглядят иначе! Может быть там API? Декомпилировать ios-приложения оказалось не так просто как android, а без яблочного устройства его никак не запустить. Тут мне на помощь пришёл коллега и смог выдрать API-запросы из ios-приложения, и о чудо! Нашлось API для получения списка товаров!


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

Решил попридержать мобильное API до худших времён. А тем временем основной скрейпер падал каждые 1-2 дня. Поведение сайта постоянно менялось. Админ явно играл против нас. Но решение каждый раз было простое — пара заголовков http и вуа-ля оно работает дальше )

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

Ещё через пару дней сайт начинает зверствовать просто нереально. Сначала он вдруг поменял формат данных. Вместо json стал рандомно отдавать html. Ну это не так страшно как то, что произошло дальше.

Они подключили анти-бот защиту от сторонней конторы, которая специализируется на этом. А это уже довольно лютая штука. Поэтому было решено было воспользоваться козырем и перейти на мобильное API. Решение на API взлетело на ура. Во-первых, скорость выросла в 5 раз т.к. за один запрос мы получали не 120, а 600 товаров, а во-вторых, в мобильном API нет никакой защиты. Пока. Тьфу-тьфу.


PS. Я сначала решил, что этот текст лучше подойдёт для Хабра, но там он осел намертво в песочнице, поэтому я с чистой совестью и небольшими корректировками публикую его на Пикабу, вдруг кому будет интересно.

Показать полностью

Безопасность данных? Ладно, уговорили, выключу запись...

По мотивам https://pikabu.ru/story/internet_bank_5695875


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


Спустя полгода срок моей карты подошёл к концу, и я обновил её в банке. Приходит дата очередной оплаты подписки от MS. Они пытаются снять деньги со старой карты и естественно не могут. Что делает в этом случае обычный пользователь? Правильно, заходит на сайт и обновляет данные карточки за минуту.


Что делает пользователь Microsoft?

Заходит на сайт. Открывает страницу с подпиской. Там честно сказано, что оплата не прошла. ОК. Что делать? А хрен его знает, разбирайся, пользователь, сам...

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

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

Прокликал все меню. Ничего про отвязку карты не нашёл. Заходим в справку. Читаем: "Чтобы отвязать карту, откройте страницу [список карт]...". Клац. Ошибка - страница не найдена. Датриждеблядскаяярость.jpg!

Ещё 15 минут поисков и я смог найти несколько страниц меню, которые падают с ошибкой. Как отвязать карту или обновить данные - не нашёл.

Окей... Вроде у них есть живая человеческая техподдержка. Но как с ней связаться? Контактов нигде нет. Иду снова в справку. Открываю помощника и вдруг у меня прямо в Windows запускается приложение "Техническая поддержка". Вот до чего технологии дошли! Но чата в нём нет. Есть только окошко "Опишите проблему", которое пытается найти справочную статью по ключевым словам.

Когда я задолбал эту программу, она вдруг предложила "Скажите свой номер и мы вам перезвоним через минуту". Вот это сервис!


Через минуту звонит милая девушка из техподдержки. Описал ей свою историю. Она даже не удивилась. Сказала лишь "а это нельзя сделать на сайте, вы мне скажите данные новой карты и я их обновлю".  Но... как же... безопасность... никому cvv-код... - подумал я, но уже настолько заебался, что согласился.

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


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

Показать полностью

Ожидание и реальность

Ожидание и реальность Ожидание и реальность, Круассаны, Крем
Показать полностью 1

Раз уж пошло про языки

Продолжу тему https://pikabu.ru/story/nu_ikh_nakhren_yeti_yazyiki_5609588


Гостил я как-то у друга в Ахене (Германия). Пришёл на остановку. Куда надо ехать - знаю, а с какой остановки - не пойму. Схемы тоже не помогли. Вижу тётеньку и, собрав всё своё знание немецкого, пытаюсь спросить у неё, какая остановка мне нужна. На что она мне отвечает:

- да что ты мучаешься? Говори по-русски!


Спустя пару лет оказываемся с женой в том же самом городе на той же самой остановке. Рассказываю ей эту историю. Посмеялись вместе. Доходим до остановки, и тут я осознаю, что не помню, в какую сторону садиться )) Снова на полном серьёзе спрашиваю какую-то женщину по-немецки, и она нам отвечает... конечно по-русски!) Посмеялись, сели в автобус. А как платить - непонятно. Спрашиваю у пассажира напротив по-немецки, на что тот отвечает отборным русским матом:

- Нахуя тебе платить?! Да ну в пизду нахуй этих немцев!!


И правда, - подумали мы, но всё же заплатили ¯\_(ツ)_/¯

Когда указал все теги

По мотивам https://pikabu.ru/story/mne_kazhetsya_5602117

Отличная работа, все прочитано!