Pull to refresh
4
Karma
0.3
Rating

Senior Java Developer

Простое понимание замыканий в Rust

Programming *Rust *
Tutorial

У вас бывало такое, что вы никак не можете скомпилировать код с замыканиями в Rust? Уже и все варианты Fn-трейтов перебрали, и move написали везде, где можно, а borrow checker все равно не унимается? И тут оказывается, что просто нужно внутри замыкания клонировать переданную переменную окружения! Сложно и непонятно. Дурацкий привереда Rust.


На самом деле довольно просто понять, почему так происходит и на что влияет move, а на что — клонирование. Но отсутствие подобного понимания я наблюдаю не только у начинающих программистов, но и у вполне зрелых. Хуже того, есть статьи, в которых это объясняется неправильно.

Читать дальше →
Total votes 43: ↑43 and ↓0 +43
Views 8.3K
Comments 8

Что такое ngrx/createFeature и как это может облегчить жизнь frontend-разработчику

Мир Plat.Form (НСПК) corporate blog Programming *Angular *TypeScript *
Tutorial

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

Читать далее
Total votes 2: ↑2 and ↓0 +2
Views 1.5K
Comments 0

Глубокое погружение в Java Memory Model

Programming *Java *


Я провел в изучении JMM много часов и теперь делюсь с вами знаниями в простой и понятной форме.


В этой статье мы подробно разберем Java Memory Model (JMM) и применим полученные знания на практике. Да, в интернете накопилось достаточно много информации про JMM/happens-before, и, кажется, что очередную статью про такую заезженную тему можно пропускать мимо. Однако я постараюсь дать вам намного большее и глубокое понимание JMM, чем большинство информации в интернете. После прочтения этой статьи вы будете уверенно рассуждать о таких вещах как memory ordering, data race и happens-before. JMM — сложная тема и не стоит верить мне на слово, поэтому большинство моих утверждений подтверждается цитатами из спеки, дизассемблером и jcstress тестами.

Читать дальше →
Total votes 109: ↑109 and ↓0 +109
Views 48K
Comments 58

GraphQL, что ты такое?

HeadHunter corporate blog Website development *

Привет! Сегодня у нашей статьи два автора — бэкенд-разработчик Артём и фронтенд-разработчик Илья. 

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

Если лень читать или больше нравится видеоформат — вам сюда

Читать далее
Total votes 12: ↑9 and ↓3 +6
Views 13K
Comments 22

R*-tree в Go, немного геймдева и поиска элементов в пространстве

High performance *Game development *Algorithms *Go *Geoinformation services *
Tutorial
Sandbox

Приветствую, уважаемые читатели Habr!

Если Вы когда-нибудь задумывались, какая структура данных может помочь максимально эффективно искать элементы в пространстве, то, возможно, эта статья Вам поможет!

Эта статья заденет опыт в геймдейве и идеи, где это ещё можно было бы использовать :)

Читать далее
Total votes 16: ↑15 and ↓1 +14
Views 5.3K
Comments 21

Импорт карты высот (heightmap) в Unity

Game development *Unity3D *
Sandbox

Как импортировать карту высот в Unity?

В этом туториале я вам покажу как легко и просто(за 10-15 минут) импортировать карту высот в юнити без каких-либо других технологий(кроме фотошопа). Причем карта сохранит свои размеры и точность!

Мне это интересно →
Rating 0
Views 2.3K
Comments 3

Минимальная реализация Lua на Rust

RUVDS.com corporate blog Programming *Lua *Rust *
Translation
После того, как вы освоите это руководство, в вашем распоряжении окажется минимальная реализация Lua (парсер, компилятор, виртуальная машина), написанная на Rust с чистого листа. Этот проект получил название Lust, его код можно найти на GitHub.

Читать дальше →
Total votes 37: ↑35 and ↓2 +33
Views 7.1K
Comments 11

Фильтрация шума сигнала

Python *Programming *Algorithms *Data visualization *Developing for Arduino *
Sandbox

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

Читать далее
Total votes 45: ↑40 and ↓5 +35
Views 20K
Comments 38

Angular: полное руководство для «Внедрения зависимостей»

Россельхозбанк corporate blog Angular *TypeScript *
Tutorial

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

Читать далее
Total votes 8: ↑7 and ↓1 +6
Views 11K
Comments 6

Создание и использование динамических библиотек в Rust

OTUS corporate blog System Programming *Rust *

Динамические библиотеки подключаются к программе во время выполнения. Это позволяет обновлять их реализацию и компилировать независимо от использующих программ. Такой подход открывает ряд дополнительных возможностей при разработке ПО. Например, написание разных модулей приложения на разных языках. Или создание системы динамически подключаемых плагинов. В данной статье мы рассмотрим, как создавать и загружать динамические библиотеки в Rust.

Читать далее
Total votes 34: ↑34 and ↓0 +34
Views 7.2K
Comments 0

Книга «Классические задачи Computer Science на языке Java»

Издательский дом «Питер» corporate blog Java *Professional literature *
image Привет, Хаброжители! Cтолкнулись с «неразрешимой» проблемой при разработке программного обеспечения? Скорее всего, кто-то уже справился с этой задачей, и вы можете не ломать голову. Дэвид Копец собрал наиболее полезные готовые решения, принципы и алгоритмы. «Классические задачи Computer Science на языке Java» — это мастер-класс по программированию, содержащий 55 практических примеров, затрагивающих самые актуальные темы: базовые алгоритмы, ограничения, искусственный интеллект и многое другое.

