Доступ к элементам std::tuple во время исполнения программы http://amp.gs/QLZZ
Хабр
Доступ к элементам std::tuple во время исполнения программы
При тестировании разрабатываемой библиотеки математических алгоритмов для автономного вождения нашей команде приходилось достаточно много манипулировать с кортеж...
DevOps: автоматизация инфраструктуры на примере Terraform, docker, bash, prometheus exporters, Gitlab и WireGuard http://amp.gs/QLkX
Хабр
DevOps: автоматизация инфраструктуры на примере Terraform, docker, bash, prometheus exporters, Gitlab и WireGuard
Всем привет.Есть такие люди, которые работают с облачной инфраструктурой и не используют автоматизацию, потому что это долго, нужно вникать, а им надо фичи пилит...
[Перевод] Я ошибся. Будущее за CRDT
Несколько недель назад я смотрел выступление Мартина Клеппманна о его подходе к редактированию в реальном времени с помощью структур CRDT (Conflict-Free Replicated Data Type, бесконфликтные реплицированные типы данных, которые можно реплицировать на много узлов и обновлять параллельно без координации между узлами — прим. пер.) и меня охватило глубокое отчаяние. Может, вся моя работа в течение последнего десятилетия устарела на фоне подхода Мартина. Он действительно хорош.
Давайте вернёмся немного назад.
Примерно в 2010 году я работал над Google Wave. Это была попытка создать совместно редактируемые пространства на замену электронной почты, Google Docs, веб-форумов, мгновенных сообщений и сотен других небольших приложений. У Google Wave было свойство, которое нигде не реализовали, и оно мне очень нравилось: это среда или носитель общего назначения (такой, как бумага). В отличие от многих других инструментов, он не навязывает вам свой собственный рабочий процесс. Вы можете использовать его для чего угодно: планирование праздников, редактирование вики, игра D&D с друзьями, планирование встречи и т. д. Читать дальше → http://amp.gs/QL4x
Несколько недель назад я смотрел выступление Мартина Клеппманна о его подходе к редактированию в реальном времени с помощью структур CRDT (Conflict-Free Replicated Data Type, бесконфликтные реплицированные типы данных, которые можно реплицировать на много узлов и обновлять параллельно без координации между узлами — прим. пер.) и меня охватило глубокое отчаяние. Может, вся моя работа в течение последнего десятилетия устарела на фоне подхода Мартина. Он действительно хорош.
Давайте вернёмся немного назад.
Примерно в 2010 году я работал над Google Wave. Это была попытка создать совместно редактируемые пространства на замену электронной почты, Google Docs, веб-форумов, мгновенных сообщений и сотен других небольших приложений. У Google Wave было свойство, которое нигде не реализовали, и оно мне очень нравилось: это среда или носитель общего назначения (такой, как бумага). В отличие от многих других инструментов, он не навязывает вам свой собственный рабочий процесс. Вы можете использовать его для чего угодно: планирование праздников, редактирование вики, игра D&D с друзьями, планирование встречи и т. д. Читать дальше → http://amp.gs/QL4x
Как мы переводили MIKOPBX с chan_sip на PJSIP
MIKOPBX - это бесплатная АТС с открытым исходным кодом на базе Asterisk 16. Год назад мы взялись за переход на PJSIP. Основные причины:- PJSIP поддерживает "множественную регистрацию"- PJSIP более гибок в настройке- chan_sip не развивается, объявлен deprecated в Asterisk 17 Читать далее http://amp.gs/QLrI
MIKOPBX - это бесплатная АТС с открытым исходным кодом на базе Asterisk 16. Год назад мы взялись за переход на PJSIP. Основные причины:- PJSIP поддерживает "множественную регистрацию"- PJSIP более гибок в настройке- chan_sip не развивается, объявлен deprecated в Asterisk 17 Читать далее http://amp.gs/QLrI
Хабр
Как мы переводили MIKOPBX с chan_sip на PJSIP
ПредысторияМатериал изначально готовился как доклад для asterconf 2020. Теперь постараюсь описать все более подробно в этой статье. MIKOPBX - это бесплатная АТС...
JavaScript prototype pollution: практика поиска и эксплуатации http://amp.gs/QLsa
Хабр
JavaScript prototype pollution: практика поиска и эксплуатации
Если вы следите за отчетами исследователей, которые участвуют в bug bounty программах, то наверняка знаете про категорию уязвимостей JavaScript prototype polluti...
Drag'n'Drop API: пример использования
Доброго времени суток, друзья!
В данном туториале мы рассмотрим встроенный механизм перетаскивания элементов на странице.
Справедливости ради следует отметить, что указанный механизм можно реализовать с помощью событий мыши, как показывает Илья Кантор в своем учебнике, однако мы будем использовать нативные средства, опираясь на спецификацию.
Поддержка технологии:
Превью:
MDN
Демо
Код
Песочница
Наша задача состоит в следующем: реализовать список задач, состоящий из трех колонок: все задачи, задачи, находящиеся в процессе выполнения, завершенные задачи. Разумеется, приложение должно предусматривать возможность добавления и удаления задач. Кроме того, должна быть предусмотрена возможность произвольного расположения задач. Это одна из наиболее интересных частей туториала — отслеживание элемента, находящегося под перетаскиваемым, и определение того, где должен располагаться перетаскиваемый элемент, над или под отслеживаемым.
Для стилизации будет использоваться Bootstrap.
Если вам это интересно, прошу следовать за мной. Читать дальше → http://amp.gs/QLoD
Доброго времени суток, друзья!
В данном туториале мы рассмотрим встроенный механизм перетаскивания элементов на странице.
Справедливости ради следует отметить, что указанный механизм можно реализовать с помощью событий мыши, как показывает Илья Кантор в своем учебнике, однако мы будем использовать нативные средства, опираясь на спецификацию.
Поддержка технологии:
Превью:
MDN
Демо
Код
Песочница
Наша задача состоит в следующем: реализовать список задач, состоящий из трех колонок: все задачи, задачи, находящиеся в процессе выполнения, завершенные задачи. Разумеется, приложение должно предусматривать возможность добавления и удаления задач. Кроме того, должна быть предусмотрена возможность произвольного расположения задач. Это одна из наиболее интересных частей туториала — отслеживание элемента, находящегося под перетаскиваемым, и определение того, где должен располагаться перетаскиваемый элемент, над или под отслеживаемым.
Для стилизации будет использоваться Bootstrap.
Если вам это интересно, прошу следовать за мной. Читать дальше → http://amp.gs/QLoD
Хабр
Drag'n'Drop API: пример использования
Доброго времени суток, друзья! В данном туториале мы рассмотрим встроенный механизм перетаскивания элементов на странице. Справедливости ради следует отметить,...
[Перевод] Разбираем кварцевый генератор и его крохотную интегральную схему http://amp.gs/QLMu
Хабр
Разбираем кварцевый генератор и его крохотную интегральную схему
Кварцевый генератор – важный электронный компонент, обеспечивающий очень точную генерацию тактовой частоты за небольшие деньги. Из-за пьезоэлектрического эффек...
И еще один сервис проверки паспортов или опять вопрос сколько гигабайт в одном мегабайте http://amp.gs/QWIh
Хабр
И еще один сервис проверки паспортов или опять вопрос сколько гигабайт в одном мегабайте
Какое-то время назад появилась возможность уделить внимание языку Go и удачно на глаза попалась публикация «Паспортный контроль, или Как сжать полтора гигабайта...
Sourcetrail: инструмент, чтобы разобраться в чужом коде и не выстрелить себе в голову http://amp.gs/QWka
Хабр
Sourcetrail: инструмент, чтобы разобраться в чужом коде и не выстрелить себе в голову
I regret to report that I've just recently looked again at my programs for prime factors and tic-tac-toe, and they are entirely free of any sort of comments...
Автоматизация тестирования мобильных приложений. Часть 2: предусловия, верификация элементов и независимость шагов http://amp.gs/QWEV
Хабр
Автоматизация тестирования мобильных приложений. Часть 2: предусловия, верификация элементов и независимость шагов
Меня зовут Дмитрий Макаренко, я Mobile QA Engineer в Badoo и Bumble: занимаюсь тестированием новой функциональности в наших приложениях вручную и покрытием её ав...
Материалы митапа для андроид-инженеров: поиск проблем сборки, защита от них и работа с Gradle http://amp.gs/QWdD
Хабр
Материалы митапа для андроид-инженеров: поиск проблем сборки, защита от них и работа с Gradle
Недавно прошёл наш Android meetup, где ребята из платформенной команды Авито делились своим опытом работы с Gradle, показывали способы защиты от частых проблем п...
Парадокс доверия облачным решениям: три сценария, в которых ключи шифрования хранятся не в облаке http://amp.gs/QWAB
Хабр
Парадокс доверия облачным решениям: три сценария, в которых ключи шифрования хранятся не в облаке
В статьях “о парадоксе доверия облачным платформам” и “безопасном управлении ключами шифрования” мы отмечали, что в некоторых ситуациях ключи шифрования не следу...
[Перевод] Как написать интерфейс пользователя (UI) PlayStation 5 на JavaScript http://amp.gs/QWFA
Хабр
Как написать интерфейс пользователя (UI) PlayStation 5 на JavaScript
Интерактивное демо PS5.js Вот демо интерфейса PS5, созданного при помощи анимаций на JavaScript и CSS, которые мы будем писать в этом туториале. Интерактивный пример можно потрогать в оригинале...