Как стать автором
Обновить
864.55
Рейтинг

Программирование *

Искусство создания компьютерных программ

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

О чем расскажут на С++ Russia 2021

Блог компании JUG Ru Group Программирование *C++ *Конференции

Уже скоро стартует С++ Russia. И в преддверии конференции хотим поделиться с хабражителями описаниями докладов.

С++ Russia — это всегда хардкор. В этот раз поговорим про ассемблер, асинхронные движки с корутинами, исключения, GPGPU и многое другое. Будут и низкоуровневые оптимизации, и метапрограммирование, и «кишочки», и конкурентность с многопоточностью.

Среди спикеров будут члены комитета по стандартизации C++, контрибьюторы известных проектов, один из авторов языка Swift (внезапно!), авторы книг и курсов, разработчики из крупных компаний. А также Антон Полухин @antoshkka, сочетающий в себе почти все перечисленное.

Под катом программа с описанием докладов,  для вашего удобства разбили ее на тематические блоки.

Смотреть программу
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 1.3K
Комментарии 1

Новости

Публикация Spring Boot приложения в GitHub Packages с помощью GitHub Actions для самых маленьких

Программирование *Java *GitHub Микросервисы *
Tutorial

Сегодня я расскажу вам как можно опубликовать своё Spring Boot приложение в GitHub Packages с помощью GitHub Actions. Вот так. В общем-то всё. Вот. Спасибо за внимание.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 635
Комментарии 0

Корутины в C++20 — что это и как с ними работать

Блог компании Wunder Fund Программирование *C++ *
Перевод

Прим. Wunder Fund: В статьи описаны базовые подходы к работе с корутинами в 20м стандарте С++, на паре практических примеров разбораны шаблоны классов для промисов и фьючеров. По нашему скромному мнению, можно было бы реализовать и поизящнее. Приходите к нам работать, если имеете сильные мнения о корутинах хе-хе.

Возникает такое ощущение, что тема реализации корутин в C++20 окутана серьёзной неопределённостью. Полагаю, это так из-за того, что в проекте технической спецификации C++20 сказано, что работа над механизмами корутин всё ещё ведётся, в результате в данный момент нельзя ожидать полной поддержки этих механизмов компиляторами и стандартной библиотекой.Множество проблем, вероятно, возникает из-за отсутствия официальной документации по работе с корутинами. Нам дали синтаксическую поддержку корутин в C++ (co_yield и co_return), но не всё то, что я счёл бы признаками их полной библиотечной поддержки. В стандартной библиотеке имеются хуки и базовый функционал поддержки корутин, но нам приходится самостоятельно встраивать всё это в наши собственные классы. Я ожидаю, что полная поддержка корутин-генераторов появится в C++23.

Если вы — Python- или C#-разработчик и ожидаете увидеть в C++ простую механику работы с корутинами, то вас ждёт разочарование, так как фреймворк общего назначения C++20 недоработан. Учитывая это, можно отметить, что в интернете имеется множество публикаций, в состав кода, обсуждаемого в которых, входит шаблонный класс, поддерживающий корутины-генераторы. В этом материале вы найдёте шаблон корутины, применимый на практике, а также примеры кода. Всё это предваряется общими сведениями о корутинах.

Читать далее
Всего голосов 19: ↑19 и ↓0 +19
Просмотры 3.2K
Комментарии 1

Тестирование СУБД: 10 лет опыта

Блог компании VK Тестирование IT-систем *Программирование *Системное программирование *Tarantool *

Меня зовут Сергей Бронников, я работаю в команде Tarantool. Когда я присоединился к ней, то не нашёл общего описания того, как устроено тестирование в проекте. Поэтому я вёл для себя заметки по мере погружения в разработку. Я решил переработать их в статью. Она может быть интересна тестировщикам в проектах на C/C++ или пользователям Tarantool, которые хотят узнать, сколько мы усилий прикладываем к тому, чтобы снизить вероятность появления проблем в новых версиях. 

