• Шардинг MySQL на Yii Framework

      Начну с того, что наш проект находится на начальной стадии развития, а его запуск планируется на 1е ноября. И, чтобы сразу отсечь всю возможную критику касаемо преждевременной оптимизации, скажу, что перед командой была поставлена задача разработать приложение, справляющееся с резкими скачками нагрузки (от 1000 до 50000 и т. п.). В связи с этим было решено закладывать хорошо масштабируемую архитектуру, позволяющую легко и быстро увеличивать производительность системы за счет аппаратной части (по принципу scale-out).

      Что мы для этого сделали...
    • Еще с десяток полезных opensource-библиотек для iOS-разработчика

        После того, как я в прошлый раз написал статью об основах CocoaPods, мне пришла в голову идея, что библиотеку подов можно и нужно использовать как отличный источник opensource iOS-проектов как для новичков, так и для опытных программистов. После установки ruby-пакета cocoapods (все в той же статье), вам станет доступна возможность искать полезные библиотеки по ключевым словам прямо из командной строки:

        И вот что сейчас сообщество использует.

        Читать дальше →
      • Учим SQLite работать с локализированным календарем

          Учим  SQLite работать с локализированным календарем



          Часть1 — Английская версия, Часть2



          Недавно мне довелось портировать (точнее, переписывать) под iOS приложение для анализа посещаемости сайта. Поскольку данные подходили под реляционную модель, мы решили использовать SQLite. Насколько я знаю, других реляционных СУБД под iOS просто нет.

          Долго ли, коротко ли… Пришло время подсчитать понедельный КПД для определенного диапазона дат.
          Что же произошло дальше?
        • Уменьшаем размер своего iOS приложения

          Хочу поделиться способом, который позволит сэкономить несколько мегабайт «лишнего» веса в вашем iOS приложении. Зачем это может понадобиться? Во-первых, если ваше приложение чуть больше 20 Мб, то его нельзя будет скачать по 3G, а только используя Wi-Fi или синхронизацию c iTunes (ограничение со стороны Apple). Ну, а во-вторых, если вы любите все оптимизировать или просто хотите чуть-чуть сократить время загрузки вашего апа.
          Все нижеперечисленные пункты я проверял и использовал в своем апе, сэкономив суммарно около 4 Мб. Кажется не очень то и много, но если, например, умножить на 5000 тысяч загрузок в день, то уже получим около 20 Гб сэкономленного трафика. Итак, приступим.
          Читать дальше →
        • Веселые шрифты в своем приложении

            Игровые приложения для детей и взрослых скучны без веселых букв и цифр.
            Строгий iPhone кодекс не давал разработчику до версии iOS 3.2 стандартных способов использовать свои шрифты в приложениях.
            Все спасались нарисованными в редакторе картинками цифр и букв или чужими библиотеками.

            image

            Как теперь обстоит дело с custom fonts для разработчиков iPhone поделок?
            Осторожно! Под хабракатом 1 картинка, 1 анекдот сомнение и 2 фрагмента кода.

            Читать дальше →
          • Вертикальный скроллинг содержимого страницы в стиле Mac OS X Lion

              Добрый день, Хабр!

              Не так давно я оставлял весьма категоричный комментарий в топике о модернизации скроллбаров а, буквально, через пару дней был вынужден сам решать задачу о его (скроллбара) модернизации. Так уж сложились звёзды, что в пользовательском интерфейсе одного из проектов стандартной полосе прокрутки место было найти можно, но крайне нежелательно. Из всех возможных вариантов было выбрано нечто среднее между скроллбаром нового Gmail'а, благо задачи похожи и Mac OS X Lion, потому что «ох, они круты ». Я вооружился js и jQuery, и на свет было произведено это.
              Читать дальше →
            • Open Source-расширения для yii от команд 2ГИС

                В прошлый раз мы рассказали о слоистой архитектуре во фреймворке yii, а сейчас хотим поделиться кодом.

                В своей работе мы активно используем open source-решения и поэтому решили поделиться собственными разработками, которые могут быть полезны сообществу. Сегодня это расширения для, наверное, лучшего в мире PHP-фреймворка yii:
                • DGSphinxSearch
                • AMQP(RabbitMQ)
                • MQLogRouter
                • DGPinbaLogRoute
                • DGApiClient
                Рассмотрим эти расширения по порядку.

                Читать дальше →
                • +75
                • 18.4k
                • 9
              • MemCache для iOS

                Предистория появления класса MemCache тривиальна. Есть в разработке проект который большую часть времени занимается подгрузкой небольших объемов данных из сети. В основном JSON данные и небольшие изображения. В каждом контроллере был объявлен NSMutableDictionary в котором и сохранялись результаты запросов. Но с ростом количества контроллеров возникло две проблемы — дублирование кода и потеря результатов кеширования при вызове popViewController.

                Под катом решение этих проблем.
                Читать дальше →
              • APNG (анимированный PNG) в Google Chrome, Safari и IE

                • Tutorial
                В последние дни при веб-сёрфинге мне попадаются разнообразные полезные «костыли», и я тотчас же пишу о них на Хабрахабре. Вот ещё один.

                Как известно, анимированные PNG в формате APNG не включены в стандарт PNG, из-за чего ряд браузеров (IE, Safari, Google Chrome) анимацию в этих изображениях не поддерживают (а вместо неё показывают статический кадр). Чтобы преодолеть эту проблему, предприимчивый Lord_D даже пробовал засовывать кадры по одному в сжатый SVG. Надеюсь, его смелость даёт полное представление о том, до каких крайностей способен в отчаянии дойти веборазработчик.

                К счастью, можно обойтись и без крайностей. Евгений Степанищев упомянул о том, что Давид Мзареулян сочинил и выложил на Github библиотеку apng-canvas, обеспечивающую кроссбраузерное отображение APNG во всех тех браузерах (включая стандартный браузер Android), которые сами по себе APNG не понимают. Отображение достигается отрисовкою на холсте (<canvas>).

                Объём этой библиотеки — чуть больше 4 Kb.

                Читать дальше →
              • Использование ActiveRecord для работы с Core Data

                Введение


                Active Record — это паттерн проектирования приложений, использующих для хранения информации базу данных. Таблица базы данных отображается в виде класса приложения, а отображением объекта класса является строка таблицы.
                Читать дальше →
              • Аспекты HTML & CSS

                В данном материале собраны аспекты, которые полезно знать и помнить html developer-у. Часть вопросов посвящена IE — сам отказался от поддержки IE6, однако знать особенности его поведения не будет лишним.
                Читать дальше →