Асинхронные HTTP-запросы на C++: входящие через RESTinio, исходящие через libcurl. Часть 3

Автор: admin от 2-03-2018, 12:35, посмотрело: 48

В предыдущей статье мы разобрали реализацию двухпоточного bridge_server-а. На одном потоке асинхронно обрабатываются входящие HTTP-запросы посредством RESTinio. На втором потоке выполняются асинхронные запросы к delay_server-у посредством libcurl в виде curl_multi с использованием функций curl_multi_perform и curl_multi_wait.



Сегодня же мы разберем другую реализацию bridge_server-а, которая асинхронно обслуживает и входящие, и исходящие HTTP-запросы на одном и том же пуле потоков. Из libcurl-а для этих целей применяется функция curl_multi_socket_action.



Эта реализация заняла у нас больше всего времени. Давно не приходилось выкуривать столько бамбука, сколько довелось при разбирательстве с документацией к этой функции и примерами ее использования. По началу все это вообще воспринималось как какая-то черная магия, но потом свет в конце туннеля все-таки забрезжил, а код — заработал. Как именно заработал? А вот об этом сегодня и поговорим.

Категория: Операционные системы » iOS

 

Основы информационной безопасности. Часть 4. Стандарты и спецификации

Автор: admin от 2-03-2018, 08:40, посмотрело: 38

Основы информационной безопасности. Часть 4. Стандарты и спецификации


