Pull to refresh
25
0
Laphroaig Vi @laphroaig

User

Send message

Теория звука. Что нужно знать о звуке, чтобы с ним работать. Опыт Яндекс.Музыки

Reading time14 min
Views215K
Звук, как и цвет, люди воспринимают по-разному. Например, то, что кажется слишком громким или некачественным одним, может быть нормальным для других.

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



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

Поводом для этого поста можете считать то, что мы добавили в приложения Яндекс.Музыки возможность слушать треки в высоком качестве (320kbps). А можете не считать. Итак.
Читать дальше →
Total votes 83: ↑78 and ↓5+73
Comments52

Мониторинг и настройка сетевого стека Linux: получение данных

Reading time71 min
Views84K


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

Также рекомендуем ознакомиться с иллюстрированным руководством на ту же тему, там есть поясняющие схемы и дополнительная информация.
Читать дальше →
Total votes 63: ↑60 and ↓3+57
Comments8

Лекции Технотрека. Администрирование Linux

Reading time4 min
Views140K


Представляем вашему вниманию очередную порцию лекций Технотрека. В рамках курса будут рассмотрены основы системного администрирования интернет-сервисов, обеспечения их отказоустойчивости, производительности и безопасности, а также особенности устройства ОС Linux, наиболее широко применяемой в подобных проектах. В качестве примера будут использоваться дистрибутивы семейства RHEL 7 (CentOS 7), веб-сервер nginx, СУБД MySQL, системы резервного копирования bacula, системы мониторинга Zabbix, системы виртуализации oVirt, балансировщика нагрузки на базе ipvs+keepalived. Курс ведёт Сергей Клочков, системный администратор в компании Variti.

Total votes 61: ↑60 and ↓1+59
Comments9

Простыми словами о преобразовании Фурье

Level of difficultyMedium
Reading time14 min
Views1.1M
Я полагаю что все в общих чертах знают о существовании такого замечательного математического инструмента как преобразование Фурье. Однако в ВУЗах его почему-то преподают настолько плохо, что понимают как это преобразование работает и как им правильно следует пользоваться сравнительно немного людей. Между тем математика данного преобразования на удивление красива, проста и изящна. Я предлагаю всем желающим узнать немного больше о преобразовании Фурье и близкой ему теме того как аналоговые сигналы удается эффективно превращать для вычислительной обработки в цифровые.

image (с) xkcd

Без использования сложных формул и матлаба я постараюсь ответить на следующие вопросы:
  • FT, DTF, DTFT — в чем отличия и как совершенно разные казалось бы формулы дают столь концептуально похожие результаты?
  • Как правильно интерпретировать результаты быстрого преобразования Фурье (FFT)
  • Что делать если дан сигнал из 179 сэмплов а БПФ требует на вход последовательность по длине равную степени двойки
  • Почему при попытке получить с помощью Фурье спектр синусоиды вместо ожидаемой одиночной “палки” на графике вылезает странная загогулина и что с этим можно сделать
  • Зачем перед АЦП и после ЦАП ставят аналоговые фильтры
  • Можно ли оцифровать АЦП сигнал с частотой выше половины частоты дискретизации (школьный ответ неверен, правильный ответ — можно)
  • Как по цифровой последовательности восстанавливают исходный сигнал


Я буду исходить из предположения что читатель понимает что такое интеграл, комплексное число (а так же его модуль и аргумент), свертка функций, плюс хотя бы “на пальцах” представляет себе что такое дельта-функция Дирака. Не знаете — не беда, прочитайте вышеприведенные ссылки. Под “произведением функций” в данном тексте я везде буду понимать “поточечное умножение”

Итак, приступим?
Total votes 203: ↑192 and ↓11+181
Comments190

Современный CMake: 10 советов по улучшению скриптов сборки

Reading time8 min
Views83K

