• Искуственный интеллект с нечеткой логикой в аркадной игре

    Введение или как я писал свой первый ИИ


    Доброго времени суток. Я написал свой первый искуственный интеллект много лет назад, когда учился в колледже. Тогда это был ИИ для змейки в необычной для змеек игре — Serpent's Madness (ссылка ведет на мой сайт игры), в которой последние могут двигаться в любом направлении. Скриншот ниже демонстрирует это:



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

      Нет, не здоровенного. А просто удобного будильника для Андроида. После долгих поисков на Маркете я так и не смог найти будильник, который мне было бы приятно использовать. Поэтому в этой статье я буду проектировать будильник таким, каким бы я сам хотел его видеть.

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

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

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

      И в-третьих, в нём нет никаких математических примеров для отключения звонка. Так что для любителей математики он не подойдёт.

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

      Очередной велосипедЧитая Хабр в течении последних двух лет, я видел только несколько попыток разработки ОС (если конкретно: от пользователей pehat и iley (отложено на неопределённый срок) и Igor1024 (не заброшено, но пока больше походит на описание работы защищённого режима x86-совместимых процессоров, что бесспорно тоже необходимо знать для написания ОС под x86); и описание готовой системы от alman (правда не с нуля, хотя в этом нет ничего плохого, может даже наоборот)). Мне почему-то думается, что почти все системные (да и часть прикладных) программисты хотя бы раз, но задумывались о написании собственной операционной системы. В связи с чем, 3 ОС от многочисленного сообщества данного ресурса кажется смешным числом. Видимо, большинство задумывающихся о собственной ОС так никуда дальше идеи и не идёт, малая часть останавливается после написания загрузчика, немногие пишут куски ядра, и только безнадёжно упёртые создают что-то отдалённо напоминающее ОС (если сравнивать с чем-то вроде Windows/Linux). Причин для этого можно найти много, но главной на мой взгляд является то, что люди бросают разработку (некоторые даже не успев начать) из-за небольшого количества описаний самого процесса написания и отладки ОС, который довольно сильно отличается от того, что происходит при разработке прикладного ПО.

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

      Читать дальше →
    • Windows 3.1 на Android

        Человеческой изобретательности нет предела.
        На этот раз нашли способ запускать Windows 3.1 (а возможно и выше) на аппарате под управлением OS Android.



        Система устанавливается оригинальная и полностью рабочая, единственный большой минус — довольно сложное управление.

        И так для этого нам понадобится:
        1. Аппарат с Android версии 2.2 или выше
        2. Приложение aDosBox
        3. Установочные файлы Windows
        4. Свободное место на SD карте или в самом аппарате (20 мб (это проблема..))
        5. Прямые руки

        Читать дальше →
      • Опыт составления резюме

          Проблема


          Не так давно мне потребовалось обновить своё резюме. Последний раз я это делал несколько лет назад, так что решил написать резюме с нуля.

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

          Читать дальше →
        • Chess@home: создаем крупнейший шахматный ИИ

          • Translation
          Многие знакомы с проектом Seti@home: мощнейшей инициативой по поиску следов внеземных цивилизаций в океане данных, получаемых с неба, с использованием мощностей миллионов компьютеров по всему земному шару («матрицы»).

          Хотя инопланетян до сих пор не обнаружили, Seti@home вполне успешно демонстрирует потенциал крупномасштабных распределенных вычислений. Проекты типа BOINC распространили подобные инициативы в другие области: биологию, медицину и физику.
          Читать дальше →
        • Icon Ambulance — Скорая пиктографическая помощь

          • Translation
          Перевод одной истории, произошедшей в Калифорнии.

          Воскресным утром, 6-го января 2008 года я был в церкви когда мой телефон завибрировал. Как можно более незаметно я проверил телефон и заметил, что на экране значится — «Абонент не определён». Я решил проигнорировать звонок.

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

            Одна девушка-переводчица, задумчиво глядя в потолок, спросила меня: «А смогут когда-нибудь компьютеры понимать текст так же, как человек?» Тогда я не смог ответить на этот вопрос, но сейчас, обладая некоторыми знаниями в области семиотики текста, я уверен, что так же как человек компьютеры не смогут понимать текст никогда.

            В этой статье я рассмотрю несколько примеров сложностей, которые для человека вовсе и не являются таковыми, но для компьютера практически неразрешимы.

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

            Читать дальше →
          • Codecademy. Учимся программировать

              Изображение - savepic.ru — сервис хранения изображений

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

                Стэнфордский университет организует бесплатный онлайн-курс CS221 по искусственному интеллекту осенью этого года. Курс будет проходить с 2 октября по 16 декабря.

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

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



                  Думаю, у многих увлечения программированием началось с МК. И ещё не забыты времена, когда хабралюди программировали на своих МК по статьям из журнала «Науки и жизнь». А сколько времени было потрачено на игры на этих самых калькуляторах (да, у меня было тяжелое детство).

                  Вспомнить молодость можно скачав для своего айфона, айпада PrgCalc (бесплатно).
                  Авторы уверяют нас, что на нём работают практически все программы, расчеты и игры. Дизайн тоже аутентичный.

                  К черту игры для аппстора, когда можно играть в игры (даже сайт на народе и оформление, как раньше), как в старые добрые времена на мк-61, 52.
                • CountDown — Обратный отсчет на HTML5

                    Те, кто был участником конференции Google I/O 2011, наверняка, обратили внимание на заставку на экране, где показывалась занятная сцена обратного отсчета. Я наблюдал за трасляцией конференции в московском офисе Гугла, но забыл спросить у устроителей, где можно скачать эту демонстрацию. Впрочем, я не уверен, что получил бы ответ. И совсем недавно неожиданно наткнулся на страницу Chrome Experiments, где и было краткое описание заставки.
                    К сожалению, скриншоты не дадут полного впечатления от красоты демонстрации, поэтому предлагаю посмотреть ее в действии по адресу http://www.weareinstrument.com/countdown/.
                    Вы увидите укороченный вариант обратного отсчета на 20 секунд. В реальности, я приехал в офис минут на 40 раньше до трансляции, и эта заставка уже крутилась на экране. И она совершенно не надоела — меня мучал вопрос, чем закончится сценка, когда часы достигнут отметки 00:00:00.
                    На мой взгляд такую демонстрацию вполне можно использовать как экранную заставку на компьютерах. А вам нравится?
                  • Google Maps (Android): Загрузка куска карты для использования в offline

                      В новой версии Google Maps 5.7 для Android появилось несколько интересных фичей, но про одну из них, которая пока еще в labs, забыли упомянуть: это возможность загрузить кусок карты для того, чтоб использовать его когда не будет подключения к интернету.

                      image
                      Читать дальше →
                    • Экспорт контактов из Facebook в Google+

                        Через пару дней после анонса Google+ уже появилось первое расширение для Chrome, которое автоматизирует экспорт контактов из Facebook в Google+. За четыре дня расширение Facebook Friend Exporter установили более 17 тыс. человек.

                        Исходный код fb-exporter на github.

                        С появлением Google+ снова возобновляется война за социальный граф, которую давно ведут Google и Facebook. Как известно, Facebook не даёт возможности экспортировать список своих друзей c почтовыми адресами и запрещает автоматический сбор этих данных (пункт 3.2 ToS). Предыдущее расширение для Chrome с аналогичным функционалом было заблокировано на Facebook, а потом удалено и с сайта Google Code, и с github. Посмотрим, что предпримет Facebook на этот раз (UPD: 05.07 приложение заблокировано).

                        В то же время Google демонстративно подчёркивает возможность экспорта контактов (Google Takeout) и постоянно выступает за «свободу информации».
                      • Курс по подготовке идиотов (цитаты из книги «Искусство оформления сайта»)

                          Я не знаю, видел ли кто-то из вас эту книгу, но это же жесть полнейшая.

                          image

                          — «Хвостик» после имени файла, отделяемый точкой, носит название расширения. Веб-дизайн, будучи синтетическим видом искусства, совмещает в себе:
                          > фотографии, которые существуют в виде файлов с расширением *.jpg (*.jpeg) или, значительно реже, *.gif (другие форматы графических файлов в Сети не применяются);

                          — Иногда полезно включить тэг [meta name=«generator» content="…"], чтобы показать, в какой программе сверстана страничка, поскольку это нередко помогает броузеру прочитать ту ахинею, которую накрутил визуальный редактор.

                          Читать дальше →
                        • Как разработать свой бренд?

                          В интернете и книгах по маркетингу (и брендингу) приводится масса различных схем построения бренда: «колесо», «пирамида» и т.д. При желании можно найти подробное описание каждой из них (с реальными и, как правило, одними и теми же кейсами), вот только последовательность работы по созданию собственного бренда толком не описывается.
                          Еще один важный момент, что модели у различных авторов (Аакер, Линдстром и т.д.) часто учитывают различные аспекты взаимодействия бренда и потребителя. И при этом все они по-своему интересны, так что выбирать какую-то одну модель – значит отказываться от плюсов другой.
                          Мы работали со многими из этих схем бренда и в результате пришли к определенной последовательности действий, с помощью которой, не вдаваясь в дебри, можно разработать свой собственный бренд, сочетающий в себе лучшие особенности каждой из схем. Это «синтетическая» модель, где мы постарались учесть максимум важной информации и отсечь все, без чего можно обойтись.
                          Читать дальше →
                        • Userscript чтобы убрать красные сообщения от Google+

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

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

                            http://userscripts.org/scripts/show/105894

                            Исходный код совсем простой. По сути, это одна строчка:

                            try {document.getElementById("gbg1").style.display = 'none';} catch(e) { }

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

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

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

                              И встал вопрос: а нужен ли офис вообще?

                              Читать дальше →
                            • Переход с Windows Mobile на Android. Список приложений

                              Практический опыт перехода от WM-коммуникатора к Android.
                              Очередной список Android-приложений со ссылками и кратким описанием.
                              Все нижеописанное — субъективное мнение автора и не претендует на истину в последней инстанции


                              Преамбула: после трех лет сосуществования с коммуникатором на базе Windows Mobile наступил момент, когда WM начало казаться мне жутким, неповоротливым и кривым чудовищем. Коммуникатор использовался очень плотно: звонки и SMS, разумеется, но это не главное; в основном – чтение книг, ежедневная навигация в московских пробках, web-серфинг, почта, хранение контактов, планирование рабочего (и не только) времени с помощью Календаря (от Задач ушел), Заметки (в том числе и графические от руки), переписка IM, звонки VoIP, ssh. Причем, Контакты, Календарь и Заметки постоянно синхронизировались с MS Outlook на настольном компьютере (ББ) и ноутбуке через USB и Bluetooth. Необходимые данные были постоянно доступны и на коммуникаторе и на рабочем месте и на домашнем ноутбуке, и отказываться от этого при переходе на другую платформу я не хотел. Мой выбор пал на Android. Открытая современная платформа и все такое. Близко душе программиста.
                              Читать дальше →
                            • Второе дыхание бюджетного Android-смартфона

                                Android smartphoneОбладатели неновых смартфонов со скромным объемом оперативной памяти (160 в моем случае) очень скоро начинают ощущать тормоза при работе. Поставил буквально несколько программ, а переключение между ними уже сопровождается ощутимыми задержками, и вызов Quick Settings становится уже совсем не «quick».

                                После ребута всё летает, а уже после 15 минут работы, вроде набор активных программ тот же, а ощущение такое, будто железка умирает:
                                — замедленная реакция на команды;
                                — не плавный скроллинг;
                                — долгий запуск даже маленьких приложений;
                                — длинная пауза после подключение к интернету до его появления;
                                — а в самые нагруженные моменты, когда нужна наибольшая продуктивность и быстрое переключение между задачами, смартфон просто перестает реагировать на Вас, уходит в себя и делает вид, будто он очень серьезно думает о чём-то своём, личном.

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