• Как мы тестируем рекламные технологии Яндекса, и как этому научиться

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

      image

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

      Начнем, конечно же, с рассказа о том, что мы тестируем. В Яндексе есть два рекламных направления: контекстная и медийная реклама.
      Читать дальше →
    • Псевдо ООП в C



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

          UPDATE: Всем привет! Сегодня с удивлением узнал от коллег об этой записи. Выяснилось, что мой аккаунт взломали — представители Хабрахабра это подтвердили и восстановили мне доступ и сейчас разбираются, как так получилось. Но я оставляю эту запись как есть, для истории.
          В комментариях уже отметились представители Яндекса: говорят, что уязвимость закрыта, ведётся аудит безопасности софта.

          И, пользуясь случаем, хочу напомнить, что у нас в Badoo уже несколько лет идет программа "Проверь Badoo на прочность" и мы платим за найденные уязвимости.


          Все вокруг постоянно рассуждают о коррупции. А я хочу рассказать Вам о случае, на коррупцию очень похожем, но в среде чистого IT-бизнеса, на государство никак не завязанного.

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

          Начну с нетехнической части.
          Читать дальше →
        • Рекомендации для начала карьерного роста

            По мотивам недавно прошедшей конференции в ЯрГУ 25 марта, на которую пришло уж очень немного народу, решил я написать небольшой мотивирующий пост для студентов и начинающих программистов/IT специалистов. Мою презентацию с доклада можно посмотреть на skydrive. Здесь же я постараюсь вкратце, на сколько это возможно, осветить этот доклад.

            Это чисто мой полет мыслей, ни на какое откровение или новизну я не претендую. Начал я его писать сразу же после конференции (месяц назад), но все как-то не мог закончить. Радует безумно, что кроме меня со студентами и начинающими разработчиками хотят делиться все. Вот только в последние пару недель замечено два топика с похожими темами (и тоже стенограммы с конференций):

            Ну и до нас не раз еще поднимали эту тему. Рекомендую читать и заряжаться всеми этими топиками.
            Читать дальше →
          • Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в степень

              Пусть мы хотим вычислить десятимиллионное число Фибоначчи программой на Python. Функция, использующая тривиальный алгоритм, на моём компьютере будет производить вычисления более 25 минут. Но если применить к функции специальный оптимизирующий декоратор, функция вычислит ответ всего за 18 секунд (в 85 раз быстрее):


              Дело в том, что перед выполнением программы интерпретатор Python компилирует все её части в специальный байт-код. Используя метод, описанный хабрапользователем SkidanovAlex, данный декоратор анализирует получившийся байт-код функции и пытается оптимизировать применяющийся там алгоритм. Далее вы увидите, что эта оптимизация может ускорять программу не в определённое количество раз, а асимптотически. Так, чем больше будет количество итераций в цикле, тем в большее количество раз ускорится оптимизированная функция по сравнению с исходной.

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


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

                Творческое мышление


                Представим задачу стоящую перед творческим мышлением в виде абстрактной двухмерной плоскости, на которой где-то находятся несколько точек приемлемых решений. Перед человеком стоит проблема найти одну из таких точек-решений, но сложность состоит в невозможности перебрать все возможные варианты, поэтому в большинстве случаем на помощь приходит озарение. Классическая схема решения творческой задачи состоит из стадий
                1) Подготовка — формулирование задачи
                2) Инкубация — временное отвлечение от задачи
                3) Озарение — появление интуитивного решения.
                Читать дальше →
              • Оригами и расширенная реальность

                  Современные технологии проникли уже почти во все сферы нашей жизни. Люди используют их для облегчения какой-либо своей деятельности, ускорения процессов взаимодействия, как необходимость, данность или приятное дополнение. Естественно, развиваются и сами технологии, среди которых — технологии взаимодействия с пользователем, которые позволяют работать с приложениями не только посредством привычных уже манипуляторов (мышки, клавиатуры и т. д.), а с привлечением веб-камеры, микрофона и др. Технология расширенной реальности используется для того, чтобы дополнять данные, полученные от пользователя (изображение с камеры), данными, полученными в ходе внутренних вычислений. Казалось бы, при чем здесь оригами?
                  Читать дальше →
                • Международный финал Imagine Cup скоро пройдет в Санкт-Петербурге

                    Этим летом в Санкт-Петербурге пройдут сразу два значимых мероприятия для IT-студентов: финал чемпионата мира по программированию ACM и международный финал студенческого конкурса Imagine Cup. На международный финал соберется около 90 студенческих команд со всей планеты, и в течение нескольких дней будут бороться за звание призеров сразу в нескольких номинациях: инновации, социальные проекты и игры, а также во множестве дополнительных номинаций.



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

                      Поиск по каталогу музыки — это задача, которую можно решать разными путями, как с точки зрения пользователя, так и технологически. Яндекс уже довольно давно научился искать и по названиям композиций, и по текстам песен. На сказанные голосом запросы про музыку мы тоже умеем отвечать в Яндекс.Поиске под iOS и Android, сегодня же речь пойдёт о поиске по аудиосигналу, а если конкретно — по записанному с микрофона фрагменту музыкального произведения. Именно такая функция встроена в мобильное приложение Яндекс.Музыки:

                      image

                      В мире есть всего несколько специализированных компаний, которые профессионально занимаются распознаванием музыкальных треков. Насколько нам известно, из поисковых компаний Яндекс стал первым, кто стал помогать российскому пользователю в решении этой задачи. Несмотря на то, что нам предстоит ещё немало сделать, качество распознавания уже сопоставимо с лидерами в этой области. К тому же поиск музыки по аудиофрагменту не самая тривиальная и освещённая в Рунете тема; надеемся, что многим будет любопытно узнать подробности.
                      Читать дальше →