Популярной статьей такого рода является описание тестирования библиотеки SQLite за авторством Ричарда Хиппа. Но у SQLite есть специфика: их инструменты тяжело переиспользовать в других проектах. Это следствие того, что у команды разработчиков SQLite есть обязательства поддерживать библиотеку как минимум до 2050 года, и для сокращения внешних зависимостей они все инструменты пишут сами с нуля (например, тест-раннер, инструмент для мутационного тестирования, Fossil SCM). У нас таких требований нет, поэтому в выборе инструментов мы не ограничены и пользуемся всем, что приносит пользу. И если вас что-то заинтересует, то вы достаточно легко сможете это принести в свой проект на C/C++. Если я вас заинтересовал — велкам под кат.

Читать дальше
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 1.5K
Комментарии 0

Ленивые диапазоны и стирание типов

Программирование *C++ *

В публикации Ленивые операции над множествами в C++ я показал, как можно проектировать ленивые операции над несколькими диапазонами. Теперь я хочу подробнее рассказать о важном решении, делающем такие операции удобными в использовании.


Один из основных моментов в интерфейсе ленивых операций над диапазонами — это возможность следующей записи


burst::merge(std::tie(range1, range2, ...));

То есть возможность работать с произвольным набором исходных диапазонов.


В коде это будет выглядеть как-то так:


const auto odd = std::vector{1, 3, 5, 7};
const auto even = std::list{0, 2, 4, 6, 8};

const auto merged_range = burst::merge(std::tie(odd, even));

const auto expected = {0, 1, 2, 3, 4, 5, 6, 7, 8};
assert(merged_range == expected);

Почему же это так важно, и что стоит за этой записью?


Ответ на вопрос "почему это важно" понятен. Во-первых, это красиво. Кроме того, удобно.
А вот что за этим стоит — и есть суть данной публикации.

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

Компьютерное зрение на Java? Элементарно вместе с OpenCV

Работа с видео *Программирование *Java *Обработка изображений *Робототехника
Из песочницы

Ас-саляму алейкум, братья!

Думаю многие в своей жизни хотели разобраться с тем как при помощи программного кода обрабатывать изображения и видео. Применений у этого навыка бессчётное количество, у кого на что фантазии хватит. Можно начать с автоматической коррекции огромного числа фотографий, а закончить deep fake видео с участием " Олега Тинькова ".

Какой же инструмент для этого применить, да если ещё учесть что вы закоренелый джавист? Думаю лучшим инструментом в этом случае будет библиотека OpenCV. Исходя из всего вышеперечисленного представляю вам серию видеороликов в которых Я подробно расскажу вам о том как установить библиотеку OpenCV, её функционале и работе с изображением и видео на языке Java.

Ознакомиться
Всего голосов 3: ↑2 и ↓1 +1
Просмотры 1.8K
Комментарии 3

Освежите ваш COBOL: почему на язык 60-летней выдержки вдруг резко возник спрос?

Программирование *Java *Cobol *Читальный зал
Перевод

Давным-давно, когда мир был юн, и компьютеры в нем были в новинку, я учился по программе на младшего сотрудника (Associate Degree) по обработке данных – программ по «компьютерным наукам» тогда не было – и в рамках этой программы преподавались бухгалтерское дело, математика, статистика, а также три языка программирования: ассемблер IBM/360, FORTRAN и COBOL. К 80-м студентам уже рассказывали, что COBOL мертвый язык, и никто его больше не изучают.

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

Читать далее
Всего голосов 49: ↑45 и ↓4 +41
Просмотры 17K
Комментарии 50

Безопасность ПЛК: 4,5) Используйте переменные-флаги, хеши и контрольные суммы для проверки целостности проекта

Информационная безопасность *Программирование *Промышленное программирование *SCADA *Программирование микроконтроллеров *
Перевод
Tutorial

Добавляйте счётчики для флагов ошибок.

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

Разбираем рекомендации по безопасному программированию ПЛК, формируем список своих рекомендаций. Всех неравнодушных прошу под кат.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 591
Комментарии 0

О том, как мы с сочувствием смотрим на вопрос на StackOverflow, но молчим

Блог компании PVS-Studio Программирование *

