Как стать автором
Обновить
1
0
Олексій @Assada

Пользователь

Отправить сообщение

Автоматическая настройка Icecast2 и mpd на несколько аудио потоков

Время на прочтение5 мин
Количество просмотров21K
По просьбе друга пытался сделать онлайн-радио. И вроде все бы ничего, но возникла необходимость транслировать и управлять многими потоками независимо друг от друга…

Для этого я выбрал следующий путь…

Читать дальше →
Всего голосов 7: ↑5 и ↓2+3
Комментарии5

Книга «Теоретический минимум. Все, что нужно знать о современной физике»

Время на прочтение7 мин
Количество просмотров17K
image «Теоретический минимум» — книга для тех, кто пропускал уроки физики в школе и институте, но уже жалеет об этом. Хотите разобраться в основах естественных наук и научиться думать и рассуждать так, как это делают современные физики? В оригинальной и нестандартной форме известные американские ученые Леонард Сасскинд и Джордж Грабовски предлагают вводный курс по математике и физике для пытливых умов.

В отличие от прочих научно-популярных книг, пытающихся доступно объяснить законы физики, ловко уклоняясь от уравнений и формул, авторы учат читателя классическим основам естественных наук. Книга предлагает собственную оригинальную методику обучения, дополненную видео-лекциями, публикуемыми на сайте theoreticalminimum.com.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии20

Готовим сборку Go-приложения в продакшн

Время на прочтение6 мин
Количество просмотров27K
В июне на конференции РИТ++ мы с коллегой Игорем Должиковым делились опытом автоматизации процесса разработки сервисов на Go — от первого коммита и до релиза в продакшн-окружение Kubernetes (да-да, видео начинается с 07:16, и нам тоже это не нравится). С момента публикации мастер-класса время от времени я получаю вопросы по тем или иным темам, затронутым в нем. Пожалуй, самые горячие вопросы достойны отдельного рассмотрения, и сегодня я хотела бы поговорить о процессе сборки приложения. Затрагиваемые темы актуальны не только при подготовке сервисов, но и вообще для любых приложений, написанных на Go.

Всё, что описано в этой статье, актуально для текущей версии Go — 1.9.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии24

Очереди и блокировки. Теория и практика

Время на прочтение12 мин
Количество просмотров31K
Мы выдохнули после HighLoad++ и продолжаем публикации лучших докладов прошлых лет. HighLoad++ получился прекрасным, количество организационных улучшений скачкообразно переросло в новое качество продукта. Хабр, кстати, вёл текстовую трансляцию с конференции (первый, второй дни).

Александр Календарёв

Александр Календарев ( akalend )


Здравствуйте, уважаемые коллеги! Мой доклад будет про вещь, без которой не обходится ни один HighLoad-проект — про сервера очередей, и если успею, то расскажу про блокировки (примечание расшифровщика — успел :).
Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии41

Прототип проекта стоимостью $86 миллионов в 57 строках кода

Время на прочтение5 мин
Количество просмотров51K


Сегодня очень много хороших конкурентных систем создается отдельными разработчиками, а не только большими компаниями. Как правило, это копирование на базе эталонного решения (продукт корпорации) с последующей оптимизацией. В таком случае выигрывают все: компании – от здоровой конкуренции, разработчики – от развития технических навыков и получения опыта, потребители – от новых возможностей и решений.


Представлюсь: меня зовут Иван Греков, я из фронтенд-команды Badoo. Мне очень понравился этот пост, я просто не смог пройти мимо и не перевести его. Этот пост – отличный источник вдохновения для любителей прототипирования устройств и open-source-решений. Перевод публикуется с сохранением авторской точки зрения и, надеюсь, будет интересен вам.

Читать дальше →
Всего голосов 79: ↑77 и ↓2+75
Комментарии59

Создаем Telegram бота на API.AI

Время на прочтение9 мин
Количество просмотров110K

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


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

Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии9

Декларативное программирование в web-е

Время на прочтение13 мин
Количество просмотров25K

image


Что же такое декларативное программирование? Википедия подскажет нам:


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

Далее в статье пойдет речь о том, как использовать данную парадигму в современном web-программировании. В частности, я хотел бы затронуть вопрос о валидации/верификации входных данных для веб сервисов. Примеры будут на php, так как это язык мне наиболее близок в профессиональном плане.

Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии12

