Pull to refresh
2
0
Send message

Разбираем KAN по полочкам

Reading time4 min
Views6.5K

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

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

Читать далее
Total votes 23: ↑21 and ↓2+27
Comments5

Книга рецептов Rust. 2/2

Level of difficultyMedium
Reading time41 min
Views3.6K



Hello world!


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


Читать дальше →
Total votes 18: ↑17 and ↓1+26
Comments0

Разработка игры на C++/SFML: Начало

Level of difficultyMedium
Reading time8 min
Views9.2K

Всем привет!

Пришла, значит, мне в голову идея - сделать свою игру по типу Vampire Survivors и Brotato, а потом я подумал, что можно еще и цикл статей написать про то, как я ее разрабатываю, вдруг кому-то это покажется полезным (ну или хотя бы смешным).

Ну, собственно, вот - первая часть. В ней я покажу, как я создал персонажа и научил его бегать.

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments15

9 полезных крейтов в Rust

Level of difficultyEasy
Reading time11 min
Views6.5K

Привет, Хабр!

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

Крейты в Rust – это пакеты, которые можно использовать для расширения функциональности проектов.

Читать далее
Total votes 21: ↑15 and ↓6+11
Comments15

Константность в C++

Level of difficultyMedium
Reading time31 min
Views12K


Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это седьмая статья из серии, список предыдущих статей приведен в конце в разделе 10. Серия ориентирована на программистов, имеющих определенный опыт работы на C++. Данная статья посвящена концепции константности в C++.


Переменные являются основой любого языка программирования. Если значение переменной нельзя изменить после инициализации, то такие переменные называются неизменяемыми (immutable) переменными или константными переменными или просто константами. Константные переменные в том или ином виде поддерживаются во всех языках программирования и играют в них важную роль. Такие переменные помогают компилятору оптимизировать код, улучшают читаемость и надежность кода, позволяют выявлять бОльшее количество ошибок на стадии компиляции. Константы помогают решать проблемы, связанные с многопоточным доступом к переменным. Использование константных переменных влияет на проектные решения в объектно-ориентированном программировании, а функциональное программирование изначально исходит из неизменяемости используемых переменных.


В C++ концепции константности уделяется значительное место. Для переменных используется два вида константности, имеются ссылки и указатели на константу, константные функции-члены, константные итераторы. Попробуем разобраться во всех этих понятиях.

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

Как работает сеть в контейнерах: Docker Bridge с нуля

Level of difficultyMedium
Reading time21 min
Views37K

В этой статье мы собираемся разобраться со следующими вопросами:

* Как виртуализировать сетевые ресурсы, чтобы контейнеры думали, что у них есть отдельные сетевые среды?

* Как превратить контейнеры в дружелюбных соседей и научить общаться друг с другом?

* Как выйти во внешний мир (например, в Интернет) изнутри контейнера?

* Как связаться с контейнерами, работающими на хосте Linux, из внешнего мира?

* Как реализовать публикацию портов, подобную Docker?

Читать далее
Total votes 71: ↑71 and ↓0+71
Comments14

Что почитать игровому программисту?

Level of difficultyEasy
Reading time6 min
Views25K

Объём специфичных знаний, которые требуются рядовому программисту игр, даже если он только начал свою карьеру, вызывает у меня «лёгкую» тоску. Это одна из причин, почему большая часть людей, которые «горят делать игры», отсеивается на этапе технических собеседований (обычно их больше одного). Это нормально и грустно. Добавьте сюда, что нефундаментальные знания, вроде инструментов, библиотек и движков, приходится обновлять где‑то раз в 5–7 лет. Не вижу тут, что игрострой сильно отличается от других областей разработки. Если бы лет 15 назад «добрый я» скинул на почту список книг, которые придется прочитать и осмыслить, армия собранных граблей не была бы столь большой и разнообразной, и без ручек половинной длины. Осторожно, в конце статьи будет супердлинная картинка (взята с github отсюда, с разрешения автора).

У программиста нет цели, только путь.
Total votes 60: ↑60 and ↓0+60
Comments36

Отладка в PL/SQL Developer

