• Редизайн сайта с 1+ млн DAU в продуктовом подходе



      Недавно технологический десант экспертов Группы «М.Видео-Эльдорадо» высадился на площадке 10-го, юбилейного Product Camp Russia (&EE) 2021. Это было очень крутое, яркое и необычное для нашего пост пандемического настоящего мероприятие.

      На площадке конференции, для того, чтобы поделиться опытом с коллегами из разных бизнесов и уголков планеты, собрались десятки продакт-менеджеров из ведущих технологических компаний.
      Одним из ярких докладов встречи стало выступление Андрея Пчелинцева – Head of Core Products «М.Видео», рассказавшего участникам форума про особенности редизайна сайта компании в условиях использования продуктового подхода.

      Далее повествование от первого лица. Вопросы, мысли, идеи и предложения принимаются в комментариях к данной публикации. Добро пожаловать на борт!
      Читать дальше →
    • Уважаемые рекрутеры, а вы не офигели?

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

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

      99% моего времени отнимает прочтение рекрутерского спама, ответы на по определению неподходящие вакансии и прохождение технических интервью, в которых я не пройду, потому что у меня ИЗНАЧАЛЬНО нерелевантный опыт. Это мы вместе с техническим интервьюером понимаем уже в процессе разговора.

      Читать далее
    • Как мы теперь договариваемся о новом бизнесе на берегу: юнит-тесты в реальном мире



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

        Очень многие вещи из ИТ-сферы напрямую относятся к бизнес-процессам. Тойота в какой-то момент придумала промежуточные юнит-тесты на производстве в своей TPS («каждое следующее звено — внутренний заказчик с критериями приёмки»), но вот в областях типа переговоров истории сквозных проверок далеко не зашли. Вообще, в решении типовых переговорных ситуаций есть очень много гениальных механик вроде «русской рулетки» или «техасской перестрелки» при разделе имущества. Только мало кто договаривается подобное применять, потому что в конечном итоге нужно уметь декомпозировать ситуацию и отладить её.

        Лет 7 назад я писал про очень простую модель того, как могут договариваться основатели небольшой компании на старте: кто за что отвечает, кто главный в ситуации клинча, как принимаются важные решения и так далее. Это была хорошая рабочая механика, но, как выяснилось за это время, случиться может вообще всякое. И все эти исключения надо обрабатывать. Например, я не думал, что у нас будет смерть соучредителя (и последовавшие проблемы для начала с почтой и доменом, зареганными на него, а потом ещё с кучей всего с наследством его доли).

        И вот в какой-то момент к нам в гости завалился человек, который посвятил полжизни конфликтам учредителей. Первая мысль была: «Ну, это не про нас». А потом здравый смысл пересилил, и мы попробовали его механику договорки. И знаете, что? Отдаёт мазохизмом, но удивительно хорошо работает. В общем, давайте покажу, как выглядит очень далёкий, но всё же аналог юнит-тестов сотрудничества нескольких предпринимателей.
        Читать дальше →
      • 3 года программирования вслепую. Часть 2

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

          Читать дальше →
        • Под капотом у Emoji

          • Перевод
          image


          В течение последних нескольких недель Nikita Prokopov внедрял поддержку эмодзи для Skija. Он решил поделиться несколькими мелкими деталями того, как это «самое большое новшество в человеческом общении со времен изобретения буквы image» работает под капотом.

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

          Unicode


          Каждый символ на компьютере кодируется числом. Самая популярная кодировка — Unicode, а две самые распространенные подвариации — UTF-8 и UTF-16.

          Unicode выделяет 221 (2 млн) символов, назывемых «codepoints». Из этих двух миллионов сейчас определены только ~150k символов. В эти 150 000 символов впихнули все языки, мёртвые и живые и прочие украшательства. Можно использовать различные шрифты, писать задом наперед и кверх ногами: image, а также отобразить «GHz» как один глиф: image.

          Направленная вправо двуглавая стрела с оперением и двумя вертикальными штрихами: image или семиглазый монстр: image. И утка:

          image

          Читать дальше →
        • Как я нашел в публичном доступе исходники нескольких сервисов ФНС

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

            Читать далее
          • «Представь, что ты нашел решение, про которое можешь сказать: оно лучшее в мире» — интервью с создателем ClickHouse

              Алексей Миловидов работал инженером в Яндекс.Метрике, и перед ним стояла непростая задача. 

              Яндекс.Метрика работала с петабайтами данных — это был третий по популярности сервис веб-аналитики в мире. Для него нужна была база данных, которая может обрабатывать огромное количество данных в реальном времени, очень быстро, при этом не сжигая миллиарды денег.

              Долгое время такая СУБД разрабатывалась только для внутренних нужд — но в 2016 вышла в опенсорс под названием ClickHouse, и сообщество встречает инструмент по-разному.

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

              Читать далее
            • Частые ошибки в настройках Nginx, из-за которых веб-сервер становится уязвимым

              • Перевод

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

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

              Мы проанализировали почти 50 000 уникальных файлов конфигурации Nginx, загруженных с GitHub с помощью Google BigQuery. С помощью собранных данных нам удалось выяснить,  какие ошибки в конфигурациях встречаются чаще всего.

              Читать далее
            • Ищем причины тормозов БД, используя sys schema в MySQL 5.7

                Есть у нас веб-приложение. Относительно большое и старое — много-много кода, в котором много-много разных запросов к базе данных. При этом мы не гугл, но несколько тысяч запросов в секунду на сервер БД приходится.

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

                Стандартный совет как найти, что нагружает MySQL — включить slow-query-log и посмотреть, какие запросы будут туда попадать. Но в MySQL 5.7 по умолчанию присутствует куда лучший инструмент — sys schema, которая агрегирует данные из performance schema и позволяет их получить простыми запросами, буквально вида «Ok, MySQL, покажи мне топ запросов по максимальному суммарному времени выполнения»
                Читать дальше →
                • +26
                • 11,9k
                • 3
              • Мы так и не попали в аптечку МКС, зато начали продавать свой быстрый регенератор тканей

                  image

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

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

                  Продажи были около нуля, но это ожидаемо. Мы были молоды, наивны и хотели показать лучший эффект, стабилизировав в формуле сразу много действующих веществ, которые дополняли друг друга по эффекту. Цена флакона 100 мл к моменту выхода альфа-тестирования на полке получалась около 2 929 рублей, позже за счёт каких-никаких серий удалось снизить до 1 947.

                  Естественно, ни одна аптека никогда бы такое не взяла продавать без огромной рекламной кампании. Бюджета на рекламу нового средства у нас нет. Есть на Блефарогель-1, потому что его мы делаем тоннами. А Интенсив-регенерации сделали всего два реактора. И не самых больших.

                  К текущему моменту средство показывает нормальные продажи. Потому что мир поменялся, потому что нам повезло, и потому что оно работает. Но по дороге были сюрпризы с наукой, чуть не закончившиеся снятием продукта с производства и отзывом партии из аптек.
                  Читать дальше →
                • Когда число π = 3,2? Как сенаторы в США чуть не пошли на поводу у чокнутого доктора Гудвина

                    Законодательные инициативы, особенно в США, частенько становились предметом неудержимых споров и искреннего непонимания. Вот и сегодня хочу рассказать вам о билле 246 правовом акте, который рассматривался в сенате штата Индиана в 1897 году и чуть было не установил число Пи равным 3,2 

                    Читать далее
                  • Всё, о чём должен знать разработчик Телеграм-ботов

                      Вы вряд ли найдете в интернете что-то про разработку ботов, кроме документаций к библиотекам, историй "как я создал такого-то бота" и туториалов вроде "как создать бота, который будет говорить hello world". При этом многие неочевидные моменты просто нигде не описаны.

                      Как вообще устроены боты? Как они взаимодействуют с пользователями? Что с их помощью можно реализовать, а что нельзя?

                      Подробный гайд о том, как работать с ботами — под катом.

                      Читать далее
                    • Обратная сторона Open Source-славы: как угрожают автору curl

                      • Перевод

                      Прим. перев.: уникальная история, что всколыхнула интернет в эти дни, показывает неожиданную сторону того, что могут «заслужить» авторы самых популярных Open Source-проектов. Ниже представлен перевод недавней заметки из блога шведского программиста Daniel Stenberg — оригинального автора и главного разработчика curl, обладателя премии Polhem Prize (вручается в Швеции за выдающиеся инженерные достижения).

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

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

                      Увы, не все эти письма забавны.

                      Читать далее
                    • SafetyNet Attestation — описание и реализация проверки на PHP

                      • Tutorial

                      В эту тему пришлось детально погрузиться во время работы над обеспечением стандартных механизмов верификации устройств для разных мобильных платформ. Задача сводилась к разработке полноценной реализацию проверки JWS-токенов по протоколу SafetyNet на серверной стороне.

                      После многочасовых поисков и скрупулёзного изучения официальной документации Google решил поделиться полученным опытом. Потому что, кроме официальной документации, я нашел только отрывочные описания частных примеров реализации на разных ЯП. И ни намека на комплексное объяснение особенностей проверки по SafetyNet на сервере.

                      Статья будет полезна разработчикам, которые хотят подробнее разобраться с технологией верификации устройств по протоколу SafetyNet Attestation. Для изучения описательной части не обязательно знать какой-либо язык программирования. Я сознательно убрал примеры кода, чтобы сфокусироваться именно на алгоритмах проверки. Сам пример реализации на PHP сформулирован в виде подключаемой через composer библиотеки и будет описан ниже.

                      А в конце статьи — ссылка на разработанную мной библиотеку на PHP, которая обеспечивает полный цикл верификации JWS.

                      Читать далее
                    • Тариф «100к+», или как вельми зело огорчить спамера


                        Уже не впервые сталкиваюсь, что читатели Хабра не все поголовно умеют правильно бороться со спамом. И я не про SpamAssasin, «Ктозвонил» и прочие приложения для фильтрации информационного мусора, а про несложную, но весьма доставляющую всем сторонам процесса подачу жалобы в ФАС.

                        Давайте расскажу, как буквально за 15 минут не отрываясь от любимого компьютера подключить спамеру задораздирающий тариф линейки «Административный»: «Административный 100к», «Административный 150к» и вплоть до «Административный 500к» – как повезет.
                        Читать дальше →
                      • Как писать читаемый код

                          Бывает, что посмотрев на старый код, мы говорим: «Его проще переписать, чем поменять». Печально, если речь идет о нашем собственном коде, с такой любовь написанном несколько лет назад. Head of Developer Relations в Evrone Григорий Петров в своем докладе на TechLead Conf 2020 разобрал проблемы, которые приводят к такой ситуации, и рассказал, как бороться с Software complexity problem.

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

                          Читать далее
                        • Олды в ИТ

                            Когда ты молод, ты «бессмертен» и не задумываешься о старости. Есть просто уверенность, что если много и хорошо работать, то твоя карьера и доходы будут неуклонно расти. Следуя этой стратегии, ты развиваешься в профессии уже 15, 20, 30 лет. За эти годы уже получил огромный опыт и, наверное, он обязательно поможет безбедно и интересно прожить остаток дней. Но все не так просто. Да, ты уже давно работаешь в хорошей компании, занимаешься интересными проектами, получаешь за это достойную зарплату, но в будущем уже не так уверен, как раньше. Профессиональный возраст приходит с массой вопросов, на которые нужно ответь стратегически.

                             Эта статья родилась на основе обсуждения горячей темы «Олды в ИТ», которую 4 января 2021 г. мы записали для подкаста Linkmeup. Обязательно послушайте запись здесь или в любимом подкаст-приложении.

                            Читать далее
                          • Программист учится рисовать. Дневник Емели

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

                              Еще в январе я дал себе некое обещание в виде цели к концу года — прокачать навык рисования (звучит конечно абстрактно и совсем не по SMART-у, я думаю, это и повлияло в дальнейшем на то, как я развивал этот навык весь год и что получилось в итоге).

                              spoiler
                              В конце года я остался доволен собой и окончательно понял, что я хотел бы прокачиваться и дальше!

                              image
                              Так выглядел мой уровень изобразительных навыков в ноябре предыдущего (2019-го) года

                              Формат подачи данной статьи — это на 95% личный дневник, который я вел в гугл-доке, записывая, что я делал каждый месяц, свои ощущения и как-то фиксируя собственный прогресс — смотрел, сколько работ мне удалось нарисовать и какого они были качества — нравились ли они мне лично или были совсем так себе по исполнению.
                              Читать дальше →
                            • Как выглядит хабраэффект, когда вы продаёте изделие «горижопа» для женщин

                                image
                                Биореактор

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

                                Всё изменилось в тот день, когда задница в красном белье вышла на главную. Тут многие подозревали, что мы планировали продавать изделие «Гель thermo intensive» через Хабр. Сразу скажу, что это попахивает идиотизмом, потому что нужен он девушкам, а на Хабре их очень и очень мало, судя по статистике (14+ % мальчиков, 1+ % девочек и 83+ % репликантов).

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

                                И тут ПОНЕСЛОСЬ! Через час после начала публикации заказы начали сыпаться нон-стопом. Отмечу, что через час: это потому, что ровно за этот час вы зачем-то разобрали всё то, что было на Озоне и на Вайлдберриз со скидкой. За 20 минут заказов пришло больше, чем наш товарный остаток.

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