• Презентация как код, или Почему я больше не пользуюсь Powerpoint-ом


      Кажется, мне довелось сделать десятки презентаций для коллег, заказчиков и публичных выступлений за мою карьеру в IT. Многие годы Powerpoint как средство изготовления слайдов оставался для меня естественным и надёжным выбором. Но в этом году ситуация качественно изменилась. С февраля по май мне довелось выступить на пяти конференциях, и слайды к докладам надо было готовить в сжатые сроки, но качественно. Встал вопрос о делегировании той части работы, что касается визуального дизайна слайдов, другим людям. Как-то раз я попытался работать с дизайнером, пересылая файлы .pptx по почте, но работа превратилась в хаос: никто не знал, какая версия слайдов «самая новая», а вёрстка «ехала» по причине различия версий Powerpoint и шрифтов на наших машинах. И я решил попробовать что-то новое. Попробовал, и с тех пор не думаю возвращаться к Powerpoint.

      Читать дальше →
    • Всё, что вы знали о word2vec, неправда

      • Translation
      Классическое объяснение word2vec как архитектуры Skip-gram с отрицательной выборкой в оригинальной научной статье и бесчисленных блог-постах выглядит так:

      while(1) {
         1. vf = vector of focus word
         2. vc = vector of focus word
         3. train such that (vc . vf = 1)
         4. for(0 <= i <= negative samples):
                 vneg = vector of word *not* in context
                 train such that (vf . vneg = 0)
      }

      Действительно, если погуглить [word2vec skipgram], что мы видим:


      Но все эти реализации ошибочны.
      Читать дальше →
      • +51
      • 7.1k
      • 5
    • Иннополис — новый IT-город в 40 километрах от Казани, амбициозный проект властей Татарстана, центр притяжения айтишников и источник многочисленных дискуссий на форумах и в соцсетях. Громкие названия программ обучения в университете и компаний — резидентов технопарка словно зазывают — приезжай. На сайте города много вакансий для продвинутых разработчиков. А что делать молодым специалистами? Что город может им дать? Как им попасть в город? Что они приобретут и чего лишатся в Иннополисе? Пройдемся по городу вместе с победителем розыгрыша турпоездки в Иннополис.
      Узнать как это было
    • Экспорт истории сообщений из Skype 4.*

      Прочитав новость об уязвимости в Skype, позволяющей угнать любой аккаунт, в процессе чтения комментариев и постов по теме наткнулся на новую для себя информацию: оказывается, начиная с версии 4.* Skype хранит информацию о пользователе в базе sqlite. Это и навело меня на мысль о том, что информацию из базы можно легко и непринужденно получить.
      Читать дальше →
    • Данные из Google Таблиц на вашем сайте

      • Tutorial


      Привет!

      Для тех, кто пользуется Google Таблицами, есть хорошая новость — ниже описано решение, которое позволит импортировать данные из таблицы на ваш сайт.

      Поехали.

      1. Открываем Таблицу Google


      Для примера, я возьму таблицу, в которую падают результаты из Google Формы.
      Читать дальше →
    • Transformer — новая архитектура нейросетей для работы с последовательностями

        Необходимое предисловие: я решил попробовать современный формат несения света в массы и пробую стримить на YouTube про deep learning.


        В частности, в какой-то момент меня попросили рассказать про attention, а для этого нужно рассказать и про машинный перевод, и про sequence to sequence, и про применение к картинкам, итд итп. В итоге получился вот такой стрим на час:



        Я так понял по другим постам, что c видео принято постить его транскрипт. Давайте я лучше вместо этого расскажу про то, чего в видео нет — про новую архитектуру нейросетей для работы с последовательностями, основанную на attention. А если нужен будет дополнительный бэкграунд про машинный перевод, текущие подходы, откуда вообще взялся attention, итд итп, вы посмотрите видео, хорошо?


        Новая архитектура называется Transformer, была разработана в Гугле, описана в статье Attention Is All You Need (arxiv) и про нее есть пост на Google Research Blog (не очень детальный, зато с картинками).


        Поехали.

        Читать дальше →
        • +58
        • 20.8k
        • 7
      • Открытая трансляция из главного зала SmartData 2017: речь не про решения — речь про эволюцию



          Как мы уже неоднократно сообщали ранее, в этом году компания JUG.ru Group решила заглянуть в будущее и разобраться, какая необходимость двум серым ящикам взаимодействовать друг с другом впустить в наш мир дозу сакральных знаний по Big Data и машинному обучению — мы сделали конференцию SmartData 2017, которая пройдёт в Питере 21 октября.

          Зачем мы собираем конференцию по Big Data и машинному обучению? Потому что не можем не собрать. И чтобы обратить в наше братство как можно большее количество разработчиков, мы традиционно открываем бесплатную онлайн-трансляцию из первого зала конференции.

          Итак, бесплатная онлайн-трансляция из главного зала SmartData 2017 начнётся 21 октября 2017 года в 9:30 утра по московскому времени. Только вы, мы и будущее. В этот раз трансляция будет доступна в 2k — доставайте ваши 4k мониторы!



          Ссылка на онлайн-трансляцию первого трека конференции SmartData 2017 и краткое описание докладов — под катом.
          Читать дальше →
        • Веселые картинки для развития мышления ребенка

          image
          Кто самый легкий?
          (иллюстрация из журнала «Веселые картинки», 1983, №4)

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

          Применение погремушек и сосок оказалось делом более-менее простым, но вот с «развивающими играми» все показалось намного интереснее. Можно ли на самом деле усиливать развитие мыслительных способностей у ребенка, и как это делать?

          Чтобы ответить на этот вопрос, я оставила карьеру ученого и пошла работать педагогом дополнительного образования. То, что вы прочитаете дальше – результат, пардон, опытов над детьми (не волнуйтесь, ни один подопытный ребенок не пострадал).
          Читать дальше →
        • Как создать свою метроидванию

          • Translation


          Метроидвания: стиль игры (2D или 3D), в котором часто присутствует исследование и где управляемый игроком персонаж получает новые способности, позволяющие ему продвигаться дальше. Такие игры часто являются экшн-адвенчурами с пересечением маршрутов движения. В них используется система «роста», открывающая важные апгрейды, необходимые для прохождения игры. Название «метроидвания» произошло от смешения слов Metroid и Castlevania, однако существуют и другие игры, в которых используется та же фундаментальная философия дизайна. К этим играм можно отнести все игры франшизы Zelda, Shadow Complex и Cave Story. На самом деле нет значительной разницы в структуре игрового процесса между играми Zelda, Metroid или Castlevania: Symphony of the Night.

          Эта статья предназначена для создателей игр, желающих взяться за трудную задачу написания игры в жанре «метроидвания». Если вы никогда раньше не делали игр, и ищете советов о том, как начать создавать игры, рекомендую познакомиться с такими инструментами, как Unity, Unreal Engine, Construct 2 или любыми другими инструментами игростроительства. Вам сначала стоит научиться делать игры, потому что я не буду учить их созданию с нуля.
          Читать дальше →
          • +40
          • 15.8k
          • 5
        • Полезные функции Google Таблиц, которых нет в Excel

          • Tutorial
          Cтатья написана в соавторстве с Ренатом Шагабутдиновым.

          image

          В этой статье речь пойдет о нескольких очень полезных функциях Google Таблиц, которых нет в Excel (SORT, объединение массивов, FILTER, IMPORTRANGE, IMAGE, GOOGLETRANSLATE, DETECTLANGUAGE)

          Очень много букв, но есть разборы интересных кейсов, все примеры, кстати, можно рассмотреть поближе в Google Документе goo.gl/cOQAd9 (файл-> создать копию, чтобы скопировать файл себе на Google Диск и иметь возможность редактирования).
          Читать дальше →
        • Dropout — метод решения проблемы переобучения в нейронных сетях

          • Translation


          Переобучение (overfitting) — одна из проблем глубоких нейронных сетей (Deep Neural Networks, DNN), состоящая в следующем: модель хорошо объясняет только примеры из обучающей выборки, адаптируясь к обучающим примерам, вместо того чтобы учиться классифицировать примеры, не участвовавшие в обучении (теряя способность к обобщению). За последние годы было предложено множество решений проблемы переобучения, но одно из них превзошло все остальные, благодаря своей простоте и прекрасным практическим результатам; это решение — Dropout (в русскоязычных источниках — “метод прореживания”, “метод исключения” или просто “дропаут”).
          Читать дальше →
          • +16
          • 23.7k
          • 4
        • Советы для инженеров от менеджера Google

            Всем привет!

            Меня зовут Лариса. Я работаю в Google и веду блог на larrr.com, где я изначально и опубликовала эту статью.

            Сегодня я предлагаю вашему вниманию статью, которая изначально была написана исключительно для внутреннего пользования Google. Мне очень понравилась, так что я связалась с автором, с ее разрешения я ее немного переделала, и получила разрешение от Google Press на публикацию. Перевод мой.

            На всякий случай – это не официальный Google документ, и Google не несет ответственности за его содержание. Он субъективный, и написан сотрудником для сотрудников.

            Советы для инженеров

            15 апреля 2013
            Отредактировано 21 мая 2014
            Переведено 31 августа 2015
            Gretta Bartels, Software Engineering Manager at Google


            Уважаемый читатель,

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

            Один из моих более опытных коллег научил меня тому, что для менеджера очень важно быть предельно предсказуемым. У менеджера должен быть какой-то набор простых правил, о которых знают все его подчиненные, и которым они могут следовать даже когда менеджера рядом нет. Поэтому моя цель – чтобы программисты в моей команде могли задать сами себе вопрос “Что бы на это сказала мой менеджер?”, и сами себе на него правильно ответить. Тогда команда сможет работать практически самостоятельно, без моего руководства. А я буду сидеть дома и кушать пирожные :).

            Вот список моих основных правил:
            Читать дальше →
          • Unreal engine 4. Sequencer вместо Matinee

              Долгие годы основным инструментом аниматора в Unreal Engine был инструмент Matinee. UE развивается и почти год назад старичок Matinee был объявлен уходящим на покой. Вместо него нам был представлен инструмент Sequencer. Этот инструмент интуитивно понятен, но, к сожалению, в попытках поискать документацию или уроки по анимации в UE4 — вы неизменно будете натыкаться на Matinee. Уроков мало. Спешу принять участие в борьбе с этим недостатком.

              В этой статье проведу краткий экскурс в основы (в том числе исторические) Sequencer. А также расскажу о паре моментов, которые почему-то отсутствуют в документации.

              Я не буду повторять официальные туторы от Epic Games. С ними вы можете ознакомиться на youtube.

              image
              Начнем с истории
              • +19
              • 12.8k
              • 5
            • Тревожная психология игр с системой «pay-to-loot»

              • Translation
              image

              «В поведенческой психологии эта система случайных вознаграждений вызывает наибольшее привыкание», – говорит Эмиль Ходзич [Emil Hodzic], управляющей клиникой лечения пристрастий к видеоиграм Video Game Addiction Treatment Clinic. «Именно она доставляет основные неприятности».

              Этот комментарий взят из интервью о микротранзакциях, привязанных к генератору случайных чисел (ГСЧ) – тому, что называется «pay-to-loot», платой за трофеи. Эта система существует вне жанров и не связана со стоимостью игры. И она становится всё более распространённой. Её можно найти в Battlefield 1, Call of Duty: Infinite Warfare, Overwatch, Counter-Strike: Global Offensive, Gears of War 4, Dirty Bomb и Hearthstone – это только несколько примеров названий игр, постоянно попадающихся на глаза при исследовании упомянутого явления.
              Читать дальше →
            • GTD и бла-бла-бла

              image Майские каникулы — хорошее время, чтобы изучить что-то. Вот я и решил полистать все статьи из хаба GTD. В виду своего большого интереса к данной теме ранее я уже знакомился с различными материалами по личностной эффективности, в том числе в свободное время почитывал книги: Стивен Кови «Семь навыков высокоэффективных людей», Питер Брегман «Правило четырех секунд: Остановись. Подумай. Сделай», Даниел Канеман «Думай медленно… решай быстро», Дэниел Гоулман «Фокус. О внимании, рассеянности и жизненном успехе».

              И что же я узнал, просмотрев такой большой объем информации, останавливаясь на самом интересном? Что там в истории от 2007 года до 2017 на 150 страницах? А ничего (почти).
              Читать дальше →
              • +23
              • 14k
              • 4
            • Всё, что вы не знали о CAP теореме

              Во время моего первого опыта работы с распределенными системами я постоянно сталкивался с некой CAP-теоремой, пришлось изрядно покопать, чтобы изучить и осознать её со всех сторон. Я не являюсь мастером баз данных, но надеюсь, что мое маленькое исследование мира распределённых систем будет полезно для обычных разработчиков. В статье я расскажу о том, что такое CAP, его проблемы и альтернативы, а также рассмотрим некоторые популярные системы баз данных через CAP призму.
              Читать дальше →
              • +28
              • 20.2k
              • 8
            • Нельзя так просто взять и расширить каналы связи

                Вот этот график показывает, как сетевая задержка влияет на максимальную скорость при использовании TCP. Проще говоря, если у вас пинг 500 миллисекунд, то при доступной полосе пропускания 6, 10, 100, 500 и т. д. мегабит трафик между двумя хостами у вас не разгонится выше одного мегабита.


                Моя команда занимается оптимизацией каналов связи. Иногда удаётся поправить всё буквально парой кликов вручную, но чаще нужно устанавливать специальные устройства, которые существенно ужимают обмен и превращают протоколы в более «оптимистичные» или «предиктивные».

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

                  image

                  Мы выложили в открытый доступ видеозаписи последних пяти лет конференции разработчиков высоконагруженных систем HighLoad++. Смотрите, изучайте, делитесь и подписывайтесь на канал YouTube.

                  Более терабайта записей и 500 видеороликов! Это всё, под катом только реклама :)

                  Перейти в канал YouTube!

                  Читать дальше →
                • Алгоритм Джонкера-Волгенанта + t-SNE = супер-сила

                  • Translation
                  До:



                  После:



                  Заинтригованы? Но обо всем по порядку.

                  t-SNE


                  t-SNE — это очень популярный алгоритм, который позволяет снижать размерность ваших данных, чтобы их было проще визуализировать. Этот алгоритм может свернуть сотни измерений к всего двум, сохраняя при этом важные отношения между данными: чем ближе объекты располагаются в исходном пространстве, тем меньше расстояние между этими объектами в пространстве сокращенной размерности. t-SNE неплохо работает на маленьких и средних реальных наборах данных и не требует большого количества настроек гиперпараметров. Другими словами, если взять 100 000 точек и пропустить их через эту волшебный черный ящик, на выходе мы получим красивый график рассеяния.
                  Читать дальше →
                  • +63
                  • 28.2k
                  • 2
                • Индексы в PostgreSQL — 1

                    Предисловие


                    В этой серии статей речь пойдет об индексах в PostgreSQL.

                    Любой вопрос можно рассматривать с разных точек зрения. Мы будем говорить о том, что должно интересовать прикладного разработчика, использующего СУБД: какие индексы существуют, почему в PostgreSQL их так много разных, и как их использовать для ускорения запросов. Пожалуй, тему можно было бы раскрыть и меньшим числом слов, но мы втайне надеемся на любознательного разработчика, которому также интересны и подробности внутреннего устройства, тем более, что понимание таких подробностей позволяет не только прислушиваться к чужому мнению, но и делать собственные выводы.

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

                    В этой части мы поговорим про разделение сфер ответственности между общим механизмом индексирования, относящимся к ядру СУБД, и отдельными методами индексного доступа, которые в PostgreSQL можно добавлять как расширения. В следующей части мы рассмотрим интерфейс метода доступа и такие важные понятия, как классы и семейства операторов. После такого длинного, но необходимого введения мы подробно рассмотрим устройство и применение различных типов индексов: Hash, B-tree, GiST, SP-GiST, GIN и RUM, BRIN и Bloom.

                    Индексы


                    Индексы в PostgreSQL — специальные объекты базы данных, предназначенные в основном для ускорения доступа к данным. Это вспомогательные структуры: любой индекс можно удалить и восстановить заново по информации в таблице. Иногда приходится слышать, что СУБД может работать и без индексов, просто медленно. Однако это не так, ведь индексы служат также для поддержки некоторых ограничений целостности.
                    Читать дальше →