О том, как мы с сочувствием смотрим на вопрос на StackOverflow, но молчим
Иногда на сайте stackoverflow.com мы видим очередной вопрос, как искать баги определённого типа. И знаем, что решением проблемы может стать использование PVS-Studio. К сожалению, мы вынуждены молчать, иначе ответ будет интерпретирован как неприкрытая реклама. Это статья про наши душевные муки, где рассмотрен конкретный пример такой ситуации.

Читать дальше →
Всего голосов 19: ↑11 и ↓8 +3
Просмотры 5.4K
Комментарии 5

Async/await в TypeScript

Блог компании Издательский дом «Питер» Разработка веб-сайтов *JavaScript *Программирование *Клиентская оптимизация *
Перевод

Если вас заинтересовала эта статья, то вы, наверное, несколько разбираетесь в асинхронном программировании на JavaScript и, возможно, интересуетесь, как оно работает в TypeScript.

Поскольку TypeScript – это надмножество JavaScript, async/await там работает точно также, но с некоторыми дополнительными бонусами и безопасностью типов. TypeScript позволяет запрограммировать безопасность типа ожидаемого результата и даже проверить, нет ли ошибок, связанных с типом. Поэтому баги отлавливаются на ранних стадиях разработки программы.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 3.7K
Комментарии 7

Как научиться работать в Blazor, делая что-то полезное. Часть I

Блог компании FirstVDS Программирование *.NET *WebAssembly *

Когда я вижу, как кто-то учит кого-то языку программирования, то частенько замечаю тенденцию показывать новичкам примитивные примеры в виде ToDo list. Помимо того, что подобные примеры не учат ничему полезному в программировании, они очень однобоки и не позволяют оценить все плюсы и минусы какой-либо среды разработки.

Меня это удручает. Давайте попробуем написать что-нибудь полезное и при этом показать вам, что можно и чего не нужно делать с достаточно новой технологией Microsoft под названием Blazor.
Читать дальше →
Всего голосов 15: ↑15 и ↓0 +15
Просмотры 2.1K
Комментарии 3

Немного примеров match/case в Python 3.10

Python *Программирование *

Не так давно (а именно 4 октября 2021 года) официально увидела свет юбилейная версия языка python, а именно версия 3.10. В ней было добавлено несколько изменений, а самым интересным (на мой взгляд) было введение pattern matching statement (оператор сопоставления с шаблонами). Как гласит официальное описание этого оператора в PEP622, разработчики в большей мере вдохновлялись наработками таких языков как: Scala, Erlang и Rust.

Для тех, кто еще не знаком с данным оператором и всей его красотой, предлагаю познакомиться с pattern matching в данной статье. 

Ознакомиться
Всего голосов 27: ↑26 и ↓1 +25
Просмотры 5.3K
Комментарии 53

Подсчет автомобильного трафика с использованием COMPUTER VISION

Python *Программирование *Машинное обучение *

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

Представим, что нам поставили задачу посчитать поток машин в определенном месте в разное время. На ум приходит только то, что человеку фактически придется вручную произвести примерный расчет по тем или иным показателям.

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

Для начала определимся с источником видеозаписей. Для примера можно взять портал https://weacom.ru/cams. На данном портале размещены в общий доступ различные камеры, которые имеют качественное изображение и хорошее расположение (отлично видно дорогу и автомобили)

В качестве примера камеры возьмем https://weacom.ru/cams/view/akademmost2

Данная камера отлично подойдет дли примера, после попробуем усложнить задачу.

Чтобы получить кадры с камеры, нам необходимо подключиться к потоку самой камеры. Заходим в исходный код и находим ссылку на видеопоток с текущей камеры.

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Просмотры 521
Комментарии 2

Пишем систему рекомендаций музыки на основе ML

Блог компании SkillFactory Python *Программирование *API *Звук
Перевод
Tutorial

К старту курса по ML и DL рассказываем, как воспользоваться API Spotify, чтобы создать систему рекомендаций музыки под настроение на основе алгоритмов ML. Благодаря простоте систему легко настроить под ваши нужды: API Spotify возвращает понятные человеку признаки музыкального файла, например тембр. За подробностями приглашаем под кат.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 2.2K
Комментарии 5

