• Submit the cool project: свой API-client с одного конфигурационного файла


      Привет, Хабрахабр! Я тут недавно сделал тулзу, которая генерирует целую обертку-клиент над любым API, который ты только захочешь, с одного yml-файла, а потом сразу же загружает его в Python Package Index (PyPi). Да, результат можно установить в свой любой проект с помощью pip и начать пользоваться. Подробнее под катом!
      Читать дальше →
    • Codekit 3 — современный GUI сборщик для MacOS

      Спор между любителями CLI программ и приверженцами GUI берёт своё начало с появления самых первых ОС с графическим интерфейсом и продолжается до сих пор. Я никогда не имел ничего против хороших GUI приложений и с удовольствием пользовался Codekit с самой первой версии. Сейчас на дворе конец 2016 года и вышло мажорное обновление под номером 3.

      Codekit — это расширяемый front-end сборщик «на стероидах» с графическим интерфейсом и возможностью навешивать скрипты по любому событию. Ближайшими «консольными» аналогами можно назвать Grunt и Gulp. GUI подразумевает невероятно простую конфигурацию — большинство настроек выставляются и меняются с помощью чекбоксов либо радиокнопок. Для всего остального есть мастеркард текстовые поля ввода, в которые вписываются те же параметры, что и в консольных программах.
      Читать дальше →
    • Повышаем производительность поиска с помощью партиционирования индекса в Apache Solr



        Полнотекстовый поиск используется в Wrike почти повсеместно. Поиск в шапке страницы дает возможность быстрого доступа к последним задачам с сортировкой по дате обновления, с совпадением по названию. Такой вариант поиска представлен в разделах «Моя работа» и «Панель задач».
        Поиск в списке задач работает по всем полям: название, описание, имена файлов вложений, авторы, комментарии, дата изменения. Максимальный приоритет у задач, активность по которым связана с текущим пользователем, с фразовым совпадением в названии, описании или в комментариях.
        Упрощенный вариант поиска по названиям используется:
        • при расстановке зависимостей для диаграммы Ганта (предшествующая и последующая задачи),
        • при добавлении ссылок на задачи по названиям (меншенинг),
        • при добавлении подзадач.

        В этих разделах используется instant search с неявным wildcard: пользователь последовательно вводит u, up, upd, update, а поисковые запросы принимают вид: u*, up*, upd*, update*.
        Кроме того, wildcards можно использовать во всех вариантах поиска.
        Таким образом, часто приходят “тяжелые” поисковые запросы, вызывающие многократное чтение индекса, повышенную нагрузку по CPU/IO на серверах и, как следствие, общие задержки в обработке запросов в “часы-пик”.
        В данной статье мы поделимся своим способом решения проблемы производительности.
        Речь пойдет об ускорении поиска при работе с поисковым сервером Apache Solr через партиционирование коллекций. Описанный способ был нами опробован на версиях 4.9.0 и 4.10.2.

        Читать дальше →
        • +9
        • 15,6k
        • 3
      • Создание приложения ToDo с помощью Realm и Swift

        • Перевод
        • Tutorial
        С развитием смартфонов в последние годы было разработано много инструментов, чтобы упростить жизнь разработчикам, обеспечив их максимальной производительностью и качеством. Занимать лидирующие позиций в App Store сегодня не простое задание. А научить ваше приложение масштабироваться еще сложнее. Когда приложением пользуются миллионы пользователей, вы должны следить за приложением и при необходимости выполнять все операции моментально. Поэтому одной из проблем, с которой сталкиваются многие разработчики, является Database. Она действительно вызывает сильную головную боль для каждого из нас, и я думаю, что сегодня у вас есть только два варианта: SQLite и Core Data. Я был большим поклонником Core Data и его способностью работать с записями и сохраняющимися данными, но я понял, что впустую трачу много времени, работая с ним при разработке приложений. Недавно, я столкнулся с Realm, новой лучшей заменой SQLite и Core Data.

        Realm and Swift
        Читать дальше →
      • Подготовка приложения для iOS 9

          9 сентября выйдет новый релиз iOS и OS X. Времени остается все меньше, и многие разработчики уже оптимизировали свои приложения для работы на новых ОС. Тем, кто этого ещё не сделал, предлагаю коротко рассмотреть, что необходимо для поддержки iOS 9.


          Читать дальше →
        • 12 лучших фреймворков для разработки приложений под Android

          • Перевод
          image

          Android – прекрасная платформа для мобильных устройств, она работает на миллионах смартфонов в 200 странах по всему миру. В этом посте я собрал несколько популярных фреймворков для разработки приложений под Android, из числа популярных среди разработчиков.

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

          1) Corona SDK


          Богатый инструментарий для создания игр и приложений за рекордно короткое время

          image

          Обеспечивает возможность очень быстрой разработки. Элегантный API упрощает добавление сложных функций, технологический процесс позволяет сразу же видеть внесённые изменения, сама же разработка идёт на Lua – простом для изучения языке. Всё это приводит к рекордной скорости разработки.

          Самый популярный фреймворк, часто используется разработчиками игр, но подходит для любого рода приложений. Уже более миллиона разработчиков пользуются API, поддержкой нативного интерфейса, встроенным движком и рекламной платформой.
          Читать дальше →
        • Загрузка видео «без единого разрыва»

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

            В чем проблема? — спросите вы. Ставишь серваки с большими дисками, настраиваешь балансировщик — и понеслась. Однако опытный видео-ниндзя знает, что проблем тут целый ворох:
            • В процессе загрузки у пользователя может пропадать соединение с нашим порталом (закрыл ноут, вошел в планшетом в лифт, сел аккумулятор на телефоне и т.п.)
            • Старые устройства не поддерживают современные технологии загрузки (а у нас миллионы пользователей имеют слабые смартфоны или древние браузеры)
            • При том количестве пользователей, которые есть у нас, задача о стабильной заливке видео превращается в задачу о стабильной загрузке видео в огромных объемах.


            Да, это



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

            Видеосервис Одноклассников в деталях
          • Генерируем номер версии и билда на иконке iOS приложения



              В процессе разработки приложение тестируется, и бывает, что нужно знать, какая версия приложения и с каким номером сборки у тестировщика/другого участника процесса установлена. Например, баг уже исправлен, а человек новый билд ещё не поставил и сетует, что ничего не исправлено.

              Зачастую эту информацию прячут где-нибудь, например, в приложении Яндекс.Маркет, нужно ткнуть в раздел Кабинет и выбрать пункт «О приложении»:

              Пример

              Для удобства (или потому, что этот экран ещё не готов), можно вынести эту полезную информацию прямо на иконку приложения.
              Читать дальше →
              • +18
              • 10,1k
              • 9
            • Как мы делаем бюджетные сайты

              • Tutorial


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

              Но комментарий пользователя m00t задел довольно чувствительную для меня струнку. Конфликт интересов бизнеса и интернет-агентств. Множество “мертвых” сайтов, живущих ровно до первого продления доменного имени. Такая ситуация заставляет меня грустить.

              Поэтому в качестве вводной части выступают мои размышления о том, почему не всегда необходимо делать сайт на %framework_name%. Возможно мысли очевидные, возможно нет, но так тому и быть, без них пост будет не совсем полным. И да — то что подходит для нашего дальневосточного рынка, может не подходить для вашего.
              Приступим.
            • Построение модульной системы на основе Nodejs

              Основные требования


              • легкость подключения модулей
              • стандартная структура URL
              • многоязычность
              • автоматическое принятие изменений
              • использование возможностей многопроцессорной системы
              Система построена на базе Express. Для облегчения написания кода используется модуль wait.for
              Читать дальше →
            • OAuth с использованием JWT на salesforce

              • Tutorial

              Общая информация по JWT потоку OAuth





              JSON Web Token (JWT, произносится как английское слово jot) это зашифрованный JSON секюрити токен (security token), который делает возможной идентификацию и предоставление защищенного доступа к информации со стороннего домена.
              Читать далее
            • Freemium против Free: почему мы избавились от бесплатной подписки

              • Перевод
              image

              Выйдя из состояния бета-версии, в нашем стартапе Trak.io мы приняли непопулярное решение: убрали бесплатную подписку и заменили её подпиской за $9/мес.

              Я хочу объяснить причины, по которым это было сделано, и почему мы думаем, что это наилучшее решение как для компании, так и для клиентов.

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


                Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь (архив, ~76 МБ).

                Введение


                Некоторое время назад, если быть точным — 515 дней, вышел пост Маттиаса Одисио (Matthias Odisio) под названием “Random and Optimal Mathematica Walks on IMDb’s Top Films” (Случайные и оптимальные блуждания Mathematica по списку 250 лучших фильмов по версии IMDB). В нем рассказывается о том, каким образом можно получить оптимальную последовательность просмотра фильмов из соответствующего списка, основанную на близости жанров фильмов и близости постеров фильмов с точки зрения цвета.
                Читать дальше →
              • Руководство по виртуализации PCI DSS. Часть 1

                • Перевод
                Стандарт: Стандарт безопасности данных PCI (PCI DSS)
                Версия: 2.0
                Дата: Июнь 2011
                Автор: Специальная группа по Виртуализации Совет Стандартов Безопасности PCI
                Дополнительная информация: Руководство по виртуализации PCI DSS

                Руководство по виртуализации PCI DSS. Часть 2
                Руководство по виртуализации PCI DSS. Часть 3

                1 Введение


                Виртуализация отделяет приложения, компьютеры, машины, сети, данные и сервисы от их физических ограничений. Виртуализация — это развивающееся понятие, охватывающее широкий круг технологий, инструментов и методов, которое может привести к значительным эксплуатационным преимуществам для организаций, которые решают использовать виртуализацию. Как и в любой развивающейся технологии, тем не менее, также по-прежнему продолжают развиваться и риски, которые зачастую менее понятны, чем риски, связанные с более традиционными технологиями.
                Цель данного документа — предоставить руководство по вопросам использования виртуализации в соответствии со Стандартами Безопасности Данных в сфере платежных карт (PCI DSS). Для целей этого документа все ссылки приводятся на стандарт PCI DSS версии 2.0.
                Существует четыре простых принципа, связанных с использованием виртуализации в средах с данными владельцев банковских карт:
                • a. Если технологии виртуализации используются в среде хранения данных о держателях карт, требования PCI DSS распространяются на эти технологии виртуализации.
                • b. Технология виртуализации представляет новые риски, которые не могут быть применены к другим технологиям, и которые необходимо оценивать при использовании виртуализации при работе с данными владельцев банковских карт.
                • c. Реализация виртуальных технологий может значительно отличаться, и организациям нужно выполнить тщательное исследование для выявления и документирования уникальных характеристик их особого применения виртуализации, включая все взаимодействия с процессами перевода платежей и с данными платежных карт.
                • d. Не существует единого метода или решения для настройки виртуализированных сред для удовлетворения требований стандарта PCI DSS. Конкретные средства управления и процедуры будут отличаться для каждой среды, в зависимости от того как выполнена и используется виртуализация.

                Читать дальше →
              • Учить Swift теперь стало проще

                • Tutorial
                После того, как Apple представила абсолютно новый язык программирования Swift, он не перестает быть предметом активного обсуждения на форумах разработчиков и в курилках dev-конференций. Учить язык можно уже сейчас — Apple соорудила подробный мануал по своему детищу. Правда, только на английском.

                Недавно к нам обратился клиент, который хотел исправить этот недостаток и перевести документацию по Swift на русский язык. Благо переводчикам в Alconost не привыкать к задачам по техническому переводу с обилием IT-шной терминологии. Результат порадовал и нас, и клиента: первые главы уже ждут читателей по этой ссылке, вэлкам!

                Мы надеемся, что наши усилия по переводу будут востребованы разработчиками. Да и хаб по Swift не зря на Хабре появился. И все же интересно узнать ваше мнение:

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

                Считаете ли вы нужным для изучения язык Swift?

                • 42,6%Конечно, ведь Objective-C будет отмирать790
                • 20,2%Пока нет, да и никто и никогда от Objective-C не откажется374
                • 37,2%Не знаю, пока не составил мнения о Swift690
              • 5 лучших ORM для Android

                • Перевод


                Как вы понимаете, мы имеем самое непосредственное отношение к разработке приложений для Android, ведь именно эта ОС установлена на YotaPhone. И этим постом мы открываем серию публикаций, в которых будем освещать различные аспекты разработки приложений под Android, делиться опытом, как своим, так и других специалистов. Кстати, некоторое время назад мы уже писали об SDK и особенностях архитектуры YotaPhone, что тоже отчасти перекликается с темой данной публикации: полностью разработанная нами SDK построена по принципам, аналогичным стандартной SDK для Android, чтобы дать разработчикам интуитивно понятные инструменты.

                Если вы разрабатываете приложения под Android, то вам, скорее всего, нужно где-то хранить данные. Вы можете выбрать один из облачных сервисов (в этом случае удобно пользоваться SyncAdapter) или воспользоваться встроенной SQLite-базой данных. Во втором случае вам придётся выбрать между записью SQL-запросов с помощью Content Provider (если вы планируете использовать данные несколькими приложениями) или ORM.

                В этом посте мы рассмотрим некоторые из Android ORM, которые вы можете использовать в своих приложениях.
                Читать дальше →
              • Гибкая настройка графиков в JavaFX



                JavaFX довольно странная штука. С одной стороны он кажется безумно продуманным и удобным настолько, что хочется использовать его где только можно. А с другой стороны он настолько топорный, что хочется его переписать. Некоторые части графического интерфейса работают совсем странно, другие объявлены как final и дополнить их невозможно.
                Если вам интересно, как представлены графические элементы в JavaFX и как можно разнообразить свой график, то открывайте кат, на свой страх и риск.
                Читать дальше →
                • +14
                • 24,7k
                • 6
              • Портативная игровая консоль на основе Raspberry Pi

                  Добрый день!

                  Случайно наткнулся на интересный проект, основанный на Raspberry Pi. На этот раз малину использовали в качестве «мозга» для портативной игровой приставки. На фоне других проектов использующих Raspberry Pi, данный проект выделяет действительно законченный вид. В своих видео, автор проекта Ben Heck показывает все этапы создания приставки с разъяснениями(видео на английском языке).
                  Читать дальше →
                  • +6
                  • 26,4k
                  • 9
                • Как не вытоптать дорожки в парке

                    Размышления о движении, или за что страдают газоны


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

                    Итак, начнем. Я уверен, все не раз замечали такое явление как протоптанные дорожки не совпадающие с тротуарами? А приходилось ли вам задумываться, почему они протоптаны так а не иначе? И почему их протаптывают, когда вокруг много замечательных тротуаров и прочих удобных поверхностей?

                    Давайте с этим разберемся.
                    Читать дальше →
                  • Универсальный манипулятор

                      Человечество всегда находило альтернативный путь решения проблем, который оказывался лучшим, чем прямое подражание природе.
                      Именно по этому у нас автомобили не шагают, самолеты не машут крыльями, а руки роботов не имеют… пальцев!

                      Рука работает очень просто — резиновый шарик наполнен гранулами, между которыми есть воздушное пространство. Когда насос откачивает воздух — шарик сжимается и захватывает объекты. Правда это гениально?