• Данные всех стран, не объединяйтесь

      Радует, когда на диаграмме кроме новых созвездий находится нечто похожее на зависимость. В таком случае мы строим модель, которая хорошо объясняет связь между двумя переменными. Но исследователь должен понимать не только, как работать с данными, но и какая история из реального мира за ними лежит. В противном случае легко сделать ошибку. Расскажу о парадоксе Симпсона — одном из самых опасных примеров обманчивых данных, который может перевернуть связь с ног на голову.
      Читать дальше →
    • Оптимизация графики для веба: самое важное

      • Перевод
      Автор электронной книги — Эдди Османи, один из руководителей разработки Google Chrome

      tl;dr


      Cжатие изображений всегда должно быть автоматизировано


      Оптимизацию графики обязательно надо автоматизировать. О ней легко забыть, рекомендации меняются, да и сам контент может легко проскользнуть мимо конвейера сборки. Для автоматизации при сборке используйте imagemin или libvips. Есть и много других.

      Большинство CDN (например, Akamai) и сторонних решений вроде Cloudinary, imgix, Fastly Image Optimizer, Instart Logic SmartVision и ImageOptim API предлагают комплексные автоматизированные решения для оптимизации изображений.

      На чтение статей и настройку конфигурации вы потратите время, которое дороже оплаты их услуг (у Cloudinary есть бесплатный тариф). Но если всё-таки не хотите отдавать работу на аутсорсинг по соображениям стоимости или из-за дополнительной latency, то выбирайте приведённые выше варианты с открытым исходным кодом. Проекты Imageflow или Thumbor предлагают альтернативу на собственном хостинге.
      Читать дальше →
    • Создаем датасет для распознавания счетчиков на Яндекс.Толоке

      • Tutorial


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


      Если Вы — департамент Москвы, то выпустить ролик на федеральном канале и попросить людей прислать изображения счетчиков — не очень большая проблема. Но что делать, если Вы — маленький стартап, и сделать рекламу на телеканале не можете? Как получить 50000 изображений счетчиков в таком случае?

      Читать дальше →
    • В Германию разработчиком без в/о

        image

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

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

        • Перевод

        image


        Шаблоны проектирования — это способ решения периодически возникающих проблем. Точнее, это руководства по решению конкретных проблем. Это не классы, пакеты или библиотеки, которые вы можете вставить в своё приложение и ожидать волшебства.


        Как сказано в Википедии:


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

        image Будьте осторожны


        • Шаблоны проектирования — не «серебряная пуля».
        • Не пытайтесь внедрять их принудительно, последствия могут быть негативными. Помните, что шаблоны — это способы решения, а не поиска проблем. Так что не перемудрите.
        • Если применять их правильно и в нужных местах, они могут оказаться спасением. В противном случае у вас будет ещё больше проблем.

        В статье приведены примеры на PHP 7, но пусть вас это не смущает, ведь заложенные в шаблонах принципы неизменны. Кроме того, внедряется поддержка других языков.

        Читать дальше →
      • Байесовские многорукие бандиты против A/B тестов

          Здравствуйте, коллеги. Рассмотрим обычный онлайн-эксперимент в некоторой компании «Усы и когти». У неё есть веб-сайт, на котором есть красная кнопка в форме прямоугольника с закругленными краями. Если пользователь нажимает на эту кнопку, то где-то в мире мурлычет от радости один котенок. Задача компании — максимизация мурлыкания. Также есть отдел маркетинга, который усердно исследует формы кнопок и то, как они влияют на конверсию показов в клико-мурлыкания. Потратив почти весь бюджет компании на уникальные исследования, отдел маркетинга разделился на четыре противоборствующие группировоки. У каждой группировки есть своя гениальная идея того, как должна выглядеть кнопка. В целом никто не против формы кнопки, но красный цвет раздражает всех маркетологов, и в итоге было предложено четыре альтернативных варианта. На самом деле, даже не так важно, какие именно это варианты, нас интересует тот вариант, который максимизирует мурлыкания. Маркетинг предлагает провести A/B/n-тест, но мы не согласны: и так на эти сомнительные исследования спущено денег немерено. Попробуем осчастливить как можно больше котят и сэкономить на трафике. Для оптимизации трафика, пущенного на тесты, мы будем использовать шайку многоруких байесовских бандитов (bayesian multi-armed bandits). Вперед.

          Читать дальше →
        • Как проверить причинную связь без эксперимента?

          • Перевод


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

          Действительно ли пациентам, тестирующим новое лекарство, становится лучше из-за лекарства, или они все все равно бы выздоровели? Ваши продавцы действительно эффективны или же они говорят с теми клиентами, которые и так готовы совершить покупку? Действительно ли Сойлент (или рекламная кампания, которая обойдётся фирме в миллион долларов) стоит вашего времени?
          Читать дальше →
          • +26
          • 13,5k
          • 7
        • Различия между MVVM и остальными MV*-паттернами

          • Перевод


          От переводчика:
          Уже опубликовано много материалов по MVC и его производным паттернам, но каждый понимает их по-своему. На этой почве возникают разногласия и холивары. Даже опытные разработчики спорят о том, в чем отличие между MVP, MVVM и Presentation Model и что должен делать тот или иной компонент в каждом паттерне. Ситуация усугубляется еще и тем, что многие не знают истинную роль контроллера в классическом варианте MVC. Предлагаю вашему вниманию перевод хорошей обзорной статьи, которая многое проясняет и расставляет всё по своим местам.
          Разобраться в MV-паттернах
        • 7 правил создания красивых интерфейсов

          • Перевод


          Недавно мы в «Я люблю ИП» закончили курсы по дизайну от trydesignlab.com. И это одна из самых важных статей, которую нам посоветовал ментор в процессе обучения. Именно поэтому мы решили её перевести. Посмотреть все наши работы с курсов можно в ВКонтакте по тэгу #design101@iloveip.

          Вступление


          Сначала о главном. Это руководство не для всех. Это руководство прежде всего для:
          • разработчиков, которые хотят уметь делать хорошие интерфейсы для себя, если вдруг прижмёт;
          • UX-дизайнеров, которые знают, что хороший UX-дизайн продаётся лучше в красивой UI-упаковке.

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

          А пока давайте я расскажу, что вы найдёте в этой статье.

          Читать дальше →
        • Ищем уязвимости с помощью google

            Любой поиск уязвимостей на веб-ресурсах начинается с разведки и сбора информации.
            Разведка может быть как активной — брутфорс файлов и директорий сайта, запуск сканеров уязвимостей, ручной просмотр сайта, так и пассивной — поиск информации в разных поисковых системах. Иногда бывает так, что уязвимость становится известна еще до открытия первой страницы сайта.

            Читать дальше →
          • Топ-10 data mining-алгоритмов простым языком

            • Перевод


            Примечание переводчика: Мы довольно часто пишем об алгоритмической торговле (вот, например, список литературы по этой теме и соответствующие аналитические материалы) и API для создания торговых роботов, сегодня же речь пойдет непосредственно об алгоритмах, которые можно использовать для анализа различных данных (в том числе на финансовом рынке). Материал является адаптированным переводом статьи американского раработчика и аналитика Рэя Ли.

            Сегодня я постараюсь объяснить простыми словами принципы работы 10 самых эффективных data mining-алгоритмов, которые описаны в этом докладе.

            Когда вы узнаете, что они собой представляют, как работают, что делают и где применяются, я надеюсь, что вы используете эту статью в качестве отправной точки для дальнейшего изучения принципов data mining.
            Читать дальше →
            • +43
            • 116k
            • 8
          • Про модель, логику, ООП, разработку и остальное

              Часто ли вы задумываетесь – почему что-то сделано так или иначе? Почему у вас микросервисы или монолит, двухзвенка или трехзвенка? Зачем вам многослойная архитектура и сколько у вас вообще слоев? Что такое бизнес-логика, логика приложения, презентационная логика и почему все так разделено? Посмотрите на свое приложение – как оно вообще спроектировано? Что в нем и где находится, почему это сделано именно так?
              Потому что так написано в книжках или так говорят авторитетные личности? Какие ВАШИ проблемы решает тот или иной подход/паттерн?
              Даже то, что на первый взгляд кажется очевидным, порой бывает очень сложно объяснить. А иногда, в попытке объяснения, приходит понимание того, что очевидные мысли были и вовсе ошибочны.
              Давайте попробуем взять какой-нибудь пример и изучить на нем эти вопросы со всех сторон.
              Читать дальше →
            • 9 анти-паттернов, о которых должен знать каждый программист

              • Перевод
              В программировании самокритика – это умение распознать контрпродуктивные решения в дизайне, коде, процессах и поведении. Знание о вредных шаблонах решений полезно для программиста. В этой статье я опишу анти-паттерны, которые я встречал на своём личном опыте время от времени.

              Некоторые из них напрямую или косвенно связаны с когнитивными искажениями человеческого сознания – в этих случаях я даю ссылки на соответствующие вики-статьи. Также интересен список известных когнитивных искажений.

              1 Преждевременная оптимизация


              В 97% случаев надо забыть об эффективности малых частей программы: преждевременная оптимизация – корень всех зол. Но в 3% случаев об оптимизации забывать не нужно.
              Дональд Кнут

              Хотя никогда зачастую лучше, чем прямо сейчас
              Тим Питерс, Зен языка Python


              Что это

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

              Почему плохо

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

              Как избежать

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

                Посмотрите на это фото.



                Это совершенно обычная фотография, найденная в Гугле по запросу «железная дорога». И сама дорога тоже ничем особенным не отличается.

                Что будет, если убрать это фото и попросить вас нарисовать железную дорогу по памяти?

                Если вы ребенок лет семи, и никогда раньше не учились рисовать, то очень может быть, что у вас получится что-то такое:
                Осторожно, тяжелые гифки
              • Создание 3D сканера из вебкамеры, лазера, и еще кучки радиодеталей

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

                image
                Читать дальше →
              • Искусственный интеллект и Почему мой компьютер меня не понимает?

                • Перевод


                Гектор Левекwiki утверждает, что его компьютер тупой. И ваш тоже. Siri и голосовой поиск Google умеют понимать заготовленные предложения. Например «Какие фильмы будут показывать неподалёку в 7 часов?» Но что насчёт вопроса «Может ли аллигатор пробежать стометровку с барьерами?» Такой вопрос никто раньше не задавал. Но любой взрослый может найти ответ на него (Нет. Аллигаторы не могут участвовать в беге с барьерами). Но если вы попытаетесь ввести этот вопрос в Google, то получите тонны информации о спортивной команде по лёгкой атлетике Florida Gators. Другие поисковые системы, такие как Wolfram Alpha, тоже не способны найти ответ на поставленный вопрос. Watson, компьютерная система выигравшая викторину «Jeopardy!», вряд ли покажет себя лучше.
                Читать дальше →
              • Как мы делали кафе-клуб с полным расчётом на посетителей из сети

                  В топике – история оффлайного проекта, полностью ориентированного на посетителей из сети. Сам бизнес для Хабра не очень тематичен, но практически всё в его подготовке и развитии делалось с помощью сетевых механик и удалённо из другого города. Эта история будет интересна ещё и как пример того, как выполняется оценка проекта перед запуском и как делается выбор ниши.


                  У нас есть печеньки

                  Вводная


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

                    image

                    По роду занятий я часто общаюсь с различными русскими и западными командами. Очень частый вопрос — есть ли какая-нибудь специфика в работе наших и как это влияет на разработку?

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

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

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

                    Я буду приводить влияние разных факторов в порядке их важности и силы влияния. Чем выше — тем сложнее это изменить и тем больший эффект это оказывает.
                    Читать дальше →
                  • Хабрахабр: лайфхаки на каждый день

                      imageНаверное, на любом сайте есть свои маленькие секреты и хитрости, которые позволяют сделать пользование сайтом более комфортным и удобным. Они не самоочевидны и известны не всем, но те, кто их знают, могут достигнуть желаемого результат с меньшими усилиями или более простым и быстрым способом.
                      В этой теме предлагаю поделиться теми приёмами, которые вы используете на Хабре.
                      У меня их всего два, и оба кажутся мне нужными и востребованными.
                      Читать дальше →
                    • Изображения: форматы и сжатие (2/3)



                        И снова здравствуйте! После перерыва в месяц продолжаем экскурсию по форматам изображений и алгоритмам сжатия. Где мы остановились? Ах, да, восьмидесятые годы.
                        Читать дальше →