• Сделать свою игру — просто? Или почему мечты часто остаются мечтами

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

    Понимание, что используемый в программе текст это отдельный ресурс, такой же как изображения и звук, приходит на сразу. Но стоит несколько раз поменять имя программы в паре десятков файлов или заняться исправлением однотипной синтаксической ошибки в пяти, шести разных местах и необходимость хранить строки отдельно от кода становиться очевидной.
    В Android работа со строковыми ресурсами сделана очень удобна и не вызывает поначалу никаких сложностей. В официальной документации она описана в статье String Resources. В файле project\res\values\strings.xml задаем строку и ее имя после чего в Activity загружаем строку по этому имени.
    Читать дальше →
  • Места распространения Android приложений


    В какой-то момент разработчику андроид приложений становится тесно в рамках одного магазина Google Play. И тогда он начинает задумываться о том, как бы еще донести до пользователей свои приложения. Оказывается, достаточно много вариантов это сделать.

    Перечислю те, которые попробовал сам. Сразу оговорюсь, что приложения у меня бесплатны, с рекламой внутри. С публикацией платных приложений разберусь, когда появятся достойные.
    Читать далее
  • Делаем чат на ASP.NET с помощью Web Socket

      Вступление



      Я думаю, что многие веб-разработчики задают себе вопрос о том, как передать пользователю какое-либо сообщение, напоминание. Раньше для этого было необходимо постоянно отправлять запросы к веб-серверу, но теперь появилась такая удобная технология, как Web Socket.

      В этой статье я хочу показать, как можно написать простой чат на ASP.NET MVC 4 с помощью Web Socket.

      Читать дальше →
    • Публикация приложения в Android маркеты

        Хорошо это или плохо, но для Android-приложений существует большое количество различных рынков продаж. С одной стороны приходится публиковать в нескольких, с другой — охват обеспечивается более широкий. Когда я задумался о том, что пора бы задействовать альтернативные маркеты для своего приложения, то толковой информации не нашёл. Сразу хочу предупредить, что программа предназначена для узкой русскоязычной аудитории, абсолютно ничем не примечательна, является по сути обычным rss-ридером для моего сайта халявы. Т.е. для многих этот опыт не будет показателен. Также я не использовал никаких средств для раскрутки своего приложения(реклама, обзоры, накрутка).
        Читать дальше →
      • Tasks и Back Stack в Android

        • Tutorial
        Привет. Из названия темы вы могли заметить, что речь пойдет о том, как устроены Tasks и Back Stack в Android. Эта статья будет являться свободным переводом официального источника. Тема больше ориентирована на новичков, но я думаю, что и опытный разработчик сможет узнать что-то новое, т.к. тема специфична и не часто приходится кастомизировать поведение наших Activity.
        Читать дальше →
      • Разработка и модификация прошивки для Android телефонов на примере HTC Hero GSM. Часть 1

          Причины по которым люди ставят модифицированные версии прошивок различны. Кому-то хочется удивить друга смешной анимацией загрузки, кому-то не хватает определенного функционала (например vpn), кто-то хочет выжать максимум производительности из своего телефона за счет разгона процессора, а кто-то пять месяцев ждет новую версию операционной системы Android для своего любимого HTC Hero.
          На данный момент уже существует превеликое множество самых невообразимых сборок для самых различных телефонов на базе Android. Иногда они даже появляются в той или иной форме на Хабре.
          Я же хочу Вам рассказать о процессе и особенностях создания кастомной прошивки на основе официальной. Данные знания были получены в процессе разработки одной из не многих отечественных прошивок на базе Android 2.1 для HTC Hero GSM. И более или менее успешно опробованы на себе и других подвернувшихся пользователях одного крупного российского форума.
          Не смотря на то, что все нижеследующее было сделано для HTC Hero, данные правила и особенности имеют полную силу для всех телефонов, особенно тех, которые разработаны компанией HTC и используют фирменную оболочку Sense.
          Для экспериментов нам понадобится:
          • Android SDK желательно последней версии
          • Утилита apktool для реинжениринга системных приложений
          • Утилиты smali/baksmali для де-оптимизации системных приложений
          • Утилита unyaffs для извлечения системных файлов из образа
          • Скрипт split_bootimg.pl для извлечения ядра и ramdisk-а
          • Утилита testsign для подписывания пакета обновления и отдельных приложений
          • установленное и настроенное JRE
          • телефон с операционной системой Android
          • права суперпользователя и модифицированная подпрограмма восстановления (recovery rom)

          Все вышеперечисленное доступно в версиях как для системы Linux так и для Windows. Но в своих примерах я буду ориентироваться на использование Linux.
          Конечно же ни root-права ни recovery нам не нужен для того, чтобы начать разработку, однако если мы захотим опробовать наше творение, они нам понадобятся. Для HTC Hero можно использовать RA-hero-v1.6.2.
          Наверное, самое время напомнить, что использование неофициальных прошивок лишает нас гарантии, но где наша не пропадала. И несмотря на то, что большинство операций безопасно — всегда нужно четко понимать что и зачем делается, дабы не причинить необратимый вред своему андроиду
          Читать дальше →
        • Основы безопасности операционной системы Android. Native user space, ч.1

            Вступление


            В этой статье я попробую рассмотреть безопасность чуть-чуть повыше ядра, а именно: как работает безопасность в Native user space. Мы коснемся темы процесса загрузки операционной системы и рассмотрим структуру файловой системы Android. Как я уже говорил, я не очень силен в Linux, поэтому если заметите неточности, то исправляйте — меня научите и статью улучшите. Так как эта тема довольно обширная, я решил разбить её на две части. В первой части мы рассмотрим процесс загрузки операционной системы и особенности файловой системы. Всем кому интересно, добро пожаловать!
            Читать дальше →
          • dot42 — компилятор C# для Dalvik Runtime

              Главным недостатком Mono для Android является то, что для работы приложений требуется отдельная среда выполнения, отличная от Dalvik. И хотя полный доступ к CLR выглядит весьма привлекательно, проксирование и маршаллинг вызовов от одной среды выполнения к другой могут сильно повлиять на производительность. Так почему бы не убрать промежуточную компиляцию в IL-код и получать сразу рабочий Dex-код? Этим и занимается проект dot42.



              В январе, после 1 года разработки, авторы проекта dot42 наконец-то перешли от обещаний к пряникам. И, хотя проект еще не дотягивает до состояния боевого продукта-конкурента Mono, стоит, как минимум, его рассмотреть и попробовать.
              Так что это?
            • Картирование интернета

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

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

              А есть ли результат? У кого нибудь есть представление о том, сколько существует русскоязычных ресурсов? А есть ли возможность посмотреть их ранжированные списки как по частоте использования и тематическому разделению. Пытаются говорить о семантическом интернете, а вот такого даже элементарного порядка в структурировании похоже нет. Сказав себе «кто же если не мы», я пошел реализовывать эту идею и подходы к её решению. Но главное понял основную сложность, которая как и много где просто упирается в ресурсы, в данном случае процессорного времени. Тем кому интересны изыскания новичка в обозначенной области, но со свежим взглядом, прошу под кат.

              Читать дальше →
            • Поиск на сайте своими руками

              • Tutorial


              Наверное, многие когда-нибудь задумывались, как сделать поиск на сайте? Безусловно, для крупных сайтов с большим количеством контента поиск является просто незаменимой вещью. В большинстве случаев пользователь, впервые посетив Ваш сайт в поисках чего-либо важного, не станет разбираться в навигационных панелях, выпадающих меню и прочих элементах навигации, а в спешке попытается найти что-нибудь похожее на поисковую строку. И если такой роскоши на сайте не окажется, либо он не справится с поисковым запросом, то посетитель просто закроет вкладку. Но статья не о значении поиска для сайта и не о психологии посетителей. Я расскажу, как реализовать небольшой алгоритм полнотекстового поиска, который, надеюсь, избавит начинающих разработчиков от головной боли.
              Читать дальше →
            • SignalR в помощь, или как оживить web


              Введение


              Во многих web проектах присутствуют элементы, значение которых необходимо часто менять. Это могут быть счётчики, индикаторы, уведомления и подобные элементы. Показывать ли актуальные значения после обновления страницы или же можно реализовать автообновление всех этих данных? Для нас ответ очевиден: если есть возможность динамически менять элементы, то для обновления страниц не остается места.
              Читать дальше →
            • Сравнение биологических последовательностей

              image
              Тетрапептид HABR несравненен

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

              Биологические последовательности — это первичная структура биологических макромолекул. А именно белков и ДНК / РНК. (Есть еще углеводы, например, крахмал, но они состоят из одинаковых мономеров и потому неинтересны.) Последовательность ДНК определяет последовательность белка, последовательность белка определяет его пространственную структуру, структура определяет функции белка, а совокупность функций разных белков называется жизнью. Именно различиями в функционировании разных белков мы, в сущности, и отличаемся друг от друга. Сравнивать молекулы бывает нужно, грубо говоря, по двум причинам:

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

              Читать дальше →
            • Структура белка: введение для айтишников

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

              Здравствуйте! Я хотел бы представить вашему вниманию отличное введение в квантовую механику, написанное Элиезером Юдковским; быть может, он известен вам по своему сайту lesswrong.com, посвящённому рационализму, предрассудкам, когнитивным парадоксам и ещё многим интересным вещам.
              Читать дальше →
            • Браузеры генома

                Не последнюю роль в биоинформатике занимает визуализация. Учёные в этой области работают с огромными объёмами информации, которую хорошо бы как-то охватить взглядом и представить в голове. Ярким примером средства визуализации являются браузеры геномов (genome browser), о которых я и хочу рассказать.

                Читать дальше →
              • «Непредвзятый» универсальный алгоритмический интеллект (часть 2)

                  LSearch и ξtl


                  В предыдущей части ( http://habrahabr.ru/post/150056/ ) мы рассмотрели базовые модели «непредвзятого» универсального алгоритмического интеллекта, которые мы назвали идеальным минимальным интеллектом (ИМИ), поскольку эти модели, не будучи ориентированными на какой-то класс сред, являются максимально компактными. Однако понятно, что они являются далеко не достаточными для создания реального ИИ.
                  Читать дальше →
                • «Непредвзятый» универсальный алгоритмический интеллект

                    Постановка задачи


                    В предыдущих статьях «Основы подхода к построению универсального интеллекта», часть 1 ( http://habrahabr.ru/post/145309/ ) и часть 2 ( http://habrahabr.ru/post/145467/ ), мы в общих чертах описали разные существующие подходы и сформулировали некоторые методологические принципы, которые целесообразно выполнять при разработке универсального ИИ. В статье «Идеальный ученик, или о чем умалчивается в машинном обучении» ( http://habrahabr.ru/post/148002/ ) необходимость соблюдения этих принципов (и, в особенности, сохранение универсальности) было обсуждено на примере проблемы машинного обучения. Здесь мы разберем одну распространенную модель универсального интеллекта в целом. Хотя эта модель крайне далека от реального универсального ИИ, она позволяет понять критические недостатки других подходов.
                    Читать дальше →
                  • О том, как мы ворпсиманием теcкт

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

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


                      В английском варианте это звучало так:
                      Arocdnicg to rsceearch at Cmabrigde Uinervtisy, it deosn’t mttaer in waht oredr the ltteers in a wrod are, the olny iprmoatnt tihng is taht the frist and lsat ltteer are in the rghit pcale. The rset can be a toatl mses and you can sitll raed it wouthit pobelrm. Tihs is buseace the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe.


                      Попытка поэкспериментировать с разными текстами показала, что с русским языком все не так безоблачно, как с английским и алгоритм эффективного и readable-перемешивания все-таки немного другой.

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