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

Привет!

Сложно переоценить успех книги "Designing Data-Intensive Applications" которая вышла в русском переводе и неизменно допечатывается у нас под названием "Высоконагруженные приложения"

Написать книгу: стоит ли игра свеч?.. От автора книги «Высоконагруженные приложения» - 1

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

Читаем с удовольствием!
Читать полностью »

В настоящее время существует не так уж много стандартов связи, которые с одной стороны, любопытны и интересны, с другой стороны, их описание не занимает 500 страниц в формате PDF. Одним из таких, несложных для декодирования, является сигнал VHF Omni-directional Radio Beacon (VOR), используемый в аэронавигации.

Определяем направление на аэропорт с помощью RTL-SDR и GNU Radio - 1
VOR Beacon (с) wikimedia.org

Для начала вопрос читателям — как сформировать сигнал так, чтобы с помощью ненаправленной приемной антенны можно было определять направление? Ответ под катом.
Читать полностью »

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

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

rustup update stable

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

Что вошло в стабильную версию 1.47.0

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

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

tp

Почти год назад я переехал жить в Беларусь. Как вы уже догадались, если релокейт проходит без проблем, то такие истории на хабр не пишутся. Однако, у меня есть что рассказать. Моя история будет не о славном граде Минске, белорусской идентичности, летних протестах и прочих, несомненно, важных вещах. Я расскажу вам об одной белорусской компании, в которой меня угораздило недолго поработать. История эта совершенно феерическая — что-то подобное могли бы снять режиссёры Silicon Valley. Всю свою карьеру я думал что так просто не бывает. Ну даже если и бывает — то я в это точно не вляпаюсь. Однако, я ошибался. Мне не повезло — переезд вышел мне боком и я влетел в целый водоворот событий. Они довольно поучительны и, как мне кажется, мой опыт будет интересен всем, кто планирует переезжать в ближайшем будущем. Меня зовут Павел и вот моя история.

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

Под капотом сортировок в STL - 1

Стандарт С++ почти никогда не указывает, как именно должен быть реализован тот или иной std алгоритм. Дается только описание того, что на входе, что на выходе и асимптотические ограничения по времени работы и памяти. В статье я постарался прикинуть, какие математические алгоритмы и структуры данных имели ввиду авторы стандарта, указывая ограничения для той или иной сортировки и для некоторых других алгоритмов. А так же как эти алгоритмы реализованы на практике.

При написании статьи я использовал стандарт C++17. В качестве реализаций рассматривал GCC 10.1.0 (май 2020) и LLVM/Clang 10.0.0 (март 2020). В каждой и них есть своя реализация STL, а значит и std алгоритмов.

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

Как генерируются UUID - 1

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

Современную реализацию UUID можно проследить до RFC 4122, в котором описано пять разных подходов к генерированию этих идентификаторов. Мы рассмотрим каждый из них и пройдёмся по реализации версии 1 и версии 4.
Читать полностью »

В нативный код из уютного мира Java: путешествие туда и обратно (часть 1) - 1

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

Но тут возникают подводные камни: написать нативный метод и вызвать библиотеку может быть и легко, но JVM начинает крашиться в случайных местах, производительность падает, сборщик мусора перестает справляться с работой, а в репозитории царствуют бесконечные C-шные файлы с буквами JNI. Что же могло пойти не так?

Иван Углянский (dbg_nsk) из Huawei разбирается со всем по порядку: что необычного в интеропе между Java и нативным кодом, как оно работало раньше и что нужно делать для их нормальной совместной работы (и можно ли это вообще сделать). Иван рассказывает, как избежать просадок производительности, внезапных OOM и размышляет на тему будущего — в контексте проектов Panama и Sulong.

Мы подготовили текстовую версию доклада о работе с нативами в Java. В первой части:

  • Зачем вообще работать с нативным кодом в Java.
  • С какими ошибками и проблемами придётся столкнуться при работе с нативами.

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

Далее — повествование от лица спикера.

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

Про язык управления промышленными CNC-станками и всевозможными любительскими устройствами вроде 3D-принтеров написано очень много статей, но почитать о том, какова идеология этого языка и как она связана с аппаратной реализацией — почти негде. Поскольку моя работа связана непосредственно с программированием станков и автоматизацией производства, я попробую заполнить этот пробел, а также объяснить, почему выбрал такой странный заголовок.
Читать полностью »

Последнее обновление: 29.09.2020, вклющее изменения до JDK 15 .

С момента выпуска версии 8 до версии 15 Java формируется 163 предложениями по расширению JDK (JEP), каждое из которых вносит некоторые улучшения в платформу. Эта страница представляет собой систематизированный и тщательно подобранный список наиболее важных улучшений.

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

Как ни странно современная мировая робототехника на данный момент развивается на таком феномене как ROS и open-source. Да, по каким то причинам это в России непонято и малоизвестно. Но мы — русскоязычное сообщество ROS, — пытаемся это изменить и поддержать тех энтузиастов-робототехников, которые пишут открытый код для роботов. В этой статье хотелось бы раскрыть работу над таким начинанием в виде конкурса ROS пакетов, который идет сейчас.

Приглашаем на конкурс разработки open-source пакетов на Robot Operating System - 1
Читать полностью »


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