Оффлайн версия playphrase.me

Время на прочтение3 мин
Количество просмотров34K
Всем привет! Написал небольшой скрипт, который ищет заданную фразу по всем субтитрам в папке (и во всех подпапках) и показывает соответствующий видеофайл с этого места. Если было несколько совпадений, то будет создан плейлист, по которому можно перемещаться либо с помощью «Enter» либо «Shift + <» и «Shift + >».


Всего голосов 17: ↑16 и ↓1+15
Комментарии12

Мутационное тестирование

Время на прочтение12 мин
Количество просмотров41K

Юнит тесты помогают нам удостовериться, что код работает так, как мы этого хотим. Одной из метрик тестов является процент покрытия строк кода (Line Code Coverage).


Но насколько корректен данный показатель? Имеет ли он практический смысл и можем ли мы ему доверять? Ведь если мы удалим все assert строки из тестов, или просто заменим их на assertSame(1, 1), то по-прежнему будем иметь 100% Code Coverage, при этом тесты ровным счетом не будут тестировать ничего.


Насколько вы уверены в своих тестах? Покрывают ли они все ветки выполнения ваших функций? Тестируют ли они вообще хоть что-нибудь?


Ответ на этот вопрос даёт мутационное тестирование.

Читать дальше →
Всего голосов 60: ↑58 и ↓2+56
Комментарии41

Истории успеха Kubernetes в production. Часть 3: GitHub

Время на прочтение6 мин
Количество просмотров15K
Продолжаем рассказывать об успешных примерах использования Kubernetes в production. Новый кейс — совсем свежий. Подробная информация о нём появилась только вчера. А что ещё более значимо, речь пойдёт про крупный онлайн-сервис, с которым наверняка так или иначе работает каждый читатель хабры, — GitHub.

Всего голосов 30: ↑28 и ↓2+26
Комментарии8

Пишем расширения для PHP 7 на C++

Время на прочтение14 мин
Количество просмотров23K
Мне приходилось писать расширения для того, чтобы воспользоваться функциями C++ библиотек в коде PHP. Ещё, одно тяжёлое расширение портировал с 5й версии на 7ю.

Если загуглить документацию на тему написания расширений для PHP, то, в основном, это будут тексты до 2014 года, актуальные для версии 5. Сам сайт php.net предоставляет обрывчатые и устаревшие сведения, а то, что удаётся найти в их wiki, опять про 5ю версию. Максимум, что удалось найти на офф сайте, это скудный ман по миграции уже написанных расширений.

В итоге, единственным более или менее понятным маном по написанию расширений для меня оказался исходный код PHP, которым я и руководствовался при написании и миграции расширений.
Читать дальше →
Всего голосов 42: ↑41 и ↓1+40
Комментарии7

Точность через неточность: Улучшаем Time-объекты

Время на прочтение10 мин
Количество просмотров5.1K
При создании value-объекта для хранения времени, я рекомендую выбирать вместе с экспертами в предметной области и вокруг нее с какой точностью он будет храниться.

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


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


$estimatedDeliveryDate = new DateTimeImmutable('2017-06-21');

// представим, что сегодня ТАКЖЕ 2017-06-21
$now = new DateTimeImmutable('now');

if ($now > $estimatedDeliveryDate) {
    echo 'Package is late!';
} else {
    echo 'Package is on the way.';
}

Ожидаемо что, что 21 июня этот код выведет Package is on the way., ведь день еще не закончился и пакет, например, доставят ближе к вечеру.


Несмотря на это код так не делает. Так как не указана часть со временем, PHP заботливо подставляет нулевые значения и приводит $estimatedDeliveryDate к 2017-06-21 00:00:00.
С другой стороны $now вычисляется как… сейчас. Now включает в себя текущий момент времени, который, скорее всего, не полночь, так что получится 2017-06-21 15:33:34 или вроде того, что будет позднее, чем 2017-06-21 00:00:00.

Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии25

Материализуем результаты поиска, или как мы освободили 25 процессорных ядер

Время на прочтение7 мин
Количество просмотров11K


