• Intel INDE Multi-OS Engine

      Не так давно, в начале августа, на конференции Android Developer Conference (Andevcon) 2015, проходившей в Бостоне, корпорация Intel анонсировала INDE Multi-OS Engine — фреймворк для разработки нативных кроссплатформенных приложений на Java.

      image
      Читать дальше
      • +14
      • 12,7k
      • 9
    • Что такое утечки памяти в android, как проверить программу на их отсутствие и как предотвратить их появление

      • Tutorial
      В этой статье для начинающих android-разработчиков я постараюсь рассказать о том, что такое «утечки памяти» в android, почему о них стоит думать на современных устройствах, выделяющих по 192МБ на приложение, как быстро найти и устранить эти утечки в малознакомом приложении и на что нужно обращать особое внимание при разработке любого приложения.


      Конечная цель этой статьи — ответ на простой вопрос:
      Куда нажать, чтобы узнать, какую строчку в приложении поправить?

      Читать дальше →
    • Использование нейронной сети Хопфилда для решения простейшей задачи

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

        Разговоры об искусственном интеллекте и громоздких экспертных системах — это конечно все хорошо, но как всю эту теорию приблизить к жизни, к нашим приклодным задачам?
        Читать дальше →
      • Ускорение загрузки Windows for fun and profit

          image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

          Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
          Под катом много однообразных картинок и немножко унылого текста
        • Создание приложения в стиле Android

          Часто, интерфейс даже очень популярных Android-приложений спроектирован кое-как и складывается впечатление, что большинство разработчиков даже не слышало о User Interface Guidelines. Но следование рекомендациям не очень сложно, а иногда даже позволяет экономить время на разработку. Для того, чтобы показать, что это действительно так, я предлагаю пройтись по нескольким ключевым элементам проектирования интерфейса приложения на примере слегка продвинутого «Hello World».
          Статья расчитана на начинающих Android-разработчиков. Исходный код можно скачать по ссылке в конце, а пояснения будут касаться:
          • Создания всплывающего меню
          • Проектирования окна настроек
          • Работы с Nine-patch graphics

          Читать дальше →
        • Пишем виджет ХабраКарма ex-CarmaWidget для Android

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

            image

            Принцип таков:
            • Класс — настройки для виджета, который запускается при добавлении последнего на рабочий стол.
            • Класс — провайдер информации для виджета, в котором живут все таймеры.
            • База данных — для хранения информации о пользователе.
            • Два layout'а — для виджета и настройщика.


            Читать дальше →
          • Простенький Time Manager для Android

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

              Что будет рассмотрено:
              • RelativeLayout для реализации интерфейса программы с наложением изображений друг на друга.
              • Timer для реализации алгоритма подсчета времени.
              • Animation для свистоперделок красивого интерфейса апплета.


              Для наглядности добавил скринкаст как все это добро работает.

              Итак, пишем простенький тайм менеджер для Android'а.
              Читать дальше →
            • Как реализовать загрузку изображений в список в отдельном потоке на Android

                List Image Fetching
                По просьбам трудящихся, статья о методе загрузки изображений в список в отдельном потоке на Android.

                Задача:


                Реализовать механизм загрузки изображений из Интернета и отображения их в списке. При этом загрузка изображений должна быть реализована в отдельном потоке, во избежания «зависания» UI приложения.

                Реализация:


                Для реализации поставленной задачи использованы стандартный виджет ListView и адаптер — ArrayAdapter. Для работы с изображениями создан helper-класс ImageManager, который имеет два метода downloadImage() и fetchImage(). Первый загружает изображений из Интернета. Второй — вызывает загрузку изображений в отдельном потоке и устанавливает результат в ImageView.
                Читать дальше →
              • Регистрируем электронное СМИ

                  imageРано или поздно, владельцы сайтов начинают задумываться о защите своих прав на контент. Кроме того, сайты создающие собственный контент заинтересованы в облегчении получения авторских материалов. Всему этому может способствовать регистрация СМИ, в нашем случае – электронного.
                  Читать дальше →
                • Иммунная система человека: биологический антивирус. Эвристические алгоритмы

                    Доброе время суток, уважаемое хабра-сообщество!

                    Это мой первый пост на Хабре, так что очень вас прошу, не судите слишком строго.

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

                      Про нейронные сети, как один из инструментов решения трудноформализуемых задач уже было сказано достаточно много. И здесь, на хабре, было показано, как эти сети применять для распознавания изображений, применительно к задаче взлома капчи. Однако, типов нейросетей существует довольно много. И так ли хороша классическая полносвязная нейронная сеть (ПНС) для задачи распознавания (классификации) изображений?
                      Читать дальше →
                    • Коллекции иконок? Легко! Тысячи иконок в сетах.

                        В продолжении поста "Ресурсы по поиску качественных иконок" представляю свою коллекцию сайтов, на которых вы найдёте очень(!) много качественных наборов иконок. Все сайты проверены руками, следовательно открываются и скачиваются легко.
                        Читать дальше →
                      • Windows 7 Training Kit на русском языке

                          Специально к конференции “Платформа 2010” мы перевели Windows 7 Training Kit — коллекцию материалов для разработчиков по созданию приложений под Windows 7. Kit содержит огромное количество документации, примеров и лабораторных работ по использованию разработчикам возможностей новой операционной системы.

                          Training Kit включает такие темы, как панель задач, платформа датчиков, библиотеки, DirectX, Multi-touch, Ribbon и другие — на C++ и .NET.

                          Загрузить Training Kit можно со специальной странице на MSDN.
                        • Как смотреть фильмы в оригинале, если английский слабоват? Решение!



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

                            Как известно, чтобы изучать и не забывать язык, им надо пользоваться. И один из способов практиковать язык — это начать смотреть фильмы в оригинале.
                            Но как можно начать смотреть фильмы и получать при этом удовольствие, если в каждом диалоге актеров встречаются незнакомые слова?

                            В интернете полно методик, где советуют, например, смотреть по 3 раза или подготавливаться к просмотру, выписывая и заучивая заранее слова из субтитров. Да, возможно это эффективно, и кому-то подойдут такие способы, но это же так скучно… Я бы не смог смотреть 3 раза подряд один и тот же фильм. Хочется получать удовольствие от просмотра, смотреть сразу и без подготовки и все понимать.

                            Как же этого добиться?
                          • Создание аудиоплагинов, часть 11

                            • Tutorial
                            Все посты серии:
                            Часть 1. Введение и настройка
                            Часть 2. Изучение кода
                            Часть 3. VST и AU
                            Часть 4. Цифровой дисторшн
                            Часть 5. Пресеты и GUI
                            Часть 6. Синтез сигналов
                            Часть 7. Получение MIDI сообщений
                            Часть 8. Виртуальная клавиатура
                            Часть 9. Огибающие
                            Часть 10. Доработка GUI
                            Часть 11. Фильтр
                            Часть 12. Низкочастотный осциллятор
                            Часть 13. Редизайн
                            Часть 14. Полифония 1
                            Часть 15. Полифония 2
                            Часть 16. Антиалиасинг



                            Сегодня мы сделаем резонансный фильтр. Разработка фильтров — это сложная область, над которой ломают голову множество DSP инженеров по всему миру. Мы не будем погружаться в ее дебри, а создадим простой фильтр нижних частот (Low-Pass), полосовой (Band-Pass) и фильтр высоких частот (High-Pass) на основе алгоритма Пола Келлета.
                            Читать дальше →
                          • Шпаргалка по HTTP-библиотекам для С++

                            • Tutorial
                            К сожалению, в стандартной библиотеке языка С++ нет никаких средств для работы с протоколом HTTP. Возможно, в будущем появятся, но на данный момент каждый раз при необходимости дёрнуть какой-нибудь REST-сервис, пропарсить веб-страничку, написать простенького бота или краулера приходится задаваться вопросами «А какую же библиотеку взять, так чтобы побыстрее и попроще?». Иногда проект уже использует какой-то фреймворк (а иногда даже несколько) и тогда приходится вспоминать «А как же сделать HTTP-запрос имеющимися средствами?». Чтобы не путаться я решил написать для себя шпаргалку с примерами HTTP-запросов на С++ с применением разных библиотек. А самое удобное место для хранения подобных шпаргалок — Хабр: и сам не потеряешь, и другим может пригодиться.

                            Будут рассмотрены:
                            • WinInet
                            • WinHttp
                            • Casablanca
                            • Qt
                            • POCO
                            • wxWidgets
                            • Boost.Asio
                            • libcurl
                            • neon
                            • .NET (С++/CLI)
                            • IXMLHTTPRequest
                            • HappyHttp
                            • cpp-netlib


                            Читать дальше →
                          • Выжимаем максимум из DDMS

                            DDMS (Dalvik Debug Monitor Server) — безумно полезный инструмент для отладки приложений, который идет в комплекте с Android SDK, о котором почему-то особо и не сказано на хабре, впрочем как и в примерах google он представлен в очень скромном виде. Я бы хотел раскрыть его возможности и показать на что он способен. Вкратце:
                            • изучать информацию о работающих потоках;
                            • анализировать heap на количество свободной и занятой памяти;
                            • анализировать какие объекты чаще создаются, их размер и другое (Allocation tracker);
                            • находить проблемные участки кода, которые долго работают и требуют оптимизации (Method profiling). Это я советую знать всем.

                            Об этих вещах будет рассказано в рамках данной статьи. И для справки, менее интересное, что довольно тривиально и о чем НЕ будет рассказано в рамках данной статьи:
                            • работать с файловой системой эмулятора или устройства;
                            • находить информацию об ошибках (привет LogCat);
                            • эмулировать звонки/смс/местоположение;
                            • использовать инструмент Network Statistics.


                            Если заинтересовались, прошу под кат.
                            • +34
                            • 29,2k
                            • 6
                          • CSS 3 Timing Functions и с чем их едят

                            • Перевод


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


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

                            Полетели!
                            • +71
                            • 59k
                            • 8
                          • SlideStackView или Extending ViewGroup в Android (часть 2)



                              Недавно я рассказывал о своём опыте разработки SlideStackView в мобильной почте Mail.Ru под Android. Тогда я пообещал, что в ближайшее время подготовлю вторую часть, в которой расскажу о том, как реализовать наиболее интересную, с точки зрения программирования визуальных компонентов, часть. Естественно, речь пойдёт о том, что добавляет интерактивность в приложение — об анимации. Все уже давно привыкли к тому, что мобильное приложение должно быть отзывчивым к действиям пользователя. Очевидно, что основным способом взаимодействия с вашим приложением является использование Touch screen.
                              Читать дальше →
                              • +37
                              • 9,6k
                              • 6
                            • Гостья из будущего — интегрированная графика (Intel GPU) в Intel Haswell



                                Начну с сообщения для тех, кто не знал, и напоминания для всех остальных — по показаниям неподкупного скрипта подсчета статистики (авторства saul), самым популярным постом 2012 года в блоге компании Intel оказался "Игры разума. Разбираемся с Intel HD Graphics. И играем?" На сегодняшний день его просмотрели более 70 000 раз, что в четыре с половиной раза превышает средний показатель для подобных статей. Что и наводит на мысль — если у Intel GPU такое интересное настоящее, то и ближайшее будущее тоже должно быть интересным.

                                Этот пост рассказывает про особенности Intel HD Graphics (непосредственно графику, медиа, а также Display Port), интегрированной в выходящий в 2013 Intel CPU под кодовым названием «Haswell», а также проверяет предположение о читательском интересе.
                                Читать дальше →