• Sampler. Консольная утилита для визуализации результата любых shell команд

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


      Sampler


      Наблюдение за изменением состояния в базе данных, мониторинг размера очередей, телеметрия с удаленных серверов, запуск деплой скриптов и получение нотификации по завершению — конфигурируется за минуту простым YAML файлом.


      Код доступен на гитхабе. Инструкции по установке — для Linux, macOS и (экспериментально) Windows.

      Читать дальше →
    • Руководство по реализации авто-возобновляемых подписок в iOS-приложениях

      • Tutorial

      image


      Всем привет! Меня зовут Денис, я разрабатываю Apphud – сервис по аналитике авто-возобновляемых подписок в iOS-приложениях.


      В данной статье я расскажу как настроить, реализовать и валидировать авто-возобновляемые подписки в iOS 12 и iOS 13. Бонусом расскажу о тонких моментах и подводных камнях, которые не все разработчики учитывают.

      Читать дальше →
    • Делаем таблицу с бесконечной прокруткой без event listener

      • Translation

      Что ж оно так лагает-то?



      Если при рендеринге огромной таблицы с какой-нибудь transition анимацией не делать ничего дополнительно, то приложение будет лагать, а пользователь страдать.


      И что же делать?
    • Как реализовать контекстные меню (Context Menu) в iOS 13

        Всем привет, меня зовут Денис, мы разрабатываем сервис по аналитике подписок iOS-приложений – Apphud.


        На WWDC 2019 Apple представила новый способ взаимодействия с интерфейсом вашего приложения: контекстные меню. Они выглядят так:



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

        Читать дальше →
      • Мой опыт внедрения 1С (часть 1. Вводная)

          Всем привет!

          Я автор этой статьи. И пришло время написать продолжение… спустя почти 4 года.

          На момент написания прошлой статьи я была студенткой колледжа, сейчас я студентка вуза. На момент написания статьи я работала официанткой, сейчас я руковожу внедрениями 1С в организации, которая занимается внедрением и сопровождением 1С в государственных учреждениях. Но я пришла не хвастаться, мне хочется поделиться своим опытом с тобой, дорогой читатель. Я каждый день ищу что-то в сети, и найди я свой сегодняшний пост 2,5 года назад, когда я начинала работать с 1С, моя жизнь была бы куда проще. Но, с другой стороны, тогда бы я не получила этот драгоценный опыт, ведь как известно, из того, что мы запоминаем в течении дня, большая часть – наш личный опыт, и лишь небольшая – это то, что мы прочитали, тем более где-то в сети. Но я искренне надеюсь, что ты прочитаешь и тебе это поможет, может немножко, но ты все-таки задумаешься, с чего начинать работу над внедрением. Поехали.

          Чем же я поделюсь? Своими выводами, исходя из нескольких внедрений. Не важно, что вы внедряете, с кем вы это делаете, в какой организации – эти выводы подходят под любой процесс.
          Читать дальше →
        • Attention! S in Ethereum stands for Security. Part 1. Blockchain things


            С этой статьи мы начинаем цикл, посвященный типичным уязвимостям, атакам и проблемным местам, присущим смарт-контрактам на языке Solidity, и платформе Ethereum в целом. В первой части мы поговорим вот о чем:


            • почему сложно реализовать децентрализованную биржу на смарт-контрактах
            • как сгенерировать случайное число
            • как вывести из строя всю Proof-of-Authority сеть
            Читать дальше →
          • Blockchain на Go. Часть 5: Адреса

            • Translation
            • Tutorial
            Содержание

            1. Blockchain на Go. Часть 1: Прототип
            2. Blockchain на Go. Часть 2: Proof-of-Work
            3. Blockchain на Go. Часть 3: Постоянная память и интерфейс командной строки
            4. Blockchain на Go. Часть 4: Транзакции, часть 1
            5. Blockchain на Go. Часть 5: Адреса
            6. Blockchain на Go. Часть 6: Транзакции, часть 2
            7. Blockchain на Go. Часть 7: Сеть

            Вступление


            В предыдущей статье мы начали реализацию транзакций, а также ознакомились с принципом ее работы: нет учетных записей, личные данные (например, имя или серия и номер паспорта) не требуются и не хранятся нигде в Bitcoin. Но все же должно быть что-то, что идентифицирует вас как владельца выходов транзакции (т. е. владельца монет, заблокированных на выходах). И это то, для чего нужны адреса в Bitcoin. До сих пор мы использовали произвольные строки в качестве адресов, теперь пришло время реализовать реальные адреса, таким образом, каким они реализованы в Bitcoin.
            Читать дальше →
          • Blockchain на Go. Часть 4: Транзакции, часть 1

            Привет, Habr! Представляю вашему вниманию перевод статьи "Building Blockchain in Go. Part 4: Transactions 1".

            Содержание

            1. Blockchain на Go. Часть 1: Прототип
            2. Blockchain на Go. Часть 2: Proof-of-Work
            3. Blockchain на Go. Часть 3: Постоянная память и интерфейс командной строки
            4. Blockchain на Go. Часть 4: Транзакции, часть 1
            5. Blockchain на Go. Часть 5: Адреса
            6. Blockchain на Go. Часть 6: Транзакции, часть 2
            7. Blockchain на Go. Часть 7: Сеть

            Вступление


            Транзакции являются сердцем Биткоина, и единственная цель цепи блоков — это хранить транзакции безопасным и надежным способом, чтобы никто не смог модифицировать их после создания. В этой статье мы начинаем работу над реализацией механизма транзакций. Но поскольку это довольно большая тема, я разбил ее на две части: в этой части мы реализуем общий механизм, а во второй части мы детально разберем весь остальной функционал.
            Читать дальше →
          • Blockchain на Go. Часть 3: Постоянная память и интерфейс командной строки

            • Translation
            • Tutorial
            Содержание

            1. Blockchain на Go. Часть 1: Прототип
            2. Blockchain на Go. Часть 2: Proof-of-Work
            3. Blockchain на Go. Часть 3: Постоянная память и интерфейс командной строки
            4. Blockchain на Go. Часть 4: Транзакции, часть 1
            5. Blockchain на Go. Часть 5: Адреса
            6. Blockchain на Go. Часть 6: Транзакции, часть 2
            7. Blockchain на Go. Часть 7: Сеть

            Вступление


            В предыдущей части мы построили блокчейн с PoW системой и возможностью майнинга. Наша реализация всё ближе к полностью функциональному блокчейну, но ей все ещё не хватает некоторых важных функций. Сегодня мы начнем хранить блокчейн в базе данных, после этого сделаем интерфейс командной строки для операций с блокчейном. По сути, блокчейн — это распределенная база данных. Мы пока опустим «распределенная» и сосредоточимся на «база данных».
            Читать дальше →
          • Написание blockchain менее чем за 200 строк кода на Go

            • Tutorial

            Привет, Хабр! Представляю вашему вниманию перевод статьи "Code your own blockchain in less than 200 lines of Go!".


            image

            Данный урок является хорошо адаптированным постом про простое написание blockchain на Javascript. Мы портировали его на Go и добавили дополнительных фич, таких как просмотр цепочек в браузере.

            Читать дальше →
          • Программный сбор данных о котировках

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

            Эффективные действия на бирже связаны с тщательным анализом происходящего на рынке. Что кроется за динамикой цифр, котировок?
            Читать дальше →
          • Тяжелая терапия: лекарство от палева для MacOS

            Вы скажете, что тут и из коробки все отлично и вроде все гениально, вплоть до автогенерации такого пароля для web-сайтов, который даже зрительно не воспринимается с пятой попытки, однако, представим себе, что для нас важно защититься не только от повседневных хакеров, но и от самих разработчиков системы.
            Читать дальше →
            • +19
            • 7.3k
            • 7
          • Методика тестирования крипто-бирж и крипто-кошельков

            • Tutorial

            Крипто-кошельки и крипто-биржи могут пострадать от хакерских атак (или от глупости пользователей, разработчиков, а также проблем с логикой работы системы). Помочь этому могло бы тестирование для выявления уязвимостей и проблем в логике работы приложения, однако я так и не нашел формализованной методики, в которой было-бы написано на что нужно обращать внимание во время тестирования. Протестировав уже добрый десяток бирж и кошельков, я решил формализовать порядок их тестирования, кому интересно, добро пожаловать под кат.
            Читать дальше →
            • –2
            • 3.2k
            • 3
          • Гид по владению аккаунтами и контрактами в Ethereum

            • Tutorial


            Материал, который мы решили сегодня опубликовать, родился уже около 6 месяцев назад и до сих пор не потерял своей актуальности (может быть, пришлось его чуть-чуть освежить). Тогда мы еще были способны удивляться, глядя на бизнесменов и стартаперов, намеревающихся проводить ICO, но при этом не способных сделать транзакцию с переводом одной эфирки. Сегодня мы уже перестали удивляться, но таких персонажей не стало сильно меньше.


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


            Если для вас эта статья не несет ничего нового — супер, мы очень рады, что вы в нашем «клубе». И, кстати, теперь у вас есть куда отправлять всех криптонеофитов, чтобы они случайно не потеряли по глупости все свои эфирки.

            Читать дальше →
            • +28
            • 18.3k
            • 7
          • Организация навигации в iOS-приложениях с помощью Root Controller

            • Translation


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

            В данной статье мы спроектируем навигацию в приложении так, чтобы избежать наиболее частых ошибок, которые приводят к утечкам памяти, портят архитектуру и ломают структуру навигации.
            Читать дальше →
            • +10
            • 5.9k
            • 6
          • Реализация навигации в Android приложениях с помощью Navigation Architecture Component

            • Translation

            image


            От переводчика


            Здравствуйте, хабрчане. Это перевод статьи-документации к новой технологии Navigation для Android-разработчиков. Технология сейчас находится в стадии разработки, но уже доступна для использования и очень даже работает в превью версии Android Studio 3.2 и выше. Я уже опробовал её в действии и могу сказать что меня она впечатлила. Наконец-то осуществление смены экранов перестало быть чем-то сложным, особенно если используется передача данных от одного экрана к другому. Собственно, перевод я делаю для того чтобы больше русскоязычных разработчиков обратило внимание на технологию, и чтобы упростить её изучение.
            Если заметите существенные ошибки или неточности, прошу сообщать в комментариях.

            Читать дальше →
            • +15
            • 30.6k
            • 9
          • Машинное обучение и мобильная разработка

              Как правило, data scientist имеет смутное представление о мобильной разработке, а разработчики мобильных приложений не занимаются машинным обучением. Андрей Володин — инженер Prisma AI живет на стыке этих двух миров и рассказал ведущим подкаста Podlodka, каково это.

              Воспользовавшись моментом, Стас Цыганов (Туту.ру) и Глеб Новик (Тинькофф Банк), во-первых, раз и навсегда прояснили, что никто не обучает нейронные сети на мобильных устройствах. А также разобрались, что в машинном обучении, к сожалению, нет маги; обсудили современные техники вроде глубокого обучения, обучения с подкреплением и капсульных сетей.

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

              Далее текстовая версия этой беседы, а запись подкаста здесь.
              Читать дальше →
              • +31
              • 13.4k
              • 3
            • Автоматизируем UI-тесты Android приложения с использование паттерна Page Object

                image

                Паттерн Page Object появился в тестировании web и очень хорошо себя там зарекомендовал. Когда я начал автоматизировать тесты для android приложения, то первым делом подумал про него. Поискал информацию в сети, поспрашивал коллег и, в принципе, не нашел доводов не попробовать. Предлагаю посмотреть, что из этого вышло.
                Читать дальше →
              • 1M HTTP rps на 1 cpu core. DPDK вместо nginx+linux kernel TCP/IP

                  Я хочу рассказать о такой штуке как DPDK — это фреймворк для работы с сетью в обход ядра. Т.е. можно прямо из userland писать\читать в очереди сетевой карты, без необходимости в каких либо системных вызовах. Это позволяет экономить много накладных расходов на копирования и прочее. В качестве примера я напишу приложение, отдающее по http тестовую страницу и сравню по скорости с nginx.
                  Читать дальше →