Не так давно мы решали задачу оптимизации потребления ресурсов нашего кластера elasticsearch. Неосилив настроить сам эластик, мы сделали что-то типа кэша результатов поиска, использовав при этом подход называемый "обратным" поиском или перколятором. Под катом рассказ про то, как мы работаем с метаданными метрик и собственно перколятор.

Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии5

Мониторинг докер-хостов, контейнеров и контейнерных служб

Время на прочтение7 мин
Количество просмотров60K

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


Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии17

Что нового в nginx?

Время на прочтение18 мин
Количество просмотров38K


Максим Дунин (Nginx, Inc.)


Ведущий: Я представляю вашему вниманию следующего докладчика. Встречайте – Максим Дунин. И он расскажет о том, что же нового появилось в технологии под названием nginx.

Дисклеймер: речь пойдёт о нововведениях в 2016 году. Можно подумать, что это давно, но информация об изменениях в changelog от автора этих самых изменений полезна всегда!

Максим Дунин: Добрый день! Я Максим Дунин. Как вы, наверное, знаете, я разработчик nginx. Сегодня буду вам читать changelog вслух и с выражением. Для начала давайте определимся, с какого именно места мы будем читать changelog. Посмотрим на статистику.


Всего голосов 71: ↑70 и ↓1+69
Комментарии45

Разбираем магнитно-резонансный томограф

Время на прочтение14 мин
Количество просмотров204K

Квантовая физика, математика, биология, криогеника, химия и электроника сплелись единым узором, чтобы воплотиться в железе и показать настоящий внутренний мир человека, и даже, ни много ни мало, прочитать его мысли. Электроника таких аппаратов, по надежности и сложности может сравниться разве что с космической. Эта статья посвящается оборудованию и принципам работы магнитно-резонансных томографов.
Start Scan
Всего голосов 137: ↑137 и ↓0+137
Комментарии188

Superjob PHP-meetup. Прямая трансляция

Время на прочтение3 мин
Количество просмотров5.8K
Сегодня в 18:30 по московскому времени в офисе Superjob состоится встреча PHP-разработчиков. Присоединяйтесь к прямой трансляции!



Всего голосов 17: ↑15 и ↓2+13
Комментарии5

Когда деревья были большими: как маленький дата-центр ураган пережил

Время на прочтение8 мин
Количество просмотров22K


Лето 2017 года выдалось богатым на ураганы. А вот у нас тоже был случай. Ровно 7 лет назад наш первый дата-центр на Боровой пережил ураган, который похоронил чиллеры под слоем 10 тонн железа, прилетевшего с соседней крыши. Душещипательные фотографии искореженных чиллеров разошлись по интернету уже давно, а история про восстановление ЦОДа, оставшегося без холода, никогда не публиковалась. Решил поднять архивы и восполнить пробел.

Всего голосов 68: ↑68 и ↓0+68
Комментарии38

Notyjs — шикарная javascript библиотека для создания уведомлений. А также готовый плагин для Vuejs

Время на прочтение2 мин
Количество просмотров16K

image


Простая, быстрая и производительная библиотека для создания none-block уведомлений для вашего сайта или приложения.

Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии13

Стек, который позволил Medium обеспечить чтение на 2.6 тысячелетия

Время на прочтение10 мин
Количество просмотров23K

Предлагаю общественности мой перевод статьи Dan Pupius'а об архитектура сервиса Medium и используемых технологиях. Хочу особо отметить, что статья является переводом, поэтому местоимение "я", используемое в тексте далее относится к автору оригинального текста, а не к переводчику.


Фон


Medium это сеть. Это место, где обмениваются историями и идеями, которые важны — место, где вы развиваетесь, и где люди провели 1.4 миллиарда минут — 2.6 тысячелетия.


У нас более 25 миллионов уникальных читателей в месяц, и каждую неделю публикуются десятки тысяч постов. Но мы хотим, чтобы на Medium мерилом успеха было не количество просмотров, а точки зрения. Чтобы значение имело качество идеи, а не квалификация автора. Чтобы Medium был местом, где обсуждения развивают идеи, а слова по-прежнему важны.


Я руковожу инженерной командой. Раньше я работал инженером в Google, где я работал над Google+ и Gmail, а также был одним из со-основателей проекта Closure. В прошлой жизни я гонял на сноуборде, прыгал из самолёта и жил в джунглях.

Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии17

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность