Рубрика «Программирование» - 80

Эта статья является переводом материала «Immutable architecture».

В этом посте автор оригинала хотел бы показать общий подход к внедрению иммутабельности в кодовую базу на архитектурном уровне.

Иммутабельность, состояние и побочные эффекты

Прежде чем мы начнем, давайте определим термины. Скорее всего, вы уже сталкивались с ними.

Читать полностью »

Кадр из аниме "Жрица и медведь"
Кадр из аниме "Жрица и медведь"

Задача отслеживания объектов на изображении - одна из самых горячих и востребованных областей ML. Однако уже сейчас мы имеем огромное разнообразие различных техник и инструментов. Данная статья поможет начать Ваш путь в мир компьютерного зрения!

Читать полностью »

Привет! Меня зовут Виктор Хомяков, в Яндексе я работаю над скоростью страниц поиска. Однажды мне в голову пришла идея обобщить свой опыт и систематизировать приёмы ускорения работы кода на JavaScript. То, что получилось в итоге, собрано в этом материале.

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

Читать полностью »

Как развитие алгоритмов сжатия остановилось 20 лет назад, или о новом конкурсе на 200 тысяч евро - 1

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

Пост набрал 206 «плюсов», вышел на 2 место топа недели и вызвал оживленную дискуссию, в которой мне больше всего понравился комментарий: «Коммерческого интереса эффективность по сжатию алгоритмов сжатия без потерь сегодня не представляет, в силу отсутствия принципиально более эффективных алгоритмов. Деньги сегодня — в сжатии аудио-видео. И там и алгоритмы другие. Тема сжатия без потерь удобна именно лёгкостью верификации алгоритма, и не слегка устарела. Лет на 20.» 

Поскольку я сам уже 20 лет в области сжатия видео, с ее бурным развитием мне спорить сложно. А вот что сжатие без потерь развиваться перестало… Хотя логика тут понятна каждому. Я до сих пор пользуюсь ZIP, все мои друзья пользуются ZIP с 1989 года — значит, ничего нового не появляется. Так ведь? Похоже рассуждают сторонники плоской земли. ))) Я не видел, знакомые не видели, и даже некоторые авторитеты утверждают, значит, это так! 

О том, как Intel просили меня не прекращать читать курс по сжатию, ибо людей нет новые алгоритмы делать, я в прошлый раз писал. Но тут и Huawei в ту же дуду дует! Вместо того, чтобы раздать призы и должности победителям, а затем успокоиться, поскольку развитие давно встало, эти эксцентричные люди посчитали конкурс крайне успешным и запустили новый с призовым фондом 200 тысяч EUR.

Развивались ли алгоритмы сжатия без потерь в последние 20 лет? Чем закончился прошлый конкурс и на сколько опередили baseline? Сколько денег получили русские таланты, а сколько зарубежные? И есть ли вообще жизнь на Марсе в сжатии без потерь? 

Кому интересно — добро пожаловать под кат! Читать полностью »

Эта статья является переводом материала «What is functional programming?».

В этой статье Владимир Хориков попытается ответить на вопрос: что такое функциональное программирование?

Функциональное программирование

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

Читать полностью »

Привет, дорогой читатель. Да, сейчас будет статья, посвященная критике нашего образования. Хочу предупредить, что я ни в коем случае не являюсь ксенопатриотом. Нет. Напротив, данной статьей я хочу привлечь внимание к очень масштабной проблеме - предмет информатики в России и её реализация в школах.

Читать полностью »

В прошлый раз мы рассказывали о книгах, которые пригодятся специалистам по цифровой обработке сигналов, и обсуждали библиотеки на C++ для синтеза звука. Продолжим тему, но поговорим о ЯП под эти задачи — Faust, SOUL и Feldspar.

Фотография: Vadim Artyukhin. Источник: Unsplash.com
Читать полностью »
Внешний вид паллетоукладочной машины
Внешний вид паллетоукладочной машины

Как возникла задача и общее её описание

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

На прошлой неделе мы представили подборку литературы для тех, кто желает «погрузиться» в поиск музыкальной информации (MIR). Сегодня — представим материалы о цифровой обработки сигналов и акустических плагинов.

Фотография: Andy Makely. Источник: Unsplash.com
Фотография: Andy Makely. Источник: Unsplash.com

Designing Audio Effect Plug-Ins in C++

Читать полностью »

Эта статья является переводом материала OCP vs YAGNI.

В этом посте хочется осветить тему OCP и YAGNI – противоречия между принципом открытости/закрытости и принципом «вам это не понадобится».

OCP

Давайте начнем с того, что вспомним, что такое OCP. Принцип открытости/закрытости гласит, что: Объекты программного обеспечения (классы, модули, функции и т.д.) должны быть открыты для расширения, но закрыты для модификации.

Впервые он был представлен Бертраном Мейером в его канонической книге «Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js