• Lagniappe — это такое луизианское словечко, которое сделает ваших юзеров\клиентов\покупателей чуточку счастливее

      В отличие от большинства отечественных IT-эмигрантов, моим первым домом в Америке стала не Калифорния и не Нью-Йорк.

      В этой статье я поделюсь простым уроком, который я усвоил на всю жизнь благодаря солнечной Луизиане, известной своей кухней, новоорлеанским джазом, сумасшествием Бурбон Стрит (который, в отличие от Нью Йорка, ДЕЙСТВИТЕЛЬНО никогда не спит) и южным гостеприимством.



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

      А сегодня поговорим о чем-то, что идеально подойдет для ЛЮБОГО бизнеса/приложения/сервиса. Но сначала, небольшая предыстория:
      Читать дальше →
    • Итоговые проекты курса Deep Learning in Natural Language Processing (by DeepPavlov Lab)

        Недавно завершился «Deep Learning in Natural Language Processing», открытый образовательный курс по обработке естественного языка. По традиции кураторы курса — сотрудники проекта DeepPavlov, открытой библиотеки для разговорного искусственного интеллекта, которую разрабатывают в лаборатории нейронных систем и глубокого обучения МФТИ. Курс проводился при информационной поддержке сообщества Open Data Science. Если нужно больше деталей по формату курса, то вам сюда. Один из ключевых элементов «DL in NLP» — это возможность почувствовать себя исследователем и реализовать собственный проект.

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



        Немного данных и аналитики


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

        Вернемся к участникам. Неужели все окончили курс? Ответ, конечно, очевиден. С каждым новым заданием желающих становилось все меньше и меньше. Как итог — то ли из-за карантина, то ли по другим причинам, но к середине курса осталась только половина. Ну что ж, а дальше пришлось определяться с проектами. В качестве итоговых участниками было заявлено семьдесят работ. А самый популярный проект — Tweet sentiment extraction — девятнадцать команд пытались выполнить задание на Kaggle.

        Подробнее про представленные проекты


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

        Всем известна фраза Рона Хаббарда «…хочешь заработать миллион — создай свою религию», которую он выдал в 1950 году. Тогда он создал ещё одну деструктивную секту, можно это было в 60-х в США — которая до сих пор пытается утвердиться в мире, как религия.


        Хотя, сорри, друзья.


        Во-первых, это было сказано, а точнее написано в 1938 году.


        В-вторых, это сделал неподражаемый Джордж Оруэлл, который так мастерски написал антиутопию "1984", что только сейчас до его благодарных читателей в Великобритании и США стало доходить, что писал он о них. Да и вообще Джордж был знатным шутником, учитывая, где он работал и что он знал о широких народных массах.


        В-третьих, впервые это фраза появилась в его письме в виде строчки “there might be a lot of cash in starting a religion”: я бы перевёл, "как можно можно поднять славно деньжат, если застартапить религию".


        Долгое время этой простым и немудрённым рецептом пользовались только сайентологи. Но потом к ним подтянулись башковитые ребята из IT — c IQ у них всех было всё OK, а деньги и уважение лишними не бывают.


        Будем считать это исключительно моей личной субъективной гипотезой, но именно так появились Agile, а затем Scrum. Давным-давно в XIV веке Уильям Оккам сформулировал одну чудесную фразу в одной из книг: «Non sunt entia multiplicanda praeter necessitatem». Вот и удивляюсь, как жила разработка до появления Scrum. Наверное, её просто не было. На самом деле "клиентоориентированность" — это финальный этап чудесной эпохи потребления, которая как раз заканчивается — вертись вокруг клиента, как Солнце вокруг плоской Земли, и всё будет путём.



        Читать дальше →
      • Пакеты-пакеты-пакеты… Насколько эффективно вы используете R?

          Нынешняя культура «компетенций» и «практик» предполагает, что человека обучают каким-то подходам и рецептам к решению набора задач. При этом за рамками скрывается время актуальности этих «рецептов» и они, фактически, отливаются в монолит, тиражируясь человеком годами. Порой приходится слышать изречения о «лучших практиках», которым уж лет 30 и за это время прошло несколько смен парадигм. А с этой «лучшей практикой» находишься как-будто во временнОй капсуле.


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


          R образца 2020 года очень сильно отличается от R даже 2018 года. В самом базовом коде были внесены достаточно значимые изменения для повышения эффективности и стабильности работы (скорость и потребление памяти). Но более динамичная часть экосистемы — это пакеты. Их коллекцию полезно периодически пересматривать с тем, чтобы перейти на более удобные и производительные реализации. С момента прошлой публикации «Джентельменский набор пакетов R для автоматизации бизнес-задач» и сами пакеты претерпели серьезные модернизации и спектр их достаточно сильно расширился и лидеры многократно менялись местами.


          Не секрет, что мейнстрим не означает максимальную эффективность и универсальность. Придерживаясь рамок мейнстрима очень легко пропустить пакеты, которые являются жемчужинами. Особенно удобно открывать их на R конференциях UseR!, Rconf, eRum, и т.д.


          Ниже приведен список пакетов общего применения, который оказывается весьма полезным при решении повседневных задач (x пакетов из >10K на CRAN). Часто оказывается так, что многие новинки оказываются неизвестны собеседникам. Для сводного ознакомления по срезу на июль 2020 публикую в виде подборки. Ссылки, в большинстве случаев, ведут на страницу с подборкой функций. Уверен, что каждый найдет для себя что-то полезное.

          Читать дальше →
        • Майки, деньги, два торта: как мы разучились оценивать задачи



            Привет, Хабр! Меня зовут Артём и я тимлид в Skyeng. У моей команды разработки есть заказчик, он же продуктовый менеджер, он же просто Ваня. Ваня считает, что наша схема с оценкой задач не идеальна. Например, оценка в 2 дня ничего ему не даёт. Свою задачу на проде он увидит через неделю или дней 10. Или больше. Или меньше.
            Читать дальше →
          • Во время пандемии стали популярны вечеринки в SpatialChat — и они вряд ли закончатся после ковида

              Я абсолютный домосед, социофоб и ненавистник компанейских вечеринок. Тот же я сейчас бы бросил все и ворвался в самую огромную шумную толпу, какую бы смог найти. Ценить вещи по-настоящему начинаешь, только когда их лишаешься. Странный год, очень странный.

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

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

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

              Читать дальше →
            • Redis на практических примерах

                Redis — достаточно популярный инструмент, который из коробки поддерживает большое количество различных типов данных и методов работы с ними. Во многих проектах он используется в качестве кэшируещего слоя, но его возможности намного шире. Мы в ManyChat очень любим Redis и активно используем его в нашем продукте для решения огромного количества задач. Про некоторые интересные кейсы использования этой in-memory key-value базы данных я расскажу на примерах. Надеюсь, вам они будут полезны, и вы сможете применить что-то в своих проектах.

                Рассмотрим следующие кейсы:

                • Кэширование данных (да, банально и скучно, но это классный инструмент для кэширования и обойти стороной этот кейс, кажется будет не правильно)
                • Работа с очередями на базе redis
                • Организация блокировок (mutex)
                • Делаем систему rate-limit
                • Pubsub — делаем рассылки сообщений на клиенты

                Буду работать с сырыми redis командами, чтобы не завязываться на какую-либо конкретную библиотеку, предоставляющую обертку над этими командами. Код буду писать на PHP с использованием ext-redis, но он здесь для наглядности, использовать представленные подходы можно в связке с любым другим языком программирования.


                Читать дальше →
              • PHP 25 лет: краткая история языка и скидка 50% на PhpStorm

                  Привет, Хабр! Сегодня особенный день — ровно 25 лет назад Расмус Лердорф представил миру PHP. В день рождения языка мы хотим поблагодарить вас за годы его поддержки.

                  Все мы ждем релиза PHP 8, который запланирован на этот декабрь. А пока предлагаем вспомнить достижения PHP-сообщества за прошедшие 25 лет: мы собрали в большой таймлайн все самые важные события из истории языка.

                  Читать дальше →
                • Делаем 3D конфигуратор для WooCommerce

                  • Tutorial
                  Этот урок является логическим продолжением двух предыдущих статей (часть 1, часть 2) про создание трёхмерных конфигураторов без использования программирования и вёрстки.

                  В прошлой части мы рассматривали вопрос интеграции трёхмерной части с использованием штатной системы заказов, входящей в плагин Verge3D для WordPress. Однако такой вариант подходит далеко не всем, поскольку возможности этого плагина существенно ограничены. С его помощью невозможно получить доступ к популярным платёжным системам, типа PayPal или 2Checkout, невозможно оперировать со скидками, купонами, запасами и прочими вещами, которые все привыкли видеть в популярных системах электронной коммерции.



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


                    Подписывайтесь, там интересно! ;)

                    Как же так получилось?


                    Пройдя нелегкий путь от выпускника факультета радиофизики, через сотрудника государственного научного учреждения, преподавателя авторского спецкурса в любимой alma mater, я наконец стал уважаемым сотрудником R&D отдела очень крутого стартапа в области дополненной реальности Banuba.

                    Крутая компания, крутые задачи, напряженный график, шикарные условия и оплата труда… но после работы в НИИ, где ты
                    Читать дальше →
                  • Разгоняем Google PageSpeed до 100 и больше

                      Google PageSpeed

                      Простые и полезные советы, которые позволят вам максимально разогнать сайт без необходимости закапываться в метриках Google PageSpeed и Lighthouse.
                      Читать дальше →
                    • Не New Relic’ом одним: взгляд на Datadog и Atatus



                        В среде SRE-/DevOps-инженеров никого не удивишь, что однажды появляется клиент (или система мониторинга) и сообщает, что «всё пропало»: сайт не работает, оплаты не проходят, жизнь — тлен… Как бы ни хотелось помочь в такой ситуации, сделать это без простого и понятного инструмента бывает очень сложно. Зачастую проблема скрыта в коде самого приложения — нужно лишь локализовать её.

                        И в горе, и в радости…


                        Так сложилось, что мы уже весьма давно и сильно полюбили New Relic. Он был и остаётся отличным средством для мониторинга производительности приложения, а также позволяет инструментировать микросервисную архитектуру (с помощью своего агента) и многое-многое другое. И всё могло быть замечательно, если бы не изменения в ценовой политике сервиса: его стоимость с 2013 года выросла в 3+ раза. Вдобавок, с прошлого года для получения trial-аккаунта требуется общение с персональным менеджером, что затрудняет презентацию продукта потенциальному заказчику.
                        Читать дальше →
                      • Разгоняем Magento Rest API c помощью RoadRunner

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


                          Принцип работы RoadRunner заключается в удержании запущенного процесса и подкидывания в него поступающих запросов, что позволяет, по словам разработчиков, увеличить производительность приложения (иногда даже в 40 раз).


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

                          Читать дальше →
                        • Как технологии быстрой разработки могут стать источником неприятных уязвимостей

                            Безопасность на реальных примерах всегда более интересна.

                            Как тестировщик на проникновение, люблю, когда приходят проекты, построенные на фреймворках быстрой разработки (Rapid development), подобно Ruby-on-Rails, Django, AdonisJs, Express и так далее. Они позволяют очень быстро строить систему за счет того, что бизнес модели прокидываются сразу на все уровни, включая клиентский браузер. Model (модели бизнес объектов в базе) и ViewModel (контракт взаимодействия с клиентами) такие фреймворки часто объединяют вместе, чтобы избежать лишнего перекладывания из Model во ViewModel и обратно, REST сервисы автоматом генерируются. C точки зрения разработки можно просто разработать бизнес модель на сервере, и потом использовать ее сразу на клиенте, что несомненно увеличивает скорость разработки.

                            Еще раз, я не утверждаю, что вышеупомянутые фреймворки плохие, или с ними что-то не то, у них есть средства и инструменты правильной защиты, просто с ними разработчики делают больше всего ошибок. Такое встречал и на одном ASP.NET MVC проекте, в котором разработчики наделали те же уязвимости, выставляя Models вместо ViewModels…
                            Читать дальше →
                            • +15
                            • 8,7k
                            • 2
                          • Статистика сайта и своё маленькое хранилище

                              Утилита Webalizer и инструмент Google Analytics помогали мне много лет получать представление о том, что происходит на веб сайтах. Сейчас я понимаю, что они дают очень мало полезной информации. Имея доступ к своему файлу access.log, разобраться со статистикой очень просто и для реализации достаточно элементарных инструментов, таких как sqlite, html, языка sql и любого скриптового языка программирования.

                              Источником данных для Webalizer является файл access.log сервера. Так выглядят его столбики и цифры, из которых понятен лишь общий объём трафика:

                              image
                              Читать дальше →
                              • +24
                              • 4,9k
                              • 2
                            • Мотивация, делегирование и автоматизация: рецепт создания суперкоманды

                                Знакомьтесь, это Дима. Он тимлид и отвечает за техдолг и код-ревью, за планирование и технические процессы, за выполнение разработчиками задач в срок — мотивирует, нанимает и, если надо, увольняет. Дима хочет работать только над важными задачами, но работает над миллионом самых разных, постоянно думает о работе и не высыпается. У него все горит: сроки, задачи, время и самооценка. Дима в аду.



                                Знакомая ситуация? Для Алексея Катаева (deusdeorum) — точно. Алексей больше 15 лет занимается веб-разработкой как backend, frontend, fullstack-разработчик и тимлид. Сейчас Алексей работает в Skyeng и как-то раз ему удалось сделать из команды суперкоманду — лучшую в компании. И с тех пор Алексей занимается тем, что создает в Skyeng суперкоманды на постоянной основе. Как он это делает, в расшифровке доклада, который участники TeamLead Conf 2019 назвали лучшим на конференции.


                                Рекомендуем посмотреть видео, если есть время, — Алексей заряжает энтузиазмом к переменам. А статья лучше подходит, чтобы просмотреть основные тезисы задуматься о чем-то, что раньше всегда ускользало.
                                Читать дальше →
                                • +37
                                • 23,5k
                                • 5
                              • Перевод книги «Using Google Analytics with R» (Michal Brys)

                                • Tutorial
                                Электронная книга «Using Google Analytics with R» (Michal Brys) представляет собой практическое руководство по анализу данных из Google Analytics в R. Написана дата-сайентистом в 2014 году, но ничуть не теряет своей актуальности и сегодня.
                                Читать дальше →
                              • ООП в языке R (часть 1): S3 классы

                                • Tutorial

                                R — это объектно ориентированный язык. В нём абсолютно всё является объектом, начиная от функций и заканчивая таблицами.


                                В свою очередь, каждый объект в R относится к какому-либо классу. На самом деле, в окружающем нас мире ситуация примерно такая же. Мы окружены объектами, и каждый объект можно отнести к классу. От класса зависит набор свойств и действий, которые с этим объектом можно произвести.


                                image

                                Читать дальше →
                              • Парсим 25TB с помощью AWK и R

                                • Перевод

                                Как читать эту статью: прошу прощения за то, что текст получился таким длинным и хаотичным. Чтобы сэкономить ваше время, я каждую главу начинаю со вступления «Чему я научился», в котором одним-двумя предложениями излагаю суть главы.

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


                                Недавно мне поручили настроить процесс обработки большого объёма исходных последовательностей ДНК (технически это SNP-чип). Нужно было быстро получать данные о заданном генетическом местоположении (которое называется SNP) для последующего моделирования и прочих задач. С помощью R и AWK мне удалось очистить и организовать данные естественным образом, сильно ускорив обработку запросов. Далось мне это нелегко и потребовало многочисленных итераций. Эта статья поможет вам избежать некоторых моих ошибок и продемонстрирует, что же у меня в конце концов получилось.
                                Читать дальше →
                              • «Тайна третьей планеты» с улучшенной нейросетями графикой

                                  Заметил, что у Хабра есть интерес к теме улучшения графики в старых играх.

                                  Я как раз сделал мод графики для первой готики.

                                  А недавно, решил схожим методом улучшить графику в любимом с детства мультфильме —
                                  "Тайна третьей планеты".

                                  Тут кадры-сравнения.

                                  А ниже результат:


                                  Расскажите, стоит ли этим заниматься. Надо ли это кому-то? Или классику лучше не трогать?
                                  Читать дальше →