• Простая игра на SFML

    • Tutorial
    Будем делать игру «пятнашки» на языке C++ с использованием библиотеки SFML. Пятнашки — это широко известная головоломка, которая выглядит следующим образом:


    На игровом поле размером 4х4 случайным образом расположены 15 плашек с номерами от 1 до 15 и одно свободное место. Передвигать плашки можно только по одной и только на свободное место. Целью игры является выстроение плашек на игровом поле в порядке, соответствующем их номерам.

    Итак, начнем.
    Читать дальше →
    • +8
    • 11.1k
    • 3
  • Как сделать из нейросети журналиста, или «Секреты сокращения текста на Хабре без лишних слов»

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

      Это одна из ключевых и классических задач Natural Language Processing (NLP). Она заключается в создании алгоритма, который принимает на вход текст и на выходе выдаёт его сокращённую версию. Причем в ней сохраняется корректная структура (соответствующая нормам языка) и правильно передается основная мысль текста.

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

      К моему удивлению, на Хабре оказалось совсем немного статей о саммаризации, поэтому я решил поделиться своими исследованиями и результатами в этом направлении. В этом году я участвовал в соревновательной дорожке на конференции «Диалог» и ставил эксперименты над генераторами заголовков для новостных заметок и для стихов с помощью нейронных сетей. В этом посте я вначале вкратце пробегусь по теоретической части саммаризации, а затем приведу примеры с генерацией заголовков, расскажу, какие трудности возникают у моделей при сокращении текста и как можно эти модели улучшить, чтобы добиться выдачи более качественных заголовков.
      Читать дальше →
    • Яндекс.переводчик для Linux на Python+GTK3

        Приветствую хабражителей!


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


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


        image


        Вначале был translate-shell...

        Читать дальше →
        • +11
        • 4.2k
        • 7
      • Эволюционирующие клеточные автоматы



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

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



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

            В данной статье описывается процесс синтаксического анализа предложения русского языка с использованием контекстно-свободной грамматики и алгоритма LR-анализа.

            Обработка естественного языка — общее направление искусственного интеллекта и математической лингвистики. Оно изучает проблемы компьютерного анализа и синтеза естественных языков.

            В общем, процесс анализа предложения естественного языка выглядит следующим образом: (1) разбиение предложения на синтаксические единицы — слова и словосочетания; (2) определение грамматических параметров каждой единицы; (3) определение синтаксической связи между единицами. На выходе — абстрактное дерево разбора.
            Читать дальше →
          • «САПР для всех, даром, и пусть никто не уйдет…» или первые шаги в программировании FreeCAD на Python

            • Tutorial
            Возможно, вам уже ранее попадались мои заметки по первым шагам в программировании САПР на примере NanoCAD.

            Надо отметить, что для человека не умеющего программировать и знающего САПР на уровне «электронного кульмана» это было удивительное приключение. Однако, NanoCAD это все же в первую очередь коммерческий продукт. Его бесплатная версия не обновлялась, уже около шести лет и порядком устарела в плане возможностей для разработки.

            А ведь так хотелось, чтобы как в одной замечательной повести: «Счастье для всех, даром, и пусть никто не уйдёт обиженный!» . Поэтому было принято решение, внять совету боевого товарища DrZugrik и установить себе FreeCAD.

            Итак, по горячим следам пишу для вас материал, всего за один день я узнал, как подружить эту САПР с Anaconda, написал на Python простенький скрипт, который рисует квадратик с текстом и протестировал его на работоспособность в Windows и Linux. О чем я собственно готов вам по шагам рассказать и показать, чтобы вы тоже могли это сделать.

            Хотите поближе познакомиться с очаровательной парочкой Python и FreeCAD? Тогда милости прошу под кат.


            Читать дальше →
            • +22
            • 10.9k
            • 9
          • Избегаем тригонометрии

            • Translation

            Вступление


            Мне кажется, что нам надо использовать меньше тригонометрии в компьютерной графике. Хорошее понимание проекций, отражений и векторных операций (как в истинном значении скалярного (dot) и векторного (cross) произведений векторов) обычно приходит с растущим чувством беспокойства при использовании тригонометрии. Точнее, я считаю, что тригонометрия хороша для ввода данных в алгоритм (для понятия углов это интуитивно понятный способ измерения ориентации), я чувствую, что что-то не так, когда вижу тригонометрию, находящуюся в глубинах какого-нибудь алгоритма 3D-рендеринга. На самом деле, я думаю, что где-то умирает котенок, когда туда закрадывается тригонометрия. И я не так беспокоюсь о скорости или точности, но с концептуальной элегантностью я считаю… Сейчас объясню.
            Читать дальше →
          • Игрушка ГАЗ-66 на пульте управления. Часть 1

            main

            Несколько последних лет хотелось заполучить игрушку на пульте управления и обязательно с видео. Но не купить готовую, а сделать самому. И в итоге заказал себе вот такую игрушку, с простенькой системой управления, но большим потенциалом для модернизации. На все работы от старта и до почти завершения ушло ~ 9 месяцев. Большую часть этого времени ждал комплектующие из Китая.
            Статью пишу по большей части для себя, что бы в дальнейшем не забыть что делал, как, зачем и почему.
            Она будет содержать две основные части: аппаратную и программную и возможно еще одну часть про компоновку железа. Сначала опишу аппаратную часть, из чего собирал, с какими проблемами сталкивался и как их решал.

            Читать дальше →
          • Каково это — слушать код со скоростью 1000 слов в минуту

              История маленькой трагедии и больших побед очень хорошего разработчика, которому нужна помощь




              В Дальневосточном Федеральном Университете есть центр проектной деятельности — там магистры и бакалавры находят для себя инженерные проекты, у которых уже есть заказчики, деньги и перспективы. Еще там проводятся лекции и интенсивы. Опытные специалисты рассказывают о современных и прикладных вещах.

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

              Преподавателем был парень в темных очках, с модной прической, в шарфе, общительный и слишком уверенный — особенно для 21-летнего студента второго курса. Его зовут Евгений Некрасов, он поступил в ДВФУ всего два года назад.
              Читать дальше →
            • «Аполлон» против лунного заговора: что реальнее осуществить?

              Пролог


              image
              Астронавты Олдрин (слева) и Армстронг в Хьюстоне во время тренировки выхода на лунную поверхность (22 апреля 1969 года)

              Знаете, кого мне всегда напоминали сторонники теорий заговора? Назойливых шахматистов.

              Да-да, бывают такие, которые продолжают ходить королем против вашей ладьи. И вы теряетесь, разинув рот от неожиданности: он что, не читал стандартных эндшпилей и не знает своей судьбы — мат не позднее 16-го хода? Что происходит? Он надеется, что вы забыли, как это делается, что вам станет скучно и вы бросите играть?

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

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

              А что же тогда делать? Да все очень просто. Надо замолчать. А затем попросить теоретика заговора рассказать все с начала. Нет-нет, не пересказывать теорию, которая обычно является «сутью произошедшего». А описать. Все. Как было сделано. Подробно. С самого начала.

              Давайте так и сделаем на примере лунного заговора, который живуч на фоне миссий LRO, Opportunity, Rosetta и сегодняшних ежедневных снимков все приближающегося Плутона.
              Читать дальше →
            • Hello, World! Глубокое погружение в Терминалы


                На написание данной статьи меня вдохновила статья об анализе Сишного printf. Однако, там был пропущен момент о том, какой путь проходят данные после того, как они попадают в терминальное устройство. В данной статье я хочу исправить этот недочет и проанализировать путь данных в терминале. Также мы разберемся, чем отличается Terminal от Shell, что такое Pseudoterminal, как работают эмуляторы терминалов и многое другое.

                Читать дальше →
              • Мелкая питонячая радость #7: три штуки по цене одной — консольная анимация, алгоритмы и отладка

                  На этой неделе достаточно крупных мелких радостей не нашлось, зато нашлись 3 совсем мелкие мелкие радости.


                  termtosvg


                  Сейчас принято снабжать свои библиотеки и репо на github красивой анимацией, показывающей консоль с живой демкой вашего творения.


                  image


                  Традиция, бесспорно, хорошая и правильная. Только записывать такие анимации бывает трудно/лень/некогда. Авторы termtosvg пристрелили всех зайцев одим выстрелом и дали программистам прекрасную штуку для записи консольных демок.

                  Читать дальше →
                  • +31
                  • 7.5k
                  • 9
                • Пионеры новых технологий: Вадим Арцев рассказал, как перестал быть незрячим



                    В пятницу 28 июня первые пользователи технологии vOICe vision встретились со слабовидящими людьми, чтобы рассказать о новом способе восприятия пространства, которому они научились благодаря сенсорному замещению.

                    Трое молодых людей первыми в России овладели навыками Звукового Зрения и смогли вновь видеть мир, оставаясь слепыми. Вадим, Руслан и Ислам – так зовут основателей и первых членов «Клуба Звукового Зрения». У них разные взгляды на жизнь и разные истории. Но то, что их объединяет заметно каждому.

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

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

                      Привет, Хабравчане!

                      Для тех, кто не знает, в своё время я взял на себя ответственность перевести испанский курс Introduccion Al Reversing Con Ida Pro Desde Cero под авторством Ricardo Narvaja на русский язык. Прошло 2,5 года и теперь я могу смело сказать, что курс переведен на русский язык. На данный момент это 67 частей. Но это ещё не всё. В конце 67 части, мы можем увидеть, что нас ждёт продолжение. Сейчас же я бы хотел рассказать, про то как я переводил курс, с чем столкнулся при переводе, что узнал и как всё это было.
                      Читать дальше →
                    • Музей DataArt. Катушки с ОС 6.1 для ЕС ЭВМ



                        Очередной экземпляр из нашей коллекции — магнитные ленты с операционной системой для серии советских компьютеров ЕС ЭВМ.

                        Идею универсального подхода к разработке вычислительной техники в министертве радиопромышленности СССР обсуждали еще в середине 1960-х годов. В 1968 году году уже началось проектирование серии «Ряд», которая подразумевала создание ЭВМ единой архитектуры и моделируемой под заказчика мощности.
                        Читать дальше →
                      • Где взять аудиосемплы для ваших проектов: подборка из девяти тематических ресурсов

                          В прошлый раз мы делали подборку ресурсов с полноценными музыкальными композициями для приложений, игр или видео. Сегодня рассказываем о площадках с библиотеками коротких звуков и семплов, распространяемых в основном по лицензиям класса Creative Commons.

                          Читать дальше →
                          • +29
                          • 7.7k
                          • 5
                        • Луч света в тёмном царстве: как технологии возвращают утраченное зрение

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



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

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

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

                            Следуя этому правилу многие IT-компании, идущие в авангарде научно-технического прогресса, создают технологии и решения, которые позволяют людям с инвалидностью преодолевать свои ограничения. Об этой интересной грани прогресса мы сегодня и поговорим.
                            Читать дальше →
                          • Мои маленькие реле: Тройной Brainfuck, или что такое безумие


                              Рис.1: Релейный компьютер BrainfuckPC на фоне его автора

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

                              В прошлых сериях:


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

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




                                Не так давно я прочёл фантастический роман «Задача трёх тел» Лю Цысиня. В нём у одних инопланетян была проблема — они не умели, с достаточной для них точностью, вычислять траекторию своей родной планеты. В отличии от нас, они жили в системе из трёх звёзд, и от их взаимного расположения сильно зависела «погода» на планете — от испепеляющей жары до леденящего мороза. И я решил проверить, можем ли мы решать подобные задачи.
                                Читать дальше →