В этой книге:

— Рекурсия, мемоизация и битовые манипуляции.
— Поисковые, графовые и генетические алгоритмы.
— Проблемы ограничений.
— Кластеризация методом k-среднего, нейронные сети и состязательный поиск.
Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Views 7.4K
Comments 7

Обработка ошибок в Rust

OTUS corporate blog Designing and refactoring *Rust *

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

Читать далее
Total votes 40: ↑38 and ↓2 +36
Views 9.3K
Comments 23

Безопасная многопоточность в Rust

OTUS corporate blog Programming *Designing and refactoring *Rust *

Представьте ситуацию: вы решили добавить функционал в некоторую сущность (класс, структуру, ...). Для этого вам понадобилось хранить внутри сущности дополнительные данные. Вы добавляете приватные поля, меняете и читаете их внутри методов, интерфейс методов не изменяется, и всё выглядит хорошо. И не просто выглядит, а компилируется, запускается и проходит тесты. Красота... А потом, в один прекрасный день, прод падает. И может быть даже, теряет часть важных данных. Вы с коллегами начинаете искать причину поломки. И оказывается, что та сущность, которую вы дополняли год назад, делится между несколькими потоками, а поля добавленные вами не потокобезопасны и поэтому гонка за доступ к ним в какой-то момент вызывает их повреждение. Неприятно, согласитесь? Хотелось бы иметь инструмент, позволяющий избегать подобных ситуаций. И язык программирования Rust такой инструмент предоставляет.

Читать далее
Total votes 49: ↑46 and ↓3 +43
Views 11K
Comments 3

Дикая природа Gradle Task: руководство по выживанию

Yota corporate blog Groovy & Grails *Development for Android *Kotlin *Gradle *
Tutorial

Приветствую, Gradle-адепт! В статье тебя ждёт авторский тур по Gradle Task. В маршрут включено хождение по граблям, изучение секретных практик buildscript-тасок, проведение раскопок по deprecated API, а ближе к концу зарядимся силой Custom Gradle Task, попрактикуемся в строительстве билд-кеша и узнаем, кто такой Worker API.

Читать далее
Total votes 17: ↑16 and ↓1 +15
Views 10K
Comments 2

Apache Camel и Spring Boot

OTUS corporate blog Java *Apache *
Translation

Apache Camel — это фреймворк для интеграции приложений и эффективного взаимодействия между различными системами, с чем приходится часто сталкиваться в любой корпоративной инфраструктуре. Apache Camel позволяет разработчику сосредоточиться на логике процессов, не переводя данные в канонический формат, так как Camel поддерживает более 80 API для реализации различных протоколов и типов данных. Таким образом, разработчику — то есть вам — достаточно просто знать, как Camel соединяет все вместе. В этой статье мы по шагам рассмотрим, как интегрировать Apache Camel и Spring Boot.

Но прежде чем обратиться к примеру со средой Spring Boot, разберемся с основными понятиями и терминами Camel.

Читать далее
Total votes 9: ↑7 and ↓2 +5
Views 11K
Comments 0

Cassandra Day Russia 2021: онлайн-конференция 27 марта

Southbridge corporate blog NoSQL *Database Administration *Apache *Big Data *
image

Что объединяет Apple, Netflix, Huawei и Instragram? Не только миллиарды запросов, петабайты данных и пользователи по всему миру. Все эти компании используют распределённую NoSQL базу данных Apache Cassandra.

Приглашаем на однодневную онлайн-конференцию Cassandra Day Russia 2021 в субботу 27 марта. Опытные NoSQL специалисты расскажут о возможностях одной из самых мощных баз данных современности и поделятся практическим опытом управления СУБД Cassandra.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Views 1.5K
Comments 0

Полное визуальное руководство-шпаргалка по Flexbox и Grid + туториал

Website development *CSS *JavaScript *Programming *HTML *


Доброго времени суток, друзья!

Представляю вашему вниманию полное визуальное руководство-шпаргалку по всем свойствам CSS-модулей Flexbox и Grid.

Основные источники: A Complete Guide to Flexbox, A Complete Guide to Grid.

В конце статьи вас ждет небольшой туториал по созданию тренажера по Flexbox.

Без дальнейших предисловий.


Total votes 14: ↑10 and ↓4 +6
Views 114K
Comments 7

Пишем ОС на Rust. Настройка среды. Бинарник для «голого» железа

Abnormal programming *Programming *Rust *
Tutorial
Sandbox

Настройка среды. "Голый" бинарник, или Исполняемый файл без main()


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


Оригинал блога разрабатывается на GitHub. Замечания к оригиналу оставляйте на странице Issues репозитория выше, а к переводу — в личке, комментариях или тут. Код, написанный в этой статье, содержится в ветке post-01.

Читать дальше →
Total votes 51: ↑49 and ↓2 +47
Views 13K
Comments 14

Экзамен 1z0-819 Oracle Certified Professional: Java 11 Developer — заметки о сдаче

Java *


В начале октября Oracle упростил получение сертификации по Java — вместо двух экзаменов теперь нужно сдать один, при том что цена за экзамен не изменилась. Кому интересен уровень задач и больше подробностей про экзамен прошу под кат — опишу почему решил сдать, как готовился, какие вопросы были и собственно какие выводы сделал.
Читать дальше →
Total votes 5: ↑4 and ↓1 +3
Views 22K
Comments 3

Information

Rating
1,603-rd
Location
Воронеж, Воронежская обл., Россия
Registered
Activity