• Создание истории карточным методом: упрощаем жизнь сценаристам

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


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


    Lead

    Читать дальше →
  • Парсим словарь русского языка Зализняка Андрея Анатольевича

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

        В статье описаны основные трудности создания приложений под Android.
        Рассматриваются базовые понятия программирования Android.
        Для примера описано создание игры Sudoku из книги Hello, Android – Ed Burnette.
        Осторожно много скриншотов.

        Читать дальше →
      • Маленькая хитрость для отображения большого объёма данных в ListView

        • Tutorial


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

        Проблема


        Стандартный механизм отображения списков из базы данных в Android выглядит примерно так:
        • Activity содержит ListView
        • ListView обращается к экземпляру CursorAdapter
        • CursorAdapter получает данные из объекта, реализующего интерфейс Cursor
        • Cursor получен либо из ContentProvider, либо сразу из SQLiteDatabase


        Всё работает нормально ровно да тех пор, пока количество строк в Cursor сравнительно небольшое. Но если в нём 50 тысяч, 100 тысяч и более строк (хотя дело не только в количестве строк, но об этом чуть позже), время от времени список будет притормаживать. Особенно это заметно при «быстрой прокрутке», если у ListView установлено в true свойство fastScrollEnabled.
        Читать дальше →
      • I2P: Прозрачный доступ из любого браузера

        • Tutorial


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

        Но куда уходить людям?

        Что бы был доступ к информации, свобода слова и соблюдались хотя бы те правила, которые есть в конституции?

        Mesh сети не подходят, Tor — тоже не может обеспечить требуемого, остается I2P.

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



          Хочу просто поделиться недавно найденным сервисом для работы с регулярными выражениями. Да, это еще один сервис. Но у него есть особенность — он позволяет не только составлять регулярные выражения, но и помогает разбирать уже написанные — эдакий regexp-декомпилятор.
          Сервис называется Regex101.

          Читать дальше →
        • Custom layouts. Part 2. CellLayout

            И снова здравствуйте, коллеги.

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


            Читать дальше →
          • Учим английский: фильмы, книги, словари

              Многие из нас занимаются изучением английского языка, потому что в сфере ИТ большинство документации, форумов и просто полезной информации изложено на универсальном языке – английском. И каждый находит для себя свой подход к обучению: кто-то идет к своей цели постепенно, планомерно, кто-то более экспрессно и выборочно. В самом деле, в Интернете вы найдете более 9000 методик, о том, как эффективно и быстро выучить язык самому. В языковой школе вам предложат несколько целевых программ: от «разговорных навыков делового человека» до «целенаправленной сдачи TOEFL». Чего же нового хочу я предложить? Мы поговорим о «фоновом» изучении языка. Цель моего поста – поделиться с вами способами изучения языка, которые я использовал. Постараюсь показать концепцию в целом, который каждый из вас сможет интегрировать в свой способ познания языка.
              image
              Читать дальше →
            • Продвижение мобильного приложения: с чего начать

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

              Итак, с чего начать?



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

              Немного подробнее остановимся на каждом пункте.
              Читать дальше →
            • Альтернативные крестики-нолики

              • Перевод
              Однажды на пикнике я заметил математиков, толпящихся возле игры, интереса к которой я ожидал меньше всего: крестики-нолики.

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



              Но математики на пикнике играли в более изощренную версию игры. В каждой из клеток на квадратном поле они нарисовали поле поменьше:
              Читать дальше →
            • Flurry Analytics. Как держать руку на пульсе приложения

                Около года назад, после первого знакомства с Flurry у меня прямо вырвалось — она же рвет Google Analytics как Тузик грелку тряпку какую-то материю. И обещался написать об этом повесть. Еще до знакомства с Flurry, для своего первого приложения пришлось использовать именно гугловую аналитику, стабильную но в бета-версии. С того момента все повзрослели но я так и остался с Flurry. Пост о том, какой от нее прок и как ее готовить. А готовить ее как два пальца яйца о сковородку.
                Читать дальше →
                • +31
                • 37k
                • 8
              • Ресурсы, о которых должен знать каждый Android-разработчик

                • Перевод
                Сегодня я хочу поделиться с вами моим вольным переводом статьи, написанной Сергеем Повзнером (Sergey Povzner). Сергей ведёт блог bongizmo.com и занимается разработкой туристических гидов под общим названием Citybot.

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

                Статья будет полезна как новичкам, так и опытным разработчикам. Это гид по миру Android-разработки.
                Читать дальше →
              • Как бороться с низкокачественными Android приложениями

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

                Но каждый день выходят новые приложения с дизайном из iOS, темами из 2.3, не адаптированные для планшетов и с размытыми картинками на HD-экранах. И в этом виноват не Google, а разработчики. Кто-то не пытается спорить, когда заказчик присылает макеты от iOS версии, кто-то пытается, но сдается. Кто-то разрабатывает приложение ради опыта, откладывая «неважное» на потом, и так оно и остается. Стартапы делают приложения «за день», а потом лихорадочно фиксят баги, создавая снежный ком, который уже никто не перепишет с нуля. Крупные социальные сети, имея деньги и время, каким-то образом умудряются выпускать ужасные клиенты…
                Читать дальше →
              • Открытие компании в зарубежной юрисдикции для айтишника, фрилансера, разработчика мобильных приложений

                  «Право налогоплательщика избегать уплаты налогов с использованием всех разрешенных законом способов никем не может быть оспорено. Каждый имеет право вести свои финансовые дела таким образом, чтобы свести соответствующие платежи к минимуму…»
                  Дж. Сандерленд,
                  Судья Верховного Суда США


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

                  Пробовали ли вы оценивать свой IT-продукт с психологической точки зрения? Такая оценка может основываться на общей психологии и включать эргономическое тестирование, может основываться на когнитивной психологии и задействовать теорию познания и принятия решений, может основываться на теории деятельности и анализировать пользовательские сценарии, может основываться на психологии научения и бихевиоризме и анализировать продукт с точки зрения геймификации…

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

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

                  Описание теста.
                  Для каждой потребности предложено по 5 вопросов о продукте.
                  Читать дальше →
                • Параллакс эффект для живых обоев на Android

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

                    Читать дальше →
                  • Симуляция движения и заноса машины в игре на JavaScript

                    Нужно было написать игру на JavaScript. Решил остановиться на примитивных гоночках. Когда я овладел принципами вращения и перемещения по HTML5 Canvas появилась следующая проблема: управление автомобилем. Делая эту игру я вспоминал игру Grand Prix Simulator 2 ZX Spectrum, в кторую я играл на компьютере «Байт».
                    Читать дальше →
                  • Уроки написания утилитки на $1 000 000



                      Осенью 2008 года мы с приятелем потратили две-три недели свободного от основной работы времени, чтобы написать маленькую утилитку для бэкапа баз данных (MS SQL Server и потом MySQL). Сегодня она приносит нам около $230 000 в год и можно с уверенностью говорить, что суммарно мы заработаем на ней больше $1 000 000.

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

                        Всем привет,



                        Сначала хотел озаглавить топик «Миллион загрузок в месяц или как сделать хороший старт на Google Play на примере одной игры», но потом решил, что это слишком длинно. Тем не менее, сегодня я буду говорить о своей последней игре. Не только потому, что мне хочется немного ее прорекламировать (хотя и это тоже, чего скрывать), но и потому что каждый запуск новой игры индивидуален и без «привязки к местности» рассказывать, наверное, было бы не совсем правильно.
                        Читать дальше →
                      • Получение изображения нужного размера без OutOfMemoryError + автоповорот согласно EXIF orientation

                        Многие уже наверняка сталкивались с проблемой OutOfMemoryError и находили достаточно толковый мануал Displaying Bitmaps Efficiently. Но если вы еще не успели изобрести свой велосипед на основе мануала, предлагаю свое готовое решение с объяснениями, которое умеет получать изображения:

                        • В формате Bitmap и byte[]
                        • Уменьшенное с сохранением пропорций
                        • Уменьшенное с вырезанием (crop) до заданного размера width x height
                        • Оптимизированное для 2g
                        • Всегда в правильной ориентации (учитывая EXIF orientation)


                        Пример использования
                        ImageManager im = new ImageManager(ctx, 100, 100);
                        Bitmap bm = im.setIsScale(true)
                                      .setIsResize(true)
                                      .setIsCrop(true)
                                      .getFromFile(myUri.toString());
                        



                        Далее: OutOfMemoryError и решение