• Рекурентная нейронная сеть в 10 строчек кода оценила отзывы зрителей нового эпизода “Звездных войн”

      Hello, Habr! Недавно мы получили от “Известий” заказ на проведение исследования общественного мнения по поводу фильма «Звёздные войны: Пробуждение Силы», премьера которого состоялась 17 декабря. Для этого мы решили провести анализ тональности российского сегмента Twitter по нескольким релевантным хэштегам. Результата от нас ждали всего через 3 дня (и это в самом конце года!), поэтому нам нужен был очень быстрый способ. В интернете мы нашли несколько подобных онлайн-сервисов (среди которых sentiment140 и tweet_viz), но оказалось, что они не работают с русским языком и по каким-то причинам анализируют только маленький процент твитов. Нам помог бы сервис AlchemyAPI, но ограничение в 1000 запросов в сутки нас также не устраивало. Тогда мы решили сделать свой анализатор тональности с блэк-джеком и всем остальным, создав простенькую рекурентную нейронную сеть с памятью. Результаты нашего исследования были использованы в статье “Известий”, опубликованной 3 января.



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

        Картотека – старый инструмент для генерации новых идей

        image

        Среди инструментов работы с информацией и развития творческого мышления одним из самых годных для меня оказалась весьма архаичная штука. Самое универсальное и четкое описание этого инструмента я встречал у гуру отечественного тайм-менеджмента, товарища Глеба Архангельского, но сама идея мелькает в ноосфере то здесь, то там, начиная, наверное, с писателей еще века 18-го. Называется он (у Архангельского) творческой картотекой.

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

        Теперь подробнее
        Читать дальше →
        • +19
        • 15k
        • 5
      • «Eppur si muove!»* или Работаем с таймзонами в Python

        • Перевод
        На нашей планете Земля, в одно и то же время, в разных географических точках планеты может быть разное время суток. Это следствие того, что наш мир — вращающийся геоид, а не плоский диск, а что наша Солнечная система имеет только одну звезду — Солнце. Ещё со школы всем известно о часовых поясах, и все мы встречались с их проявлениями в реальной жизни («Московское время – 15 часов, в Петропавловске-Камчатском – полночь», джетлаг при дальних перелётах, и т.д.). К несчастью, часовые пояса всего лишь частично основаны на физических особенностях нашего мира, и при компьютерных вычислениях приходится учитывать другие, порой неожиданные, нюансы.

        * «И всё-таки она вертится!» — крылатая фраза, которую якобы произнёс Галилео Галилей, покидая процесс инквизиции после отречения от своего убеждения в том, что Земля вращается вокруг Солнца. В нашем случае, увы, это вращение приводит ко всем этим «замечательным» проблемам с часовыми поясами.

        Что общего у этой статьи и Галилео? Да, в общем-то, ничего. Боюсь, что если бы наш мир был центром вселенной, нам всё равно пришлось бы иметь дело с таймзонами. Будем считать заголовок моей оплошностью, которую я уже не могу исправить (хотя я могу).
        Читать дальше →
      • Основы фотографии: выдержка, диафрагма, ГРИП, светочувствительность

          Введение


          Часто люди приобретают цифровые зеркальные камеры в погоне за качеством снимков, но при этом не имеют представления о технических моментах съемки. В основном это касается тех, кто до зеркалки держал в руках исключительно компактные фотоаппараты и пользовался автоматическими режимами (которые, к слову, весьма продвинутые в современных камерах).

          В результате у кого-то возникает разочарование в камере и фотографии в целом, а другие проявляют терпение и пытаются освоить премудрости фотографии, чтобы раскрыть весь потенциал камеры с полноценным (или почти полноценным) сенсором.

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



            Доброго времени суток, Хабр.

            В последние годы, лично я, наблюдаю весьма сомнительную тенденцию проповедовать «успешный» образ жизни. Истории успеха, как и их опровержения, льются на нас как из рога изобилия: Интернет пестрит статьями и книгами по мотивации, рекламой тренингов «как стать успешным сферическим человеком в вакууме», «как правильно начать свой стартап и стать вторым Гейтсом\Джобсом\Цукенбергом» (нужное подчеркнуть), ТВ-каналы трубят об очередном появлении очередной компании, основанной в гараже или интернет-кафе, на IPO и о стремительном взлете акций в первый же день торгов.

            Люди сознательно стремятся добиться каждый своих целей. Кто-то штудирует литературу, другие предпочитают использовать веб-сервисы, такие как SmartProgress и самостоятельно определять, как, что и когда делать, попутно наблюдая за другими людьми. Каждый хочет стать богатым, «успешным», знаменитым. Это называют счастьем.
            Читать дальше →
          • Лучшие плагины для Sublime Text

              WebInspector


              Мощный инструмент для дебаггинга JavaScript, полноценный инспектор кода для Sublime. Фичи: установка брейкпоинтов прямо в редакторе, показ интерактивной консоли с кликабельными объектами, остановка с показом стек трейса и управление шагами дебаггера. Все это работает на ура! А еще есть Fireplay от Mozilla, который позволяет подключаться к Firefox Developer tools и максимально простой дебаггер JSHint.



              Читать дальше →
            • Немного воскресной инфографики

                Время потраченное на просмотр клипа Gangnam Style


                Самый дешевый, и почти никому ненужный товар в наше время – образование. Мы можем научиться через интернет почти любому делу, но вместо этого смотрим видео, как коты смешно падают с дивана. То, что было доступно раньше лишь избранным, есть почти у всех.


                C июля 2012 года на просмотр Gangnam Style люди потратили 140 млн человеко-часов или 16 000 лет. The Economist опубликовал инфографику, демонстрирующую то, что можно было сделать за это время.


                График сна величайших умов в истории

                Читать дальше →
              • Интересно и познавательно: наблюдаем вехи истории космонавтики с Orbiter

                • Tutorial


                Животные и люди умеют обучаться, играя. В самом деле, что может быть лучше — и интересно, и познавательно. Компьютерные игры не являются исключением, с некоторыми из них можно учиться. Я очень удивился, когда, поискав по Хабру, узнал, что космический симулятор Orbiter всего пару раз мельком упоминался здесь. Бесплатный космический симулятор с открытой для аддонов архитектурой и честной ньютоновской физикой оказался незаслуженно обойдённым вниманием. Наверное, из-за своей требовательности к начинающему игроку.
                Как мы будем с этим бороться, и чему учиться?
              • Как накормить мозг программиста… или feed your brain

                Введение


                Из всех наслаждений, отпущенных человеку в жизни,
                самое изысканное — шевелить мозгами.
                (Борис Акунин)


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

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

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

                  image

                  Предлагаю вашему вниманию первую часть перевода книги «Mature optimization» Карлоса Буэно о принципах оптимизации высоконагруженных проектов.

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

                  Книгу стоит прочесть, если вы:

                  1. Хотите повысить производительность своего проекта, но не знаете с чего начать.
                  2. Хотите повысить производительность своего проекта, но боитесь все сломать.
                  3. Не знаете о подводных камнях оптимизации производительности.
                  4. Давно хотели настроить мониторинг проекта, но не уверены что именно стоит мониторить.
                  5. У вас есть система мониторинга, но она не сообщает о проблемах заранее.

                  Читать дальше →
                • Средство для очистки мыслей

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

                    Сделал веб страничку для упрощения процесса — каждая напечатанная буква пропадает через 10 секунд. Ничего никуда не сохраняется.

                    morula.ru/clearYourMind

                    Надеюсь кому-либо тоже будет полезно.

                    Спасибо за внимание.
                    Читать дальше →
                  • Структуры данных в картинках. LinkedHashMap

                      Привет Хабрачеловеки!

                      После затяжной паузы, я попробую продолжить визуализировать структуры данных в Java. В предыдущих статьях были замечены: ArrayList, LinkedList, HashMap. Сегодня заглянем внутрь к LinkedHashMap.



                      Из названия можно догадаться что данная структура является симбиозом связанных списков и хэш-мапов. Действительно, LinkedHashMap расширяет класс HashMap и реализует интерфейс Map, но что же в нем такого от связанных списков? Давайте будем разбираться.

                      Tell me more!
                    • Как вращается камера в 3D играх или что такое матрица поворота

                        В этой статье я кратко расскажу, как именно преобразуются координаты точек при повороте камеры в 3D играх, css-преобразованиях и вообще везде, где есть какие-то вращения камеры или предметов в пространстве. По совместительству это будет кратким введением в линейную алгебру: читатель узнает, что такое (на самом деле) вектор, скалярное произведение и, наконец, матрица поворота.
                        Читать дальше →
                      • Как стать независимым разработчиком игр

                        • Перевод
                        Примечание от переводчика: если вам позволяет знание английского языка, то я настоятельно рекомендую ознакомиться с оригиналом. Её автор — один из основателей студии Mode 7, которые выпустили Frozen Synapse. Статья очень большая по объёму текста, поэтому, если у вас не получится осилить её за 1 подход, я бы предложил отложить на потом, и продолжить в другой день.

                        Мне, как разработчику игр, который старается «копать» в этом направлении уже в течении, наверно, 5 лет или больше, и у которого не получилось добиться хоть сколько-нибудь значимого финансового успеха, статья показалась безумно полезной, т.к. вправляет мозги и делится трезвым взглядом на то, как должна функционировать команда или отдельный разработчик в этом жестоком (но, довольно честном) мире разработки игр.

                        Ниже будет перевод статьи.

                        Читать дальше →
                        • +39
                        • 59,7k
                        • 9
                      • Управление воздушным движением — взгляд изнутри

                          Как уже писал в предыдущем хабрапосте, я получил работу программиста в области управления воздушным движением и хотел бы немного разбавить засилие мобильных и десктопных приложений и познакомить хабровчан с основами УВД (не путать «управление воздушным движением» с «управлением внутренних дел»), некоторыми особенностями и решаемыми задачами, надеюсь это будет интересно.

                          Этот пост будет содержать, в основном, теорию, которая может быть прочитана в Википедии, нагуглена или вычитана в какой-нибудь книге. Однако я постараюсь обобщить и наглядно показать, какие задачи приходится решать на земле людям и компьютерам, пока вы едите содержимое своего ланчбокса на высоте 10000 метров. Если вы все еще хотите узнать, для чего это вообще нужно — добро пожаловать под кат.
                          Читать дальше →
                        • Дюжина логических задач с собеседований

                            image

                            Не знаю, как у вас, но у меня любимая часть интервью — логические задачи.
                            Довелось пройти немало собеседований на вакансию разработчика, поэтому набралась небольшая коллекция.
                            Спешу поделиться с вами!

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



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

                              Что первично в кино — сюжет или игра актёров? Спецэффекты или мастерство оператора-постановщика? Безусловно, все эти составляющие крайне важны. Но, всё же, некоторые фильмы стали знамениты именно благодаря использованным спецэффектам. И пусть сегодня некоторые из них выглядят обыденно, а некоторые наивно, в своё время они стали вехами в кинематографе. Конечно, вообще таких фильмов было много. Но мало кто может похвастаться спецэффектами, исключительно благодаря которым стало возможно рассказать задуманную историю. Такими спецэффектами, которые не просто вызывали вау-эффект, а действительно брали за душу. Которые заставляли сопереживать главному герою, проникаться ситуациями, в которых он оказывался. Давайте вспомним о некоторых из таких знаковых фильмов.
                              Читать дальше →
                            • 15 малоизвестных команд Linux

                              • Перевод
                              Каждому разработчику в определенной степени следует овладеть навыками работы в терминале. Физически находиться у компьютера не всегда возможно, поэтому приходится подключаться удаленно. И действительно, GUI-программы вполне могут с этим с правиться, но зачастую они работают медленнее, чем получение доступа через тот же терминал (в конце концов, это лишь обмен текстом).
                              Читать дальше →
                            • Изучение TDD через интенсивную практику

                              • Перевод
                              Примечание от переводчика: мой опыт знакомства с разработкой через тестирование во многом схож с тем, что описывает автор (хотя и начался на несколько лет позже). Я начинал изучать TDD самостоятельно, на работе, исправляя баги и создавая новые модули с нуля. Эффект от применения TDD произвёл на меня настолько мощное впечатление, что породил желание делиться умением применять эту технику с другими. Я также проводил Code Retreat-ы внутри и вне своей компании. И я вижу те же проблемы в своих тренингах — очень сложно взять и «впихнуть» понимание сути TDD в чужие головы.

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


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

                              TL;DR?


                              Многие сторонники TDD рекомендуют подход под названием «интенсивная практика», но я догадываюсь, что у Вас не будет возможности тратить много рабочего времени на практику. Я советую людям «применять TDD осознанно», но до сих пор не знал хорошего способа достаточно доступно объяснить смысл этих слов, что снижало ценность моего совета. Вы можете начать применять оба подхода (интенсивный и осознанный) одновременно, если начнёте исправлять баги через тесты. Даже если Вы до сих пор не умеете проектировать софт на экспертном уровне, то, по крайней мере, Вы уже можете учиться как эксперт. И исправление багов через тесты даст Вам естественную и не слишком рискованную возможность делать это. У Вас будет возможность практиковаться в TDD усердно и осознанно. Если у Вас есть возможность исправлять баги на работе в одиночку, то Вы можете использовать эти практики, не привлекая лишнего внимания, которое обычно возникает при разговорах об «интенсивной практике». Просто говорите всем, что Вы исправляете баги. Это всем понравится.

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

                              Подробности
                              • +11
                              • 24,8k
                              • 9
                            • Перевод учебника по алгоритмам



                                Рад сообщить, что вышел перевод отличнейшего учебника Дасгупты, Пападимитриу, Вазирани «Алгоритмы», над которым я работал последние несколько лет. В книге многие алгоритмы объяснены гораздо короче и проще, чем в других учебниках: с одной стороны, без излишнего формализа, с другой — без потери математической строгости. Откройте книгу на каком-нибудь известном вам алгоритме и убедитесь в этом. =)

                                В общем, угощайтесь: печатный вариант перевода, электронный вариант перевода (PDF), печатный вариант оригинала, электронный вариант оригинала (PDF).
                                Читать дальше →