CMake — это система сборки для C/C++, которая с каждым годом становится всё популярнее. Он практически стал решением по умолчанию для новых проектов. Однако, множество примеров выполнения какой-либо задачи на CMake содержат архаичные, ненадёжные, раздутые действия. Мы выясним, как писать скрипты сборки на CMake лаконичнее.

Читать дальше →
Total votes 40: ↑40 and ↓0+40
Comments29

Непрерывная интеграция (CI) для GitHub проектов на С/C++ с CMake-сборкой

Reading time15 min
Views33K
Continuous Integration

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


Данная статья — инструкция по прикручиванию базовой непрерывной интеграции (build-test-deploy) к гитхабовским C/C++ проектам с CMake сборкой — по непонятным причинам, на Хабре такого до сих пор не проскальзывало. Впрочем, если моё гугл-фу подвело меня, и таки проскальзывало — не беда. Лишний туториал, описывающий всё под несколько другим углом и предостерегающий от неповторимого набора набитых автором шишек, совершенно точно не повредит.

Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments12

Просто добавь камеру: как и зачем интегрировать видеонаблюдение

Reading time7 min
Views12K


Как на забитом конкурентами рынке сделать востребованный продукт (вместо очередного «велосипеда»)? Есть много способов: скопировать оригинал и предлагать дешевле, повысить качество, раскрутить бренд, вывести на новый уровень послепродажную поддержку т.п. В некоторых случаях помогает кил-фича – особенная и/или уникальная функция продукта/услуги. И мы знаем примеры, когда фичей становится видеонаблюдение.

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

С помощью Ivideon создают абсолютно разные продукты, выделяющиеся на фоне конкурентов – не только в безопасности, а вообще в любой отрасли. Сегодня мы вам покажем несколько запоминающихся решений (нет, внутрь человека камеру встраивать пока не будем).
Читать дальше →
Total votes 9: ↑7 and ↓2+5
Comments6

7 стратегий, который помогут вам избавиться от прокрастинации

Reading time6 min
Views46K
Я сильно подозреваю, что вы тянете время, чтобы не браться за какое-нибудь важное дело даже в данный момент, читая эту статью. Получается какой-то парадокс, но не беда. Это даже хорошо. Здесь вы познакомитесь с простыми стратегиями, которые в будущем сможете применять для эффективной борьбы с прокрастинацией.



Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments52

Искусство командной строки

Reading time15 min
Views250K


Вот уже как неделю английская версия the art of command line висит в секции trending на Github. Для себя я нашел этот материал невероятно полезным и решил помочь сообществу его переводом на русский язык. В переводе наверняка есть несколько недоработок, поэтому милости прошу слать пулл-реквесты мне сюда или автору оригинальной работы Joshua Levy вот сюда. (Если PR отправите мне, то я после того, как пересмотрю изменения отправлю их в мастер-бранч Джоша). Отдельное спасибо jtraub за помощь и исправление опечаток.

Enjoy!
Total votes 127: ↑122 and ↓5+117
Comments143

Каково это — быть разработчиком в России, когда тебе сорок

Reading time37 min
Views161K
Привет всем, я — сорокалетний программист-самоучка, а это моя история.

Пару недель назад я наткнулся на график распределения людей, интересующихся технологиями, ИТ и программированием. И он заставил меня задуматься о моей карьере.



Через каких-то 20 лет мне стукнет 60. И вероятность того, что я еще смогу заниматься тем, для чего был создан, составляет очень крошечную величину. Эти размышления привели меня туда, откуда все начиналось.

Я дебютировал в роли разработчика программного обеспечения в 1990 году, через год после того, как мне на 14-тилетие родители подарили ПЭВМ «Микроша».
Читать дальше →
Total votes 353: ↑338 and ↓15+323
Comments788

10 вещей, которые обязательно нужно сделать после регистрации ООО

Reading time9 min
Views80K

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