Получаем кривую плотности распределения вероятности случайного (или нет) процесса

Python *Программирование *Анализ и проектирование систем *Алгоритмы *Математика *

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

Помнится, когда впервые возникла задача такого рода, с ходу решить ее не получилось, при кажущейся, на первый взгляд, относительной простоте вопроса, на его решение пришлось потратить некоторое количество времени и обратиться при этом к тематической литературе. Немного покопавшись в поиске Хабра обнаружил, что нет статей, которые могли бы помочь решить такую задачу. В связи с этим я хотел бы простым и понятным языком рассказать коллегам по цеху, как можно построить плотность распределения вероятности какого либо процесса, представленного некоторой числовой последовательностью своими силами, не используя специализированные методы сторонних библиотек для научных расчетов, например, таких как Pandas или Seaborn. Думаю, что научиться это делать или просто освежить тему в памяти было бы полезно многим аналитикам данных, разработчикам, инженерам, научным работникам и другим специалистам.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 2.2K
Комментарии 6

Создаем начальную миграцию с alembic для существующей базы

Разработка веб-сайтов *Python *Программирование *Промышленное программирование *Разработка под Linux *

Создание начальной миграции для существующей базы с alembic

Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Просмотры 552
Комментарии 0

5++ способов в одну строку на Python решить первую задачу Проекта Эйлера

Занимательные задачки Python *Программирование *
Из песочницы

Однажды меня посетила мысль, а что если попробовать решить первую задачу Проекта Эйлера всевозможными способами, но с условием, что решение должно быть в одну строку. В итоге получилось более пяти однострочных решений с применением Filter, Map, Reduce, Generator Expression и т.д. В этой статье я покажу то, к чему я пришёл.

Читать далее
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 8.2K
Комментарии 10

Что там в «Мире Hi-Fi»: ЯП и библиотеки для работы со звуком, ресурсы с «открытой» музыкой, стандарты и критика

Блог компании Аудиомания Open source *Программирование *Звук

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

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Просмотры 2.6K
Комментарии 0

Введение в Облачные Вычисления для Всех от Инженера Microsoft, Ex-Amazon

Программирование *Облачные вычисления *Профессиональная литература Карьера в IT-индустрии Облачные сервисы

Многие из вас слышали про мировой успех облачных компаний и таких компаний как Amazon Web Services, Microsoft Azure и Google Cloud Platform. Сейчас мы видим, как отечественное облако активно развивается – Яндекс Облака, Mail.ru облако и Сбербанк тоже работает в этом направлении.

Лично у меня нет опыта работы с отечественным облаками и пока они еще достаточно молодые, но, я очень надеюсь, что они справятся с задачей и у нас появятся конкурентно способные облачные провайдеры.

Сам я занимаюсь задачами аналитики и инжиниринга данных, то есть работаю с buzz words – Big Data, Data Platform, Lakehouse, Data Lake, Data Science, Machine Learning (ML), AI и т. п., в крупных международных компаниях – Amazon, Microsoft, Xbox.  Про все эти дела я уже 3 года успешно пишу в своем телеграмм канале Инжиниринг Данных, где уже больше 10 тысяч подписчиков.

Я работаю с облаками с 2014 года, с 2016 по 2020 в Амазоне (почти 5 лет), где принимал участие в знаменитом проекте Rolling Stone по миграции on-premise инфраструктуры для аналитики в облако AWS.

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 3.1K
Комментарии 7

Выпуск Rust 1.56.0 и 2021 редакция

Open source *Программирование *Системное программирование *Компиляторы *Rust *
Перевод

Команда Rust рада сообщить о новой версии языка — 1.56.0. С этим выпуском также стабилизируется 2021 редакция. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.


Если вы установили предыдущую версию Rust средствами rustup, то для обновления до версии 1.56.0 вам достаточно выполнить следующую команду:


rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.

Читать дальше →
Всего голосов 37: ↑37 и ↓0 +37
Просмотры 5.4K
Комментарии 10

Вклад авторов