Это четвертая статья в цикле статей по теме «основы информационной безопасности». Описанные ранее вопросы:




  • Часть 1: Виды угроз

  • Часть 2: Информация и средства ее защиты

  • Цена ошибки

  • Часть 3: Модели информационной безопасности



  • Специалистам в области информационной безопасности сегодня почти невозможно обойтись без знаний соответствующих стандартов и спецификаций. На то имеется несколько причин. Формальная состоит в том, что необходимость следования некоторым стандартам, таким как «криптографические» стандарты или «руководящие документы» закреплена законодательно. Однако наиболее убедительны содержательные причины.

    Категория: Операционные системы » iOS

     

    Обобщаем анимацию таблиц в iOS приложениях

    Автор: admin от 1-03-2018, 11:40, посмотрело: 37

    Обобщаем анимацию таблиц в iOS приложениях

    Пользователи хотят видеть изменения


    Анимированное обновление списков всегда было непростой задачей в iOS. Что неприятно, это всегда было рутинной задачей.

    Приложения крупных компаний, таких как Facebook, Twitter, Instagram, VK, используют таблицы. Более того, почти каждое iOS приложение написано с использованием UITableView или UICollectionView и пользователи хотят видеть, что изменяется у них на экранах, по этой причине reloadData не подходит для обновления экрана. Посмотрев несколько уже имеющихся фреймворков для данной задачи, я удивился, как много они в себе обобщают, помимо расчета анимаций. Некоторые же вообще при вставке одного элемента в начало, радостно сообщали о перемещениях всех остальных элементов.

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

    Категория: Операционные системы » iOS

     

    Ричард Хэмминг: Глава 29. Вы получаете то, что вы измеряете

    Автор: admin от 28-02-2018, 07:40, посмотрело: 47

    «Цель этого курса — подготовить вас к вашему техническому будущему.»


    Ричард Хэмминг: Глава 29. Вы получаете то, что вы измеряетеПривет, Хабр. Помните офигенную статью «Вы и ваша работа» (+219, 2365 в закладки, 360k прочтений)?



    Так вот у Хэмминга (да, да, самоконтролирующиеся и самокорректирующиеся коды Хэмминга) есть целая книга, написанная по мотивам его лекций. Давайте ее переведем, ведь мужик дело говорит.



    Это книга не просто про ИТ, это книга про стиль мышления невероятно крутых людей. «Это не просто заряд положительного мышления; в ней описаны условия, которые увеличивают шансы сделать великую работу.»



    Мы уже перевели 12 (из 30) глав.

    За перевод спасибо Валерию Дмитрущенкову, который откликнулся на мой призыв в «предыдущей главе». Кто хочет помочь с переводом — пишите в личку или на почту magisterludi2016@yandex.ru (Кстати, мы еще запустили перевод еще одной крутейшей книги — «The Dream Machine: История компьютерной революции»)



    Глава 29. Вы получаете то, что вы измеряете



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



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

    Категория: Операционные системы » iOS

     

    Разбор алгоритма консенсуса в Tendermint

    Автор: admin от 28-02-2018, 07:40, посмотрело: 45

    Разбор алгоритма консенсуса в Tendermint



    В этой статье описан алгоритм консенсуса BCA (Byzantine Consensus Algorithm), используемый в Tendermint. Разработанный на основе протокола DLS, он не требует никакого "активного" майнинга, как в Proof-of-Work, и может обеспечить безопасную работу сети при наличии как минимум 2/3+ (строго больше чем две трети) "честных" участников сети. Ниже рассказно о том, как этот алгоритм реализован в Tendermint, приведена статистика его работы и смоделировано поведение алгоритма на небольшой сети из пяти участников.

    Категория: Операционные системы » iOS

     

    «Цифровые государства»: с чего все началось

    Автор: admin от 25-02-2018, 19:00, посмотрело: 53

    Иллюстрация: Жан Гранвиль PD

    «Цифровые государства»: с чего все началось
    Консалтинговая компания Deloitte в конце 2017 года выпустила доклад о технологиях в международном государственном секторе. Главный тренд на 2018 год — то, что исследователи называют symphonic enterprise. Эта концепция подразумевает достижение кумулятивного эффекта от внедрения государством и бизнесом таких технологий как, например, блокчейн и системы искусственного интеллекта. Цель — повысить эффективность работы всего «цифрового государства» — от взаимодействия граждан, госструктур и бизнеса до реализации базовых задач по электронному документообороту.



    Сегодня мы расскажем, как появлялась концепция «цифрового государства» (ЦГ), поговорим о первых примерах отдельных систем и возможностях для их интеграции.

    Категория: Операционные системы » iOS

     

    Создание двухмерных эффектов частиц в Unity3D

    Автор: admin от 25-02-2018, 19:00, посмотрело: 57

    Создание двухмерных эффектов частиц в Unity3D

    Привет, меня зовут Дэвид Финсет. Я технический художник Synapse Games и работаю над играми, в которых нужны визуальные эффекты, требующие и технической, и художественной составляющей. Большая часть моей работы заключается в создании эффектов частиц для мобильных игр. Мне очень нравится эта работа, поэтому я хочу поделиться своим рабочим процессом и дать несколько советов по самостоятельному созданию таких эффектов.



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



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

    Категория: Операционные системы » iOS

     

    iPaaS — облачные ESB… или нет?

    Автор: admin от 25-02-2018, 19:00, посмотрело: 52

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



    С ростом числа облачных сервисов и приложений выросло и число разнообразных API, тут и мобильные платформы подтянулись, и всё это должно как-то обмениваться данными. В результате на интеграцию этого разнообразия стало уходить очень много ресурсов разработчиков, да и саппортить всё это надо. А ещё логи разбирать, если их вообще не забыли реализовать. Рынок откликнулся на возникшую проблему появлением iPaaS.

    Категория: Операционные системы » iOS

     

    Как мы улучшали службу технической поддержки с помощью когортного анализа

    Автор: admin от 25-02-2018, 19:00, посмотрело: 45

    Существует огромное количество инструментов визуализации графиков, умеющих делать с ними настоящие чудеса. Все они имеют разное назначение и специализацию.



    Но сейчас речь пойдет не о них. Речь пойдет не об инструментах, а о том как их использовать в совершенно конкретной ситуации, а именно: при анализе деятельности внутренней службы технической поддержки.



    В большой организации работа централизованных служб часто имеет критическое значение.



    Представьте, что Вы – руководитель службы поддержки, состоящей из 10 человек, и Ваша команда обслуживает коллектив из 200 команд, в каждой из которой по 7-10 человек. Это минимум 1400 человек, ежедневно засыпающих Вас работой.



    Теперь добавим сюда ещё больше реальности и представим, что Вы выполняете некую централизованную функцию (например, настройку чего-нибудь), без которой команды не могут выдать результат.



    Получается, что на Вас всё завязано, и чем быстрее и качественнее будет работать Ваша команда, тем быстрее будут выдавать результат все остальные команды в компании.



    И тут начинаются жалобы на медленную отработку запросов…



    Естественно, в этой ситуации руководителю нужны фактические данные, а не слова.



    На помощь приходит когортный анализ.

    Категория: Операционные системы » iOS

     

    Понимая зависимости

    Автор: admin от 24-02-2018, 23:30, посмотрело: 45

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



    Мы — внедрители. Мы должны внедрять, а не фантазировать!

    (Рина Зеленая, к/ф «Девушка без адреса»)



    К переводу этой статьи меня побудили две причины: 1) желание лучше разобраться с фреймворком Spring, 2) небольшое количество источников по теме на русском языке.



    Краеугольный камень Spring — «внедрение зависимостей». Если описание процесса «внедрения» в целом, удовлетворительно, то объяснение понятия «зависимость» обычно оставляют за скобками. На мой взгляд, это существенное упущение.



    Чтобы не фантазировать, а внедрять, нужно сначала разобраться с тем, что мы внедряем. И в этом нам может помочь лаконичная статья Jakob Jenkov «Understanding Dependencies». Она будет полезна не только тем, кто пишет на Java или изучает Spring, но и тем, кто пишет на других языках и следит за качеством проектирования приложений.



    Что такое зависимость
  • Почему зависимости это плохо

  • Типы зависимостей

  • Дополнительные характеристики зависимостей:

    • зависимости реализации интерфейса

    • зависимости времени компиляции и времени исполнения

    • видимые и скрытые зависимости

    • прямые и непрямые зависимости

    • неоправданно широкие зависимости

    • зависимости локальные и контекстные


  • Стандартные vs кастомные зависимости класса/интерфейса

  • Резюме

  • Категория: Операционные системы » iOS