А для тех, кто зарегистрировался в качестве ИП, мы подготовили: 7 советов начинающему ИП, чтобы избежать проблем (что-то вы точно из этого не знаете)
Читать дальше →
Total votes 44: ↑38 and ↓6+32
Comments54

Изучаем внутреннюю кухню ядра Linux с помощью /proc для быстрой диагностики и решения проблем

Reading time13 min
Views67K
Данная статья касается современных линуксов. Например, RHEL6 с ядрами 2.6.3х — подойдёт, а вот RHEL5 с ядрами 2.6.18 (кстати, наиболее популярный в продакшне) — увы, нет. И ещё — здесь не будет описания ядерных отладчиков или скриптов SytemTap; только старые-добрые простые команды вида «cat /proc/PID/xyz» в отношении некоторых полезных узлов файловой системы /proc.

Диагностика «тормозящего» процесса


Вот хороший пример часто возникающей проблемы, которую я воспроизвёл на своём лаптопе: пользователь жалуется, что команда find работает «значительно медленнее», при этом не возвращая никаких результатов. Зная, в чём дело, мы решили проблему. Однако меня попросили изложить систематический подход к решению подобных задач.

К счастью, система работает под управлением OEL6, т.е. на достаточно свежем ядре (а именно — 2.6.39 UEK2)

Итак, приступим к диагностике.
Подробности
Total votes 127: ↑125 and ↓2+123
Comments28

Забираемся дальше во Вселенную

Reading time4 min
Views8.5K
Пещера, в которую вы страшитесь войти, хранит искомое вами сокровище.
Джозеф Кэмпбелл

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

Но в некоторых отдельных регионах Вселенной, где плотность массы превышает среднюю, галактики скапливаются тысячами. Ближайшее к нам такое скопление — скопление Волос Вероники, содержащее больше галактик, чем 95% всех известных нам скоплений.



Первое, что можно заметить по поводу этих галактик, это то, что в отличие от Млечного пути, Андромеды и большого числа галактик, расположенных в нашем районе, в скоплении Волосы Вероники практически нет спиральных галактик, особенно в его центре.
Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments4

Симфоническая музыка – проблемы качества воспроизведения, выбор формата и аппаратуры

Reading time10 min
Views22K
Симфоническая музыка общепризнанно считается одной из самых сложных для исполнения. В не меньшей степени она сложна для записи. К причинам этих особенностей жанра в первую очередь причисляют большое количество инструментов, использующихся в симфонических аранжировках, плотность и многогранность звучания. В связи с этим аппаратура для прослушивания симфонической музыки должна соответствовать ряду критериев, а выбор такой аппаратуры, особенно при ограниченном бюджете, вызывает серьёзные затруднения.



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

Главный принцип при решении задачи воспроизведения симфонической музыки – это поиск форматов и устройств с максимально достоверной передачей сигнала. Поиск максимально «честного» звука – задача для тех, кому важен каждый нюанс в произведении. Как правило предельно точно передающие сигнал системы особенно важны для музыкантов, музыкальных критиков, дирижеров, взыскательных меломанов и, естественно, чутких аудиофилов.
Читать дальше →
Total votes 11: ↑8 and ↓3+5
Comments29

Большой список научно-фантастических сериалов

Reading time20 min
Views439K
image
Кадр из заставки сериала «Грань»

Предисловие

На Geektimes и Habrahabr уже были статьи со списком Sci-Fi сериалов (Фантастические сериалы — обзор от фаната, Фантастические сериалы и др.). Но все они либо содержали достаточно мало сериалов и/или поверхностную информацию о них самих, либо были предвзяты в отношении тех или иных сериалов.

В данной публикации я постараюсь предоставить большой список научно-фантастических сериалов. А благодаря голосованию — узнать какие сериалы на самом деле нравятся пользователям Geektimes.
Читать дальше →
Total votes 58: ↑47 and ↓11+36
Comments189

Советы западных консалтинговых компаний. Часть 1, теоретическая

Reading time19 min
Views38K


В статье «Как новые руководители разрушают доверенные им компании» мы остановились на роли в этом процессе иностранных консалтинговых фирм.

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

Хотя никто и не будет спорить, что полезные советы по ведению государственных дел или бизнеса диссонируют с зажиманием РФ по всем фронтам. Санкции, «санитарный кордон» из цветных революций, запрет банкам покупать облигации РФ, снижение рейтинга для страны в целом и по предприятиям в частности, обещания порвать экономику в клочья из уст Президента США, прижали «большой спорт» и даже паралимпийцев не пожалели. Госдеп выпустил инструкцию о запрете работы компаний с Россией, а Вице-Президент США Байден обещает кибератаки.

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

Но всё же, как эти консалты умудряются «угодить и нашим и вашим»?
Как они ведут дела так, что их деятельность одновременно одобряют и руководители компаний РФ, и западные спецслужбы?

Это не магия и не искусство, это — отработанная технология.
Total votes 60: ↑40 and ↓20+20
Comments159

QEMU/KVM и установка Windows

Reading time6 min
Views172K

Хотим мы того или нет, но программы, для которых необходима Windows, никуда из офисов не исчезли. В ситуации, когда их использование безальтернативно, лучше иметь виртуальную ОС, например для того, чтобы подключиться к аудио-конференции через Skype for Business.




В этой статье я расскажу, как можно с минимальными издержками установить гостевую ОС Windows на гипервизоре QEMU с помощью графического интерфейса virt-manager. Мы нанесем на карту все подводные камни и рифы, а жучков аккуратно посадим в банку.

Читать дальше →
Total votes 30: ↑16 and ↓14+2
Comments34

Заблуждения большинства программистов относительно «времени»

Reading time6 min
Views59K
Много дней назад я решил записать некоторые наблюдения, сформировавшиеся пока в последние годы я занимался тестированием. Рассматривая области, которые получают наибольшую отдачу от тестирования, я понял, что у меня накопилось много конкретных мыслей о том, как мы — программисты — склонны небрежно обращаться с понятием «время» в программировании.

Тогда я написал пост «Заблуждения программистов относительно „времени“», в котором указал 34 ошибочных представления и заблуждения, относящихся как к календарному, так и к системному времени. С большинством из них я столкнулся сам, занимаясь дебаггингом программ (как рабочих, так и тестовых).

Читать дальше →
Total votes 62: ↑55 and ↓7+48
Comments100

Крестики-нолики: компилятор против человека — экстремальный метапрограмминг

Reading time34 min
Views24K
"- После Мятежа Галактическое Содружество наложило строгие ограничения на метафункции высшего порядка. И не только из соображений этики; их власти опасаются вообще всякого проявления мании величия..."
(из поисковой выдачи google)
Предлагаю Вам сыграть в крестики-нолики с компилятором. Для игры знания c++ не потребуются, достаточно наличия cmake, python и собственно компилятора c++ ( потянет даже такой древний как gcc-3.3 ). Python используется только для ввода данных пользователя, запуска компилятора после каждого хода, и скомпилированной программы для получения результата. Все вычисления (следующий ход, определение победителя или констатации ничьей) производятся на этапе компиляции, в run-time только вывод результата.
Итак, готовы сразиться с компилятором?
Total votes 75: ↑72 and ↓3+69
Comments28

JSON-RPC на C++

Reading time33 min
Views16K

В предыдущей статье про декларативный JSON-сериализатор я рассказал, как с помощью шаблонов C++ можно описывать структуры данных и сериализовать их. Это очень удобно, т.к. не только сокращает размер кода, но и минимизирует количество возможных ошибок.Концепция — если код компилируется, то он работает. Примерно такой же подход применен и в wjrpc, о которой речь пойдет в этой статье. Но поскольку wjrpc “выдран” из фреймворка, под интерфейсы которого он был разработан, я также затрону вопросы архитектуры и асинхронных интерфейсов.


Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments4

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity