[Из песочницы] dock: простая библиотека модульного тестирования кода на С++

Хотя и существуют уже библиотеки для юнит-тестирования кода на С++, например, Google Test или Bandit, но они написаны не мной здесь оно, на мой взгляд, как-то переусложнено, по сравнению с тем же JS. Там просто делаешь, например, npm i mocha assert --save-dev и можно приступать к написанию тестов, а здесь же нужно это сделать ручками, а в случае с gtest еще и собрать с помощью cmake ее. Bandit подключается просто, но не умеет в сериализацию результатов в какой-то формат данных, gtest это умеет, но его нужно собирать отдельно. А я не хочу выбирать «либо то, либо это». Мне было нужно сделать удобный и простой инструмент под мои задачи. Я хотел получить простую библиотеку без зависимостей, header-only, на несколько файлов, которую можно легко и быстро подключить к своему проекту, удобно внести в нее изменения (если это будет необходимо). Но, самое основное, мне хотелось получать удобные, машиночитаемые отчеты, причем не только в stdout (или xml, как в gtest), но и в любой другой формат, который я захочу. Далее под катом.

Читать дальше →
[Из песочницы] dock: простая библиотека модульного тестирования кода на С++
Source: habrahabr

Как работают ИТ-специалисты. Юрий Горюнов, руководитель группы обработки данных Defencegroup


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


Будет интересно выяснить, что их объединяет, в чем они противоречат другу другу. Возможно, их ответы помогут выявить какие-то общие закономерности, полезные советы, которые помогут многим из нас.


Сегодня наш гость — Юрий Горюнов, руководитель группы обработки данных Defencegroup. Одной из важнейших составляющих успеха разработчика он считает… умение общаться. А его лайфхак заключается в автоматизации жизненного цикла… человека. Читать дальше →
Как работают ИТ-специалисты. Юрий Горюнов, руководитель группы обработки данных Defencegroup
Source: habrahabr

Про хаскелль для самых маленьких на примере задачи с codefights

КДПВ (в представлении художника)

Если вы интересуетесь функциональным программированием или даже пытаетесь его потихоньку освоить то вам, наверняка, не раз приходилось слышать, что главным отличием от прививочного вам императивного подхода является тот факт, что программы строятся от общего к частностям, а не наоборот. Т.е. сначала вы определяетесь с тем, что вы хотите получить, а потом уже — как этого достичь. Такая простая, казалось бы, мысль обычно не дает мозгу покоя и вызывает множественные фрустрации в попытках написать что-нибудь полезное. Если эта история про вас, или вам просто интересно немного научится хаскеллю и ФП продолжайте чтение и я покажу вам как все просто. Статья в стиле «некогда объяснять, пиши».

Читать дальше →
Про хаскелль для самых маленьких на примере задачи с codefights
Source: habrahabr

«Ультимативный DNS-дайджест»: 45 материалов с Хабра и других ресурсов

Совсем недавно мы рассказали о том, как команда нашего IaaS-провайдера автоматизировала работу с DNS-записями в хостинг-панели.


Опыт создания новой услуги по предоставлению бесплатного сервиса DNS-хостинга сподвиг нас к беглому анализу публикаций на Хабре, которые затрагивали те или иные аспекты работы DNS. Мы собрали эти материалы вместе с англоязычными дополнениями в очередной «ультимативный» дайджест от 1cloud.


В прошлых выпусках мы собрали практические материалы в SSLVPN-дайджест.

Читать дальше →
«Ультимативный DNS-дайджест»: 45 материалов с Хабра и других ресурсов
Source: habrahabr

[Из песочницы] Язык программирования Сtag. Вступление

Впервые я познакомился с программированием в 6 классе… Тогда это был старинный компилятор borland pascal, который мог запускаться только с помощью эмулирования MS-DOS. С тех пор прошло 6 лет… Маленький мальчик вырос и стал писать более читаемый код, а судьба привела его в один из лучших технических вузов страны. Но те 6 лет не прошли даром. В течение них накапливался огромный пласт противоречий, которые заставляли его искать все более и более совершенный язык… Так появился на свет Ctag — продукт переосмысления достижений человечества.
Читать дальше →
[Из песочницы] Язык программирования Сtag. Вступление
Source: habrahabr

[Перевод] WebAssembly – путь к новым горизонтам производительности

Если вы – из тех программистов, которые в новогоднюю ночь пообещали себе писать более быстрый код, сегодня у вас есть шанс это обещание выполнить. Мы поговорим о том, как ускорить работу веб-решений с использованием технологии WebAssembly (сокращённо её называют wasm). Технология это очень молодая, сейчас – пора её становления, однако, она вполне может оказать серьёзное влияние на будущее разработки для интернета.

image



Здесь я расскажу о том, как создавать модули WebAssembly, как с ними работать, как вызывать их из клиентского кода в браузере так, будто это модули, написанные на JS. Мы рассмотрим два набора реализаций алгоритма поиска чисел Фибоначчи. Один из них представлен обычными JavaScript-функциями, второй – написан на C и преобразован в модуль WebAssembly. Это позволит сравнить производительность wasm и JS при решении схожих задач.
Читать дальше →
[Перевод] WebAssembly – путь к новым горизонтам производительности
Source: habrahabr

[Из песочницы] Эй, запрос! Ты живой? Как легко обработать блокировки в PostgreSQL

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


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


Чтобы разобраться в сложившейся ситуации, администратору БД необходимо понять, какой процесс блокирует и какой процесс является блокируемым, а также иметь возможность отменить или «убить» блокирующий процесс и в конце проверить результат.


В этой статье я хочу коснуться темы блокировок в PostgreSQL и рассказать об инструментах для работы с ними. Но сначала попробуем разобраться в самой теме. Читать дальше →
[Из песочницы] Эй, запрос! Ты живой? Как легко обработать блокировки в PostgreSQL
Source: habrahabr

Старикам здесь вполне ещё место: забытые IT-технологии в строю


В сентябре 2016 года прошла удивительная новость: в небольшой польской автомастерской обнаружился компьютер Commodore 64, использующийся владельцем для балансировки карданных валов. Commodore 64, Карл! Причём компьютер выжил даже после того, как мастерскую однажды затопило паводком. Эта история натолкнула нас на мысль поискать другие примеры современного использования старых, забытых IT-технологий. Читать дальше →
Старикам здесь вполне ещё место: забытые IT-технологии в строю
Source: habrahabr

Старикам здесь вполне ещё место: забытые ИT-технологии в строю


В сентябре 2016 года прошла удивительная новость: в небольшой польской автомастерской обнаружился компьютер Commodore 64, использующийся владельцем для балансировки карданных валов. Commodore 64, Карл! Причём компьютер выжил даже после того, как мастерскую однажды затопило паводком. Эта история натолкнула нас на мысль поискать другие примеры современного использования старых, забытых IT-технологий. Читать дальше →
Старикам здесь вполне ещё место: забытые ИT-технологии в строю
Source: habrahabr