Level of difficultyMedium
Reading time12 min
Views7.7K

Привет! Меня зовут Алексей Маряхин, я работаю разработчиком на Oracle и пишу много, очень много кода. И когда программа ведёт себя не так, как ожидалось, на помощь приходит отладка.

Не так давно выяснил, что не все разработчики владеют функционалом отладки или знают её фичи. А если код сложный и баги искать всё равно надо? Литературы на русском языке про отладку практически нет.

Тогда я собрал подробный гайд для коллег и провёл внутренний семинар по обмену опытом. Материал получился настолько подробным и полезным, что решил поделиться им с сообществом программистов. На примере инструментов для работы с СУБД Oracle, которые используются у нас в компании, посмотрим, как работает отладка, сравним их в теории и узнаем, что внутри.

В серии из двух статей подробно расскажу о способах, инструментах и нюанса отладки кода PL/SQL. Первая часть — про инструмент PL/SQL Developer. Поехали!

Читать далее →
Total votes 9: ↑8 and ↓1+8
Comments2

userver 1.0 — релиз фреймворка для IO-bound программ

Reading time7 min
Views17K
С момента выхода 🐙 userver в опенсорс прошло чуть больше года. За это время мы успели реализовать множество запросов от наших новых пользователей и обросли внушительной аудиторией в каналах поддержки. При этом поток вопросов, как пользоваться различными частями userver, значительно сократился, а это значит, наши улучшения документации принесли свои плоды.

image

Поэтому мы вышли из беты и сделали релиз!

Что нового в релизе? Зачем вообще нужен userver и какие существуют технологии для обеспечения надёжной работы серверных приложений? Можно ли воспользоваться крутыми C++ классами из userver, не используя при этом корутины? Какие дальнейшие планы? Ответы на все эти вопросы ждут вас под катом.
Читать дальше →
Total votes 48: ↑47 and ↓1+60
Comments15

userver — что мы узнали за полгода в open-source

Level of difficultyEasy
Reading time7 min
Views19K
image
Прошло больше полугода с момента выхода фреймворка для C++ 🐙 userver в open-source. За это время мы многое узнали, на многом настрадались, а главное — получили много приятных сюрпризов.

И мы решили об этом написать. Рассказ будет полезен тем, кто ведёт или планирует вести свой open-source проект или занимается контрибьютами. Остальным будет интересно почитать про чужое набивание шишек и что вообще open-source даёт проекту.
Читать дальше →
Total votes 55: ↑54 and ↓1+64
Comments29

Исследуем саундбар Yamaha YAS-109

Level of difficultyHard
Reading time9 min
Views30K

Всем привет!

Краткое предисловие: я счастливый обладатель замечательного саундбара YAS-109 от Yamaha, на момент написания пользуюсь им уже целый год, и всё в целом хорошо. Но однажды я решил узнать: не подслушивает ли меня мой музыкальный друг? Ведь у него есть встроенная поддержка Alexa, а ещё Bluetooth, WiFi, Ethernet и другие прелести… Так и начинается история моего ресёрча.

Читать далее
Total votes 219: ↑219 and ↓0+219
Comments52

3D-принтеры в 2023 году для дома и для работы. Хороших моделей всё больше

Reading time5 min
Views38K

Привет, Хабр! Не так давно мы публиковали подборку хороших лазерных граверов. Сейчас расскажем о 3D-принтерах, которые могут подойти как для дома, так и для работы. Правда, речь не о профессиональных устройствах, поскольку профи и так знают, что им нужно. Поговорим о любительских принтерах и моделях, которые по классу чуть выше любительских.

Читать далее
Total votes 11: ↑9 and ↓2+14
Comments15

Арифметика fixed-point на C++

Reading time3 min
Views21K
Сегодня расскажу Вам что такое fixed-point, зачем он нужен и как его можно использовать.

Существует такая проблема когда производительность приложения может заметно ухудшиться из-за особенностей вычисления на числах с плавающей точкой. Как правило CPU заточен под целочисленные операции, а сопроцессор FPU (floating point unit) в нем работает на порядке медленнее. Существую такие платформы где вообще отсутствует FPU и эмулирование операций с числами занимало бы много времени. Например, при наличии FPU, умножение чисел с плавающей точкой выполняется всего одной командой fmul, а при отсутствии FPU, умножение выполняется эмулирующей функцией __mulsf3. По сравнению с командой fmul, функция __mulsf3 эмулирует операции над числами с плавающей точкой, при этом вычисления производятся в целочисленном виде, что приводит к увеличению машинного кода и времени на его выполнение, в то время как команда fmul выполнит эту операцию быстро, с использованием аппаратных средств.

Данной проблеме существует решение, которое позволяет проводить вычисления с фиксированной точкой на целочисленном типе.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments22

21 фича современного C++, которые вам обязательно пригодятся

Reading time10 min
Views32K

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

Сообщество C++ дополняет стандарт чаще, чем Apple выпускает новые iPhone. Благодаря этому C++ теперь больше похож на большого слона, а съесть целого слона за один присест невозможно. Вот почему я решил написать эту статью, чтобы дать вашему путешествию по современному C++ своего рода отправную точку. Моя целевая аудитория здесь — люди, которые переходят со старого (т.е. 98/03) С++ на современный (т.е. 2011 и далее) С++.

Я отобрал ряд фич современного C++ и постарался объяснить их на лаконичных примерах, чтобы вы научились определять места, где их можно использовать.

Читать далее
Total votes 52: ↑47 and ↓5+53
Comments160

Multithreading

Reading time77 min
Views183K

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

Читать далее
Total votes 17: ↑15 and ↓2+18
Comments3

Lock-free структуры данных. Concurrent map: разминка

Reading time9 min
Views57K

Мне оказали честь — пригласили выступить на первой конференции C++ 2015 Russia 27-28 февраля. Я был насколько наглым, что запросил 2 часа на выступление вместо положенного одного и заявил тему, наиболее меня интересующую — конкурентные ассоциативные контейнеры. Это hash set/map и деревья. Организатор sermp пошел навстречу, за что ему большое спасибо.
Как подготовиться ко столь ответственному испытанию выступлению? Первое — нарисовать презентацию, то есть кучу картинок, желательно близко к теме. Но надо ещё и два часа озвучивать картинки, — как все это запомнить? Как избежать глубокомысленных «ээээмммм», «здесь мы видим», «на этом слайде показано», несвязных прыжков повествования и прочих вещей, характеризующих выступающего c не очень хорошей стороны в части владения родным языком (это я про русский, с C++ я разобрался быстро — никакого кода в презентации, только картинки)?
Конечно, надо записать свои мысли, глядя на слайды. А если что-то написано, то не худо бы и опубликовать. А если публиковать, — то на хабре.
Итак, по следам C++ 2015 Russia! Авторское изложение, надеюсь, без авторского косноязычия, без купюр и с отступлениями по теме, написанное до наступления события, в нескольких частях.
Читать дальше →
Total votes 55: ↑52 and ↓3+49
Comments24

Сервис полезных ссылок и ресурсов для разработчиков игр и геймдизайнеров

Reading time10 min
Views5.1K

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

Читать далее...
Total votes 7: ↑6 and ↓1+6
Comments2

Нестандартный полиморфизм. Паттерн Type Erasure

Level of difficultyMedium
Reading time15 min
Views12K

Нестандартный полиморфизм. Паттерн Type Erasure.

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

Читать далее
Total votes 12: ↑11 and ↓1+14
Comments47

Особенности построения хранилища данных на базе ClickHouse в Yandex Cloud

Reading time16 min
Views7.8K

В данной статье делимся опытом внедрения решения на базе СУБД ClickHouse и сервисов Yandex Cloud. Мы не коснёмся тонких настроек ClickHouse или его масштабирования, но затронем достаточно интересные на наш взгляд темы:

• как загружать данные из On-premise в облачный ClickHouse с использованием сервисов Yandex Cloud – Functions, Object Storage, Message Queue;

• как обрабатывать/преобразовывать данные в облачном ClickHouse – очищать и строить витрины; какие «подводные камни» нам встретились на этом пути.

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments7

Information

Rating
Does not participate
Registered
Activity