• Перегрузка операторов в C++

      Доброго времени суток!

      Желание написать данную статью появилось после прочтения поста Перегрузка C++ операторов, потому что в нём не были раскрыты многие важные темы.

      Самое главное, что необходимо помнить — перегрузка операторов, это всего лишь более удобный способ вызова функций, поэтому не стоит увлекаться перегрузкой операторов. Использовать её следует только тогда, когда это упростит написание кода. Но, не настолько, чтобы это затрудняло чтение. Ведь, как известно, код читается намного чаще, чем пишется. И не забывайте, что вам никогда не дадут перегрузить операторы в тандеме со встроенными типами, возможность перегрузки есть только для пользовательских типов/классов.
      Читать дальше →
    • Глубокое погружение в определение местоположения

        Этот пост является переводом топика из блога android-developers. Далее повествование ведется от Рето Майера, автора книги Professional Android 2 Application Development. Он пишет о том, как можно улучшить приложения, использующие местоположение, в смысле кэширования результатов, скорости работы и так далее.

        Без разницы, ищете ли вы место, где бы поесть, или ближайшее место велосипедов Boris Bike, всегда есть задержка при получении данных местоположения от GPS и заполнении абстрактного списка результатов в вакууме. Когда вы находитесь в месте, где хотели бы получить контекстную информацию, то часто вы сталкиваетесь с отсутствием подключения к данным.

        Вместо того, чтобы грозить кулаком в небо, я написал open-source приложение, которое включает в себя советы и рекомендации по сокращению времени между открытием приложения и просмотром актуальной информации о близлежащих местах, вкупе с разумным обеспечением offline режима работы. И всё это, сохраняя использование аккумулятора на возможном минимуме.
        Читать дальше →
        • +31
        • 20.6k
        • 1
      • Skype is down again

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

          UPD: обновление от Скайпа:

          A configuration problem has meant that some of you have been disconnected from Skype.

          We've identified the cause of the problem, and have begun to address it. If you've been affected, you should start to see improvement in the next hour or so. You shouldn't need to manually sign back in to Skype — it should reconnect automatically when it's able to do so.

          We apologise for the disruption to your conversations.

          — Проблема найдена и работы ведутся. В течении часа ожидается исправление. Перелогиниваться не надо, всё починится само.
          via

          Спасибо хабраюзеру charon

          UPD2: We are continuing to address today's problems, and are seeing indications that the situation is improving.

          If you were disconnected from Skype earlier, you shouldn't need to manually sign back in to Skype — it should reconnect automatically when it's able to do so.

          We apologise for the disruption to your conversations.

          Спасибо, jin911

          P.S. У меня уже всё работает.
        • Отслеживание продаж при помощи Google Analytics

            Пытаясь придерживаться традиции, публикую перевод очередной статьи из блога разработчиков android-developers. На этот раз статья посвящена отслеживанию продаж внутри приложений при помощи Google Analytics Android SDK.

            Почему это важно?


            Если вы распространяете некие товары через своё приложение, то, скорее всего, вы захотите узнать, каков реальный доход, генерируемый продажами. А также, например, список самых популярных или самых продаваемых товаров.
            Читать дальше →
            • +18
            • 6.7k
            • 3
          • Магия шаблонов или вычисление факториала на стадии компиляции

              Доброго времени суток, Хабралюди!

              Гуру C++, а также люди смыслящие в шаблонном метапрограммировании могут смело пропускать этот топик, ничего нового для себя они здесь не найдут. Однако, если после прочтения заголовка, у вас в голове еще не возникло решение данной задачи (и даже если оно возникло, но не при помощи шаблонов), то милости просим под кат.
              Читать дальше →
            • Отчеты о продажах на Android Market

                Буквально на днях Google предоставила возможность разработчикам получать ежемесячные отчеты об их продажах на Android Market. Отчеты включают в себя детализированную информацию о продажах (до отдельной трансакции), а также дополнительную: информация об устройстве, валюта продажи, текущий конверсионный курс. Кроме этого есть возможность полностью скачать отчеты в CSV-файле.

                image

                На текущий момент доступны отчеты за март этого года. Также обещается, что появятся отчеты за остальные месяцы до января 2010 года. Вообще, отчеты за предыдущий месяц будут появляться на десятое число каждого месяца. Со всеми вопросами и предложениями рекомендуется обращаться в Market Help Center.
              • Подборка генераторов CSS



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

                  (Осторожно! Много картинок)
                  Читать дальше →
                • Кастомизация виджета Action Bar

                    imageСтатья является переводом топика из блога android-developers. В ней показывается, как стилизовать виджет Action Bar нужным вам образом. В качестве примера рассматривается изменение оформления виджета под общую цветовую гамму вышеописанного блога.
                    Читать дальше →
                  • Упрощенный алгоритм Бойера-Мура

                      Прочитав статью об алгоритмах поиска подстроки в строке, я обнаружил, что там не рассказывается об алгоритме Бойера-Мура. Пара слов о нём всё-таки там есть, а именно, говорится, что алгоритм Бойера-Мура заслужил себе звание «алгоритма по умолчанию», потому что он в среднем дает лучшее время поиска (с чем я полностью согласен). Под катом рассказано об упрощенной версии этого алгоритма. В принципе, большинство скорее всего изучало этот алгоритм на 1-м или 2-м курсе ВУЗа (как и я), поэтому они могут пропустить эту статью, ничего нового тут нет.
                      Читать дальше →
                    • Отслеживание установок приложений

                        В официальной Google-группе, посвященной Android'у, время от времени появляются жалобы разработчиков о том, что трудно найти уникальные, надежные и стабильные идентификаторы для Android-устройств.
                        В блоге android-developers был опубликован небольшой топик, посвященный тому, как отслеживать индивидуальные установки приложений. Думаю, кому-то это будет полезно.
                        Читать дальше →
                        • +34
                        • 13.4k
                        • 6
                      • Анализ памяти для Android приложений

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

                        • Translation
                        Renderscript — новая фича, введенная в Honeycomb. Также известно, что ранее Renderscript уже использовался разработчиками Android'a (например встроенные живые обои в 2.1(Eclair) были написаны на нём). Так или иначе, полный доступ к API был открыт только в Honeycomb. В первой вводной статье из блога разработчиков (оригинал|перевод) обещалось, что скоро будет вторая, с более подробным описанием архитектуры Renderscript и примером его использования. Собственно, под катом и то и другое.
                        Читать дальше →
                      • Networking — что же происходит за кулисами? Part 2 (полностью русская версия)

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



                          Перевод выполнен не мной, а одним добрым человеком 5 лет назад, совместно с его одногрупником.
                        • Набор инструментов для построения графиков, блок-схем и диаграмм



                            Есть много разных сервисов, облегчающих жизнь веб-разработчику или дизайнеру, в том числе создающих разные графики, диаграммы, блок-схемы и т.д. Ниже представлена небольшая подборка.
                            (Осторожно, много изображений)
                            Читать дальше →
                          • Планшеты на Android теперь и в индийских автобусах

                              image

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

                              Читать дальше →
                            • Введение в Renderscript

                              • Translation
                              Renderscript — это важная особенность Honeycomb, которая не обсуждалась ранее. Всего будет две статьи, эта — простой обзор Renderscript, следующая же будет содержать больше технических подробностей и простой пример.

                              Renderscript — это новый API, направленный на высокую производительность при 3D рендеринге и сложных вычислительных операциях. Renderscript будет интересен разработчикам, пытающимся максимизировать производительность их приложений и чувствующим себя комфортно при работе на низком уровне. Для разработчиков доступны три инструмента: простой API для 3D рендеринга, поддерживающего аппаратное ускорение, API для моделирования сложных вычислений (похожий на CUDA), и язык стандарта близкого к C99.
                              Читать дальше →
                              • +19
                              • 7.5k
                              • 4
                            • Fragments API в Android 3.0

                              • Translation
                              В Android 3.0 введена новая концепция фрагментов, которая служит для упрощения работы с интерфейсом под разные размеры экранов. Данный топик является переводом статьи с android-developers.blogspot.com. В ней рассмотрены преимущества фрагментов, а также приведен простой, но законченный пример приложения, работающего по этому принципу.

                              Важная цель Android 3.0 — упростить написание программ, которые должны масштабироваться в зависимости от размеров экрана. Для этого в платформе Android уже доступны следующие средства:
                              • С самого начала, UI-фреймворк был спроектирован для использования layout managers, которые позволяют описывать интерфейс так, чтобы он «подгонялся» к размерам. Примером этого является ListView, высота которого изменяется в зависимости от размера экрана, который варьируется между соотношениями QVGA, HVGA, and WVGA.
                              • В Android 1.6 была введена новая концепция плотности экрана, позволяющая приложениям легче масштабировать размеры между разными разрешениями, в то время как экраны имеют почти один и тот же физический размер. Разработчики незамедлительно начали использовать эту особенность, когда были введены телефоны с высоким разрешением, такие как Droid.
                              • Также в Android 1.6 разработчикам стали доступны размеры экрана, при помощи их классификации: «small» для соотношения QVGA, «normal» для HVGA и WVGA, и «large» для более больших экранов. Разработчики могут использовать систему ресурсов для выбора между различными layout'ами, в зависимости от размера экрана

                              Читать дальше →
                            • Защита Android приложений от реверс-инжиниринга — ProGuard

                                ProGuard — это утилита для сокращения, оптимизации и обфускации кода. На выходе вы получаете *.apk меньшего размера, который намного сложнее реинжинирить. На developer.android.com написано, что ProGuard внедрен в систему сборки Android приложений. Однако, я заметил, что эта утилита появилась в моей папке с SDK только после обновления до r9.
                                Читать дальше →