• Создание масштабируемого API на спотовых инстансах AWS

    • Tutorial

    Всем привет! Меня зовут Кирилл, я CTO в Adapty. Большая часть нашей архитектуры находится на AWS, и сегодня я расскажу о том, как мы сократили расходы на сервера в 3 раза за счёт использования спотовых инстансов на продакшн окружении, а также о том, как настроить их автомасштабирование. Сначала будет обзор того, как это работает, а потом подробная инструкция для запуска.


    Что такое спотовые инстансы?


    Спотовые инстансы — это сервера других пользователей AWS, которые в данный момент простаивают, и они продают их с большой скидкой (Amazon пишет до 90%, по нашему опыту ~3x, варьируется в зависимости от региона, AZ и типа инстанса). Основное их отличие от обычных в том, что они могут выключиться в любой момент. Поэтому мы долгое время считали, что их нормально использовать для дев окружений, либо для задач по расчёту чего-то, с сохранением промежуточных результатов на S3 или в базу, но не для прода. Существуют сторонние решения, которые позволяют использовать споты на проде, но там для нашего кейса много костылей, поэтому мы не внедряли их. Подход, описанный в статье, работает полностью в рамках стандартного функционала AWS, без дополнительных скриптов, кронов и тд.

    Читать дальше →
  • iOS in-app purchases: Конфигурация и добавление в проект

    • Tutorial

    Всем привет, меня зовут Виталий, я основатель Adapty. Подписки — один из способов монетизировать приложение. С их помощью вы можете дать пользователю возможность получить постоянный доступ к обновляемому контенту в приложении или же к предоставляемому сервису. В отличие от обычных покупок, где Apple берет себе 30% комиссию, на подписках эта комиссия сокращена до 15% в случае, если пользователь подписан в течение 1 года и более. Важный момент: если пользователь отменит подписку, то данный счетчик сбросится через 60 дней.


    ​​В этой части мы научимся:


    • Создавать покупки в App Store Connect
    • Конфигурировать подписки — указывать длительность, стоимость, пробные периоды
    • Получать список покупок в приложении

    когда подключаешь покупки в приложении

    Читать дальше →
  • Перенос веб-сервиса на Яндекс.Облако с AWS

      Всем привет! Меня зовут Виталий Давыдов, я основатель компании Poteha Labs.

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

      Обзор Яндекс.Облака
      Читать дальше →
    • 20 самых популярных лекций TED Talks всех времён

        Фонд TED с 1984 года проводит конференции, выбирая для них самые интересные темы и самые инновационные идеи. Например, на первой конференции 1984 года были представлены только что выпущенный Macintosh, инновационный компакт-диск от Sony, математик Бенуа Мандельброт продемонстрировал практическое применение своей теории фракталов, а специалист по искусственному интеллекту Марвин Минский разъяснил новую модель разума.

        Каждое выступление (лекция) на конференции TED называется TED Talk и публикуется в онлайне, сейчас на сайте скопилось уже более 400 видеозаписей. Поскольку все они посвящены невообразимо интересным темам, даже сложно предположить, какие пользуются наибольшим интересом у зрителей. Официальный блог TED Blog опубликовал список Топ-20 лекций за все времена по количеству просмотров, собрав статистику с TED.com, Youtube, iTunes, Hulu, встроенных фреймов, количества скачиваний и т.д.
        Читать дальше →
      • Советы Google по кодированию на языке Python. Часть первая: советы по программированию


        Хай, Хабр!
        Сегодня я хочу представить, дорогому хабрасообществу свой первый хабраперевод. Программировать на языке Python — подобно песне. Но еще лучше, когда Ваш код читаем и понятен, а значит чуть более поэтичен, чем обычно бывает производстве. У каждого свои правила и свои стереотипы относительно написания и оформления исходного кода, на каком бы языке он ни был написан. Множество копий сломано о щиты на форумах, но, как ни крути, нельзя не считаться с мнением авторитетных товарищей. Так что сейчас будет представлен перевод первой части стайл-гайда для языка Python от Google. Коснется он именно постулатов написания кода (вторая часть тоже скоро появится, а посвящена она будет форматированию исходного кода). Сразу предупреждаю: тут много (если не большая часть) прописных истин, которые все знают уже давно. Но я искренне надеюсь, что Вы сможете найти тут что-то новое или хотя бы вспомнить старое. Приступим под катом. И pdf тут как тут.
        Читать дальше →
      • Как обойтись без капчи?

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

          Читать дальше →
        • Кроссбраузерная кастомизация системного скроллбара



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

            Под катом можно узнать, как в ближайшее время будет работать скролл в 2ГИС Онлайн.
            Подробности
          • Система уведомлений о событиях на сайте (на примере аудиоплеера ВКонтакте)

              Приветствую.

              Думаю, многие, кто имеет аккаунт ВКонтакте и слушает там музыку, замечали, что если на одной вкладке включить трек, а затем уже на другой включить второй, первый трек уйдет в паузу. Примерно то же самое происходит с различными уведомлениями (новое сообщение, ответ на комментарий/запись и т.д.) — отображается оно только в активной вкладке. Кому интересно как это работет и каким образом сделать подобное у себя на сайте, милости просим за хабракат.
              Читать дальше →
            • Всем, всем, всем: время обновлять свой CSS3

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

              Читать дальше →
            • Создаем адаптивную страницу портфолио с фильтрами

              • Tutorial
              Доброго времени суток уважаемые хабражители. На сегодняшний день уже многие знакомы с понятием адаптивный дизайн и я хочу поделиться интересной реализацией страницы портфолио с фильтрами.

              Netcribe
              ДЕМО

              Читать дальше →
            • Веб-контроль Raspberry Pi GPIO

              • Translation
              • Tutorial
              Доброго времени суток! В этом посте я хочу показать, как управлять электроникой через Интернет используя Raspberry Pi. Выглядеть это будет примерно вот так.



              Краткое описание:
              • Серверная программа, которая работает на Raspberry Pi, для того чтобы читать переменные
              • Базы данных MySQL для хранения переменных
              • Веб-страница Apache2, для того чтобы контролировать переменные


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

              Данный плагин для jQuery позволяет автоматически подбирать подходящую маску ввода на основе введённого начала телефонного номера. Это позволяет сделать ввод номера телефона на странице web-cайта более быстрым и безошибочным. Кроме того, разработанный плагин может быть использован в других областях, если правила ввода возможно представить в виде нескольких масок ввода.
              Читать дальше →
            • Как понять, хорош ли ваш проект для инвестора: чеклист стандартных грабель стартапа


                Бизнес-ангел часто смотрит на стартаперов с недоумением

                Предположим, вы придумали какое-то железо, и теперь хотите начать его производство. У вас уже есть прототип: вот он, в руке, коряво выглядит, в 4 раза больше нормального размера и из него торчит провод. Но он работает. У вас горят глаза: ведь осталось только «допилить» его и начать производить по всему миру. Из маркетингового плана у вас есть только «запостить про железку на Хабр – и всё закрутится».

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

                Так вот, я занимаюсь тем, что отбираю стартапы для крупных и действительно крупных инвестиций. Ниже я хочу рассказать вам о том, как оценка проекта выглядит «с той стороны» для компаний, рассчитывающих не «срубить бабла по-быстрому», а готовых вкладываться в длинные проекты.
                Читать дальше →
                • +115
                • 72.2k
                • 51
              • Как понравиться инвестору (и не только). 10 ошибок при презентации проекта

                  Хочешь презентовать как Стив Джобс? Искусству презентаций можно обучиться довольно быстро. Но на первом выступлении сознание путается, и рассказчик повторяет все типичные ошибки. Я собрал самые очевидные из них. Это не советы из умных книжек, а недавний живой опыт таких же как ты. Как быстро сделать презентацию эффектной, и каких грубых ошибок стоит избегать с самого начала? С примерами.


                  Читать дальше →
                • Extensionizr — шаблонизатор дополнений для хрома

                    Привет хабравчане!
                    Увидев мой проект в блоге компании Zfort Group (тут) я решил поделится с вами обзором про проект и его реализацией.

                    Идея: быстро создать базовый шаблон для дополнений хрома, включая конфиг в manifest.json.
                    Extensionizr.com построен как веб-приложение, и на выходе генерирует zip архив.
                    Всё происходит на стороне клиента с помощью Javascript, включая архивацию.


                    Подробности
                  • Ошибки PHP: классификация, примеры, обработка

                    В статье представлена очередная попытка разобраться с ошибками, которые могут встретиться на вашем пути php-разработчика, их возможная классификация, примеры их возникновения, влияние ошибок на ответ клиенту, а также инструкции по написанию своего обработчика ошибок.
                    Читать дальше →
                  • Google Cloud Messaging – пишем backend на PHP

                    • Tutorial
                    imageВ рамках туториала мы напишем полноценный класс для отправки сообщений на GCM сервер, который:

                    • получает на вход массив данных для отправки
                    • формирует пакеты для отправки размером до 4096кб каждый.
                    • отправляет пакеты параллельными запросами.
                    • анализирует ответ и знает:
                      • успешно доставлено ли сообщение
                      • тип ошибки


                    Читать дальше →
                    • +9
                    • 29.1k
                    • 8
                  • Ликбез по типизации в языках программирования

                    image

                    Эта статья содержит необходимый минимум тех вещей, которые просто необходимо знать о типизации, чтобы не называть динамическую типизацию злом, Lisp — бестиповым языком, а C — языком со строгой типизацией.

                    В полной версии находится подробное описание всех видов типизации, приправленное примерами кода, ссылками на популярные языки программирования и показательными картинками.
                    Читать дальше →