• Бесплатные способы продвижения Android-приложений



    Всем привет! В этом топике мне хотелось бы обсудить одну из самых интересных и в тоже время загадочных тем для большинства, как мне кажется, инди-разработчиков – это продвижение своих собственных приложений. Скажу пару слов о себе: я примерно 2 года занимаюсь Android-разработкой (исключительно в качестве хобби, правда). У меня есть десяток приложений в Play Store, с совокупным количеством загрузок более 5 млн. Ни то что бы очень много, да и большая часть загрузок приходится на одно приложение, но какие-то выводы касательно маркетинга я для себя сделал. Здесь я хочу поделиться своим опытом, наблюдениями, а так же призываю Вас рассказывать о своих результатах в комментариях. Обмен опытом в этом вопросе был бы полезен всем, я думаю.
    Читать дальше →
  • AndroidKickstartr — создай современный проект в пять кликов


      На днях появился новый веб-сервис, позволяющий в несколько кликов создавать новый проект для андроид со всеми современными вкусностями сторонних библиотек.
      Название AndroidKickstartr.com отлично описывает его задачу — максимально быстро и просто сконфигурировать новый проект, добавив туда все самое необходимое.
      Читать дальше →
    • Миллион загрузок в месяц или как сделать хороший старт на Google Play

        Всем привет,



        Сначала хотел озаглавить топик «Миллион загрузок в месяц или как сделать хороший старт на Google Play на примере одной игры», но потом решил, что это слишком длинно. Тем не менее, сегодня я буду говорить о своей последней игре. Не только потому, что мне хочется немного ее прорекламировать (хотя и это тоже, чего скрывать), но и потому что каждый запуск новой игры индивидуален и без «привязки к местности» рассказывать, наверное, было бы не совсем правильно.
        Читать дальше →
      • Инъекция кода в .NET CLR: изменение IL-кода во время выполнения программы

        • Translation

        Предисловие



        Изменение .NET метода MSIL кода во время выполнения приложения – это очень круто. Это настолько круто, что можно перехватывать вызовы функций (hooking), сделать защиту своего ПО и другие удивительные вещи. Именно поэтому мне уже давно хотелось это осуществить, но была одна проблема – MSIL код компилируется в машинный код с помощью JIT перед тем, как мы сможем что-либо с этим кодом сделать. А так как .NET CLR не документирована и изменяется от версии к версии, то мы и будем искать стабильный и надёжный путь, независимый от точного расположения адресов в памяти.
        Читать дальше →
        • +88
        • 35.2k
        • 7
      • Бесплатный курс по работе с Sublime Text 2

        • Tutorial
        На Tuts+ опубликован новый курс учебных скринкастов "Perfect workflow in Sublime Text". Он посвящён работе со стремительно набирающим популярность кроссплатформенным текстовым редактором Sublime Text 2. Автор курса — Джеффри Вэй, разработчик и инструктор в компании Envato, автор многих учебных пособий на Tuts+, статей и книг — признаётся, что помешан на текстовых редакторах. Он перепробовал практически всё, от TextMate до Vim, но с тех пор, как освоил Sublime Text, считает его самым лучшим в мире редактором кода.
        Читать дальше →
      • Как сделать увлекательный кибер-сериал из окон mIRC, ICQ, и Firefox

          Многие из Вас наверняка читали в далеком 2007-ом, увлекательную статью пользователя ACiDThe Scene — настоящий андеграунд Интернета, и судя по комментариям, некоторые даже посмотрели указанный в статье сериал The Scene в оригинале. Для тех кто не вкурсе, или забыл, немного информации.

          Сцена — веб-сериал, созданный Jun Group Entertainment в 2004-2006гг. Первый в своем роде фильме действие которого происходит на экране компьютеров его героев, где мы видим, как они общаются в чате.

          Герои Сцены — участники вымышленной релиз-группы CPX, распространяющей фильмы-новинки до их официального выхода. Завязка истории начинающаяся с того, что один из основателей группы под давлением обстоятельств продает копию фильма азиатским DVD-пиратам.

          Недавно я наткнулся на этот сериал на рутрекере, подумав что его перевели с субтитрами или голосом как множество других шоу. Но все оказалось намного интересней: Пользователю под ником ID-Daemon ценой невероятных усилий за полгода, удалось практически вручную отрисовать первую серию. На данный момент полностью русифицировано 12 из 20 серий первого из двух сезонов.

          Русская версия шоу предоставлена полной заменой анимации и синхронизации диалогов в чатах, текста писем, и некоторых ключевых частей интерфейса Windows XP. Также была полностью озвучена Речь.



          Под катом ссылки на раздачи, Рецензия, Саундтрек, а также полная история пользователя ID-Daemon связанная с этим сериалом, которой он сопровождает свои релизы, в попытках популяризовать это не стандартное для обычных людей шоу и получить право публикации сериала в разделе Сериалы. На данный момент шоу расположено в ветке Rutracker.org » Разное » Разное » Видео
          Читать дальше →
        • Удобный сервис для учета личных финансов


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

            Для начала стал искать уже готовые решения. Самое простое, на первый взгляд решение – таблица в Excel. Получилось быстро, но вот что-то не то. Промучившись пару месяцев, я решил подыскать хороший сервис, но ничего не приглянулось — невзрачный интерфейс, либо наоборот слишком сложно. Поэтому, решил сам взяться за дело. Подгоняло еще и то, что как показал опрос многочисленных знакомых, не я один такой желающий наладить финансовые отношения с самим собой.

            Кому интересно — сразу скажу, что написано это все на Python/Django.

            Читать дальше →
          • Sublime Text 2: Как создать сниппет?

            • Translation
            • Tutorial
            image
            Начав использовать Sublime Text 2, я понял, что хочу немного упростить себе жизнь, создав несколько полезных сниппетов, но столкнулся с тем, что на тот момент в сети не было инструкции на русском языке. Найдя неплохую англоязычную статью я решился на перевод, попутно немного дополнил и узнал пару несколько интересных нюансов, которыми готов поделиться с вами.

            О неточностях, опечатках, ошибках пишите в личку — буду оперативно исправлять.

            Читать дальше
          • Почему, зачем и как я купил апартаменты в Калифорнии?

              Кризис на рынке недвижимости предоставил прекрасную возможность обменять 42 метровую однушку в Куркино (город в ближайшем Подмосковье) на 100 метровые двухэтажные апартаменты с камином, двумя санузлами и спальнями на берегу пруда с дикими утками и гусями, белками и колибри, секвоями, открытым бассейном и двумя теннисными кортами. Все это великолепие расположилось на территории закрытого кондоминиума в прекрасном городе Сан Хосе в Cеверной Калифорнии. В городе, который считается неофициальной столицей Кремниевой долины и в котором 300 солнечных дней в году.

              image

              Как такое возможно спросите вы?

              Очень просто.
              Читать дальше →
            • Beamer — верстаем презентации

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

                Читать дальше →
              • Доброе утро или опыт использования «умного» будильника

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

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

                  Читать дальше →
                • Опасности обучения на Java

                  • Translation
                  «Вы счастливчики. Мы по три месяца жили в мешках из дерюги в грязных сараях. Мы вставали в шесть утра, стирали мешки, съедали по корке чёрствого хлеба и шли работать на мельницу, по 14 часов в день, с понедельника и до воскресенья, и когда мы возвращались домой, наш папа порол нас своим ремнем»
                  — Летающий цирк Монти Пайтона, Четыре йоркширца


                  Ленивая молодёжь.

                  Что может быть хорошего в тяжёлой работе?

                  Верный признак моего старения — моё ворчание и жалобы о «современной молодёжи» и о том, как не хотят или не могут больше делать ничего сложного.
                  Читать дальше →
                • Жадные алгоритмы

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

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

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

                      Киностартапом сейчас никого не удивишь.
                      Казалось бы, изобретено все: топы лучших фильмов, поиск фильмов по жанрам, стране и прочим параметрам, рекомендации пользователей.

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

                      Поиск по жанрам также не помогает: комедии бывают романтические, тупые, а бывают и грустные. А что может скрываться за жанром «драма» — перечислять устанешь.

                      Но вот ребятам из jinni удалось сделать кое-что новое в поиске фильмов.
                      Читать дальше →
                    • Быстрое умножение многочленов при помощи преобразования Фурье — это просто

                        Добрый вечер.
                        Этот пост посвящён быстрому преобразованию Фурье. Будут рассмотрены прямое и обратное преобразования (в комплексных числах). В следующей части я планирую рассмотреть их применения в некоторых задачах олимпиадного программирования (в частности, одна задача про «похожесть» строк), а также рассказать про реализацию преобразования в целых числах.
                        БПФ — это алгоритм, вычисляющий значения многочлена степени n=2k в некоторых n точках за время O(n⋅logn) («наивный» метод выполняет ту же задачу за время O(n2)). За то же время можно выполнить и обратное преобразование. Так как складывать, вычитать и умножать массивы чисел гораздо легче, чем многочлены (особенно умножать), БПФ часто применяется для ускорения вычислений с многочленами и длинными числами.
                        Читать дальше →
                      • Пайпы, the pythonic way

                          Одни питонисты любят код читаемый, другие предпочитают лаконичный. К сожалению, баланс между первым и вторым — решения по-настоящему изящные — редко случается встретить на практике. Чаще стречаются строки вроде
                          my_function(sum(filter(lambda x: x % 3 == 1, [x for x in range(100)])))
                          
                          Или четверостишья а ля
                          xs = [x for x in range(100)]
                          xs_filtered = filter(lambda x: x % 3 == 1, xs)
                          xs_sum = sum(xs_filtered)
                          result = my_function(xs_sum)
                          
                          Идеалистам же хотелось бы писать как-то так
                          result = [x for x in range(100)] \
                              | where(lambda x: x % 3 == 1)) \
                              | sum \
                              | my_function
                          

                          Не в Питоне?
                          Зря так думаете...
                        • Визуализация графов. Метод связывания ребер

                            Иногда полезно представить граф в графической форме, так чтобы была видна структура. Можно привести десятки примеров, где это может пригодиться: визуализация иерархии классов и пакетов исходного кода какой-нибудь программы, визуализация социального графа (тот же Twitter или Facebook) или графа цитирования (какие публикации на кого ссылаются) и т.д. Но вот незадача: количество ребер в графе зачастую настолько велико, что нарисованный граф просто невозможно разобрать. Взгляните на эту картинку:



                            Это граф зависимостей некой программной системы. Он представляет собой дерево разбиения на пакеты (серые шарики — пакеты, белые — классы), на которое поверх наложены ребра зависимости одних классов от других. Чтобы не рисовать стрелки направления, ребра нарисованы в виде градиентных линий, где зеленый — это начало, а красный — конец ребра. Как видите, граф настолько визуально перегружен, что архитектуру программы невозможно проследить.
                            Под катом описание метода, решающего эту проблему.
                            Читать дальше →
                          • B-tree

                            Введение


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

                            Основные операции в деревьях выполняются за время пропорциональное его высоте. Сбалансированные деревья минимизируют свою высоту (к примеру, высота бинарного сбалансированного дерева с n узлами равна log n). Большинство знакомо с такими сбалансированными деревьями, как «красно-черное дерево», «AVL-дерево», «Декартово дерево», поэтому не будем углубляться.

                            В чем же проблема этих стандартных деревьев поиска? Рассмотрим огромную базу данных, представленную в виде одного из упомянутых деревьев. Очевидно, что мы не можем хранить всё это дерево в оперативной памяти => в ней храним лишь часть информации, остальное же хранится на стороннем носителе (допустим, на жестком диске, скорость доступа к которому гораздо медленнее). Такие деревья как красно-черное или Декартово будут требовать от нас log n обращений к стороннему носителю. При больших n это очень много. Как раз эту проблему и призваны решить B-деревья!

                            B-деревья также представляют собой сбалансированные деревья, поэтому время выполнения стандартных операций в них пропорционально высоте. Но, в отличие от остальных деревьев, они созданы специально для эффективной работы с дисковой памятью (в предыдущем примере – сторонним носителем), а точнее — они минимизируют обращения типа ввода-вывода.
                            Читать дальше →
                          • XSD: частичная валидация

                              XSD — это язык описания структуры XML документа. Его также называют XML Schema. При использовании XML Schema XML-парсер может проверить не только правильность синтаксиса XML документа, но также его структуру, модель содержания и типы данных. Многие так или иначе сталкивались с процедурой полной валидации, обеспечивающей соответствие документа заданной схеме или сообщающей о возможных ошибках. В данной статье речь пойдет о частичной валидации, кроме вышеописанного, позволяющей конструировать валидные документы «на лету». Мы разберемся, какие возможности может предоставить такой подход и способы его реализации.
                              Читать дальше →
                              • +20
                              • 21.2k
                              • 9
                            • Настольные игры: во что играют в IT-офисах?

                                В этом топике — обещанный обзор разных настольных игр.

                                — Первая часть — это «портированные» версии известных компьютерных (по сюжету Starcraft, Warcraft, Civilization, Age of Empires, Master of Orion, Doom)
                                — Вторая часть — игры, которые интересны многим хабражителям, судя по комментариям к прошлым топикам.
                                — В комментариях предлагаю делиться информацией об интересных играх: думаю, многие смогут подсказать нечто необычное в плане поиграть или же предупредить от напрасной покупки.
                                — Топик будет интересен тем, кто хочет понять, что популярно на рынке, вкратце посмотреть товар для магазина и тем, кому просто интересно, что же там вообще есть из настольных игр для себя, компании или в подарок.
                                — В конце есть приятный бонус хабрачитателям.

                                Читать дальше →