Pull to refresh
0
0
Kanstancin Novikaŭ @Kickoman

Software engineer

Send message

Rust — это не «memory safe C»

Level of difficultyMedium
Reading time27 min
Views50K

TL;DR:
— в Rust намного больше достоинств, чем просто скорость и безопасность
— в Rust по умолчанию CDD (compiler-driven development, разработка через компилирование). Это как TDD, только CDD
— Rust — не сложный язык, особенно если не гнаться за максимальной производительностью

В этой статье я бы хотел рассказать:
— почему взгляд на Rust как на "memory safe C" очень сильно сужает область его возможного применения
— почему я смотрю на Rust как на очень удобный в разработке язык высокого уровня, которому просто случайно повезло оказаться невероятно быстрым
— почему разработка на Rust быстрее, чем многие думают
— почему Rust — это один из лучших языков общего назначения

Читать далее
Total votes 155: ↑149 and ↓6+168
Comments555

О Wikidata для тех кто вообще не слышал: открытая база данных, сестринский проект Википедии — с ней же и интегрирован

Level of difficultyEasy
Reading time3 min
Views5.7K

Здравствуйте, на Хабре не много о Викиданных, хочу рассказать об этом бесплатном открытом интересном и полезном сервисе. Веб интерфейс располагается по адресу https://www.wikidata.org/wiki/Wikidata:Main_Page.

Читать далее
Total votes 34: ↑31 and ↓3+35
Comments11

Как работает физика в играх

Level of difficultyMedium
Reading time17 min
Views20K

В мире видеоигр игровая физика играет важную роль, определяя реалистичность и взаимодействие игрового мира с игроком. Что же происходит под капотом? Какие алгоритмы и подходы используются в современных движках? И что же значит «застрять в текстурах»? (спойлер: чушь полнейшая)

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

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

Обзор часов HUAWEI WATCH GT 4

Level of difficultyEasy
Reading time6 min
Views22K

В октябре 2023 года ко мне на обзор попали умные часы от Huawei — HUAWEI WATCH GT 4 46 mm. Я немного затянул с обзором, но зато девайсом я пользовался много. Сравнивал я с Apple Watch Series 7и браслетом Mi Band 7 от Xiaomi. Большая проблема обзора таких девайсов — я не пользуюсь функциями сна, почти не измеряю давление и использую только для некоторого количества тренировок (ходьба, бассейн), при занятии с железом я стараюсь больше смотреть за общим состоянием организма и не запускаю конкретную тренировку. Иногда просто забываю. Часы много кто уже брал на обзор, я не буду новатором, но во многих обзорах почти ничего не говорится про спортивную составляющую. Я в обзоре её коснусь; детально не разбирал все тренировки, но за три месяца часы прошли тренажёрный зал, тренировки по рукопашному бою, по фехтованию. Также они побывали в хамаме и сауне. Кроме того, использовались при повседневном ношении. Комплектация у часов обычная: провод для зарядки, сами часы и резиновый ремешок.

Читать далее
Total votes 15: ↑13 and ↓2+26
Comments42

Корутины C++ для чайников: пишем асинхронный веб-клиент

Level of difficultyMedium
Reading time24 min
Views25K

Написать этот материал меня побудило... отсутствие хороших статей по корутинам в C++ в русскоязычном интернете, как бы странно это не звучало. Ну серьезно, C++20 существует уже несколько лет как, но до сих пор почти все статьи про корутины, что встречаются в рунете, относятся к одному из двух типов. Или обзор начинается с самых глубин и мелочей, пересказывая cppreference, а потом автор выдыхается и все сводится к "ну а дальше все понятно, возьмите и примените это в своем коде", что напоминает известную картинку с совой. Либо иногда в статьях рассматривается применение корутин на примере генераторов, и этим все и ограничивается. Но, давайте будем честны, генераторы — это замечательно, но за все время моей многолетней карьеры разработчика я, вероятно, делал что‑то подобное генераторам разве что разок, в то время как асинхронный ввод‑вывод приходится использовать почти в каждом проекте. И поэтому меня гораздо больше интересует реализация асинхронного ввода‑вывода с использованием корутин, а не генераторы. Поэтому пришлось разбираться во всем самому.

Читать далее
Total votes 55: ↑53 and ↓2+64
Comments34

Самое понятное объяснение Специальной теории относительности

Level of difficultyMedium
Reading time13 min
Views116K

Специальная теория относительности - удивительная теория, которая опровергла многие представления о мире, в которых человечество не сомневалось всю историю своего существования.

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

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

Для иллюстраций я написал интерактивный визуализатор СТО, работающий в браузере. Ссылка на него и исходники проекта в конце статьи.

Читать далее
Total votes 385: ↑385 and ↓0+383
Comments391

Как разработчику организовать личную базу знаний: систематизация информации из книг, статей, видео и курсов

Level of difficultyEasy
Reading time6 min
Views49K

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

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

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

Читать далее
Total votes 69: ↑67 and ↓2+80
Comments96

Бардак в GNOME — это не случайность

Level of difficultyMedium
Reading time13 min
Views56K

GNOME удалось добиться, казалось бы, невозможного: это самая ограниченная по возможностям и раздутая десктопная среда для Linux. Но это не просто случайность. Это результат высокомерия и дилетантства основных разработчиков, превративших архитектурные решения GNOME в шедевр хаоса. Чтобы лучше понять, что происходит, давайте проанализируем некоторые из примеров. Даже если ни один из них не затрагивает непосредственно вас, стоит понять modus operandi ведения проектов GNOME и то, как они вредят сообществу Linux.
Читать дальше →
Total votes 132: ↑124 and ↓8+147
Comments274

Компилятор за выходные: лексер и парсер

Level of difficultyMedium
Reading time12 min
Views16K

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

Сегодня я публикую две статьи разом, поскольку по дороге меня довольно круто занесло, и получился небольшой спин-офф. Очень рекомендую к прочтению :)

Ну а тема этой статьи - автоматическое построение синтаксического дерева aka лексер и парсер.

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

Компилятор за выходные: синтаксические деревья

Level of difficultyMedium
Reading time11 min
Views27K

Вам когда-нибудь приходилось задаваться вопросом, как работает компилятор, но так руки и не дошли разобраться? Тогда этот текст для вас. Мне тоже не доводилось заглядывать под капот, но тут так случилось, что мне нужно прочитать курс лекций о компиляторах местным третьекурсникам. Кто встречался с некомпетентными преподавателями? Здравствуйте, это я :)

Итак, чтобы самому разобраться в теме, я собираюсь написать транслятор с эзотерического языка программирования wend (сокращение от week-end), который я только что сам придумал, в обычный ассемблер. Задача уложиться в несколько сотен строк питоновского кода. Основной репозиторий живёт на гитхабе (не забудьте заглянуть в мой профиль и посмотреть другие tiny* репозитории).

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

Локальные нейросети. Аналог ChatGPT-3.5 на домашнем ПК: OpenChat 7B превосходящая 70B, DeepSeek для кода уровня ChatGPT

Reading time8 min
Views88K

Есть много локальных аналогов ChatGPT, но им не хватает качества, даже 65B модели не могут конкурировать хотя бы с ChatGPT-3.5. И здесь я хочу рассказать про 2 открытые модели, которые всё-таки могут составить такую конкуренцию.

Речь пойдет о OpenChat 7B и DeepSeek Coder. Обе модели за счет размера быстры, можно запускать на CPU, можно запускать локально, можно частично ускорять на GPU (перенося часть слоев на GPU, на сколько хватит видеопамяти) и для такого типа моделей есть графический удобный интерфейс.

И бонусом затронем новую модель для качественного подробного описания фото.

UPD: Добавлена информация для запуска на Windows с ускорением на AMD.

Читать далее
Total votes 88: ↑86 and ↓2+102
Comments87

Дизайн-система Gravity UI: как легко построить свой интерфейс

Level of difficultyEasy
Reading time7 min
Views43K

Всем привет, я Алексей Сизиков, руководитель отдела User Experience в Yandex Cloud. В этой статье я хочу поделиться новостью: мы выпустили нашу дизайн-систему и библиотеку компонентов Gravity UI в опенсорс. 

Под катом — рассказ, зачем мы сделали Gravity UI, как его используем, в чём особенности и преимущества нашего подхода и как мы планируем развивать его дальше. А ещё — как настроить разные цветовые схемы в своих проектах и почему у нас четыре темы вместо двух стандартных.

Читать далее
Total votes 66: ↑64 and ↓2+67
Comments27

Как менялось наше представление о Большом взрыве

Level of difficultyMedium
Reading time10 min
Views22K

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

Центральным столпом космологии является теория Большого взрыва, признанная сегодня большинством физиков. Но хотя в своём первоначальном виде она появилась уже почти сто лет назад, сегодня её понимают уже совсем не так, как раньше.

В 1916 г. Альберт Эйнштейн опубликовал общую теорию относительности, которая давала единое описание гравитации как геометрического свойства пространства и времени. В то время Эйнштейн верил в статичность Вселенной, но обнаружил, что его первоначальная формулировка теории не допускает подобного. Это объясняется тем, что массы, распределённые по Вселенной, гравитационно притягиваются и, следовательно, должны двигаться друг к другу с течением времени.
Читать дальше →
Total votes 42: ↑40 and ↓2+60
Comments44

Самодельные звукоизлучатели

Level of difficultyEasy
Reading time14 min
Views18K
Картинка Upklyak, Freepik

Если посмотреть в сети, то многие самодельщики обходят стороной такую любопытную сферу приложения усилий, как самодельные звукоизлучатели. Тем не менее понимание этой области позволит создавать свои собственные звукоизлучающие устройства, практически из подножного материала, что само по себе может быть весьма занятным и полезным. Например, можно создать звуковую колонку из листа бумаги, которая будет очень дешёвой и её не страшно будет оставлять без присмотра (например, на даче). Эта же простота и понимание устройства, позволяет и попробовать создать колонку любого размера. Или же, собрать альтернативу широко известным типам звукоизлучающих устройств — электростатическую колонку (как заявляют очевидцы, обладающую поразительно кристальным звучанием). А если вы захотите получить простой и дешёвый источник громкого звука, чтобы отпугивать вредителей (например, птиц) или просто собрать сторожевую систему из электродвигателя — то сирена ваш выбор! Обо всём этом и не только — в этой статье.
Читать дальше →
Total votes 61: ↑59 and ↓2+80
Comments21

Сам написал, сам погонял: как я написал 3D-гонки «на жигулях» за неделю, полностью с нуля?

Level of difficultyMedium
Reading time28 min
Views36K
image

Статьи про инди-разработку игр — это всегда интересно и занимательно. Но статьи про разработку игр с нуля, без каких-либо игровых движков — ещё интереснее! У меня есть небольшой фетиш, заключающийся в разработке минимально играбельных 3D-демок, которые нормально работали бы даже на железе 20-летней давности. Полтора года назад, в мае 2022 года, я написал демку гоночной игры с очень знакомым всем нам сеттингом — жигули, девятки, десятки, и всё это даже с тюнингом! В этой статье я расскажу вам о разработке 3D-игр практически с нуля: рендерер, менеджер ресурсов, загрузка уровней и граф сцены, 3D-звук, ввод и интеграция физического движка. Интересна подробнейшая хаброторная статья о разработке игры с нуля? Тогда добро пожаловать!
Читать дальше →
Total votes 157: ↑157 and ↓0+157
Comments55

Трансформером по A*, или как уменьшить число итераций самого известного алгоритма поиска пути

Level of difficultyMedium
Reading time24 min
Views7.8K

Привет! Меня зовут Константин Яковлев, я научный работник и вот уже более 15 лет я занимаюсь методами планирования траектории. Часто эта задача сводится к поиску пути на графе, для чего обычно используется алгоритм эвристического поиска A*. Этот алгоритм был предложен в 60-х годах XX века и с тех пор используется повсеместно. Скорее всего, юнит вашей любимой RTS бежит по карте с помощью той или иной вариации A*. Точно так же, под капотом беспилотного авто вы, наверняка, найдёте A*, хотя там, конечно, не только он.

A* — это хороший алгоритм, но его вычислительная эффективность сильно зависит от эвристической функции, которую должен задать разработчик. Основная проблема стандартных эвристик заключается в том, что они не учитывают расположение препятствий на карте и ведут поиск буквально напролом, тратя на это ресурсы (итерации поиска). Почему бы нам не воспользоваться современными нейросетями для решения этой проблемы, а именно попросить нейросеть посмотреть на карту и подсказать поиску как лучше обходить препятствия, чтобы быстрее (за меньшее число итераций) найти нужный путь?

Этот текст посвящен как самому алгоритму A*, так и попыткам повысить его эффективность с помощью методов искусственного интеллекта. Заодно я расскажу о том, какие новшества в этом направлении придумали мы с коллегами: научная статья на эту тему опубликована в сборнике конференции AAAI 2023.

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

Топ 10 deepnude нейросетей 2023 года

Reading time5 min
Views624K

DeepNude — это технология, использующая нейросети для создания изображений обнаженных тел на основе одетых фотографий или видео. Суть этой технологии заключается в том, чтобы "снять" одежду с изображения человека с помощью искусственного интеллекта и показать, как, предположительно, выглядит тело человека под одеждой.

Итак, в данной статье поговорим о пикантных и для некоторых людей непристойных темах, которые больше всего интересуют наше общество - обнаженное тело. Сделаем обзор таких сервисов как: Deepnude.ai, Deepfake.com, DeepSwap.ai, SoulGen и прочих.

Читать далее
Total votes 87: ↑73 and ↓14+85
Comments68

Визуальное RPG с долговременной памятью, генерируемое из 3 нейросетей и LLamы

Level of difficultyEasy
Reading time17 min
Views13K

Языковые модели (NLP) сейчас активно развиваются и находят себе всё больше интересных применений. Начиналась же их эпоха с классики жанра — D&D. Это настольная игра, где несколько друзей или просто знакомых синхронно галлюцинируют, представляя себя командой героев в некоем вымышленном мире. Прав же во внутриигровых выборах тот, кто выкинул большее число на игральной кости. Судить сейчас об их мотивации у меня нет никакого желания, да и статья вообще-то не об этом.

Важно только понимать, что движущей силой сюжета в их сессиях является лишь один из игроков, называемый Dungeon Master. Когда только начали появляться первые GPT-модели, одной из первых хотелок гиков оказалось желание сварить из нейросетей автоматического Dungeon Masterа.

Так и появился AIDungeon — уникальная для своего времени (2019 год) вещь, которая не сильно потеряла в популярности и по сей день. Однако, если вы любите смотреть глубже, то играть в него вам быстро надоест. Я же в своей серии из нескольких статей (посвящённых GPT) стараюсь показать простому обывателю механизм безболезненного использования нейросетевых моделей в простых проектах при помощи Python и Hugging Face Transformers.
Приступим
Total votes 64: ↑64 and ↓0+64
Comments11

От полиглота к эксперту: модели mGPT для малых языков России и стран СНГ

Level of difficultyEasy
Reading time13 min
Views6.6K

Не так давно мы рассказывали про то, как мы обучили модель-полиглот mGPT, которая говорит на 61 языке. Этим летом в открытый доступ мы выложили большую мультиязычную модель (претрейн) mGPT-13B под открытой лицензией MIT.

Сегодня мы хотим поделиться с вами семейством моделей-экспертов на основе оригинальной mGPT для языков СНГ и малых народов России. Оригинальная модель уже владела этими языками, но нам хотелось сделать максимально качественные моноязычные модели, использовав доступные открытые сеты.

Из общего набора в 61 язык мы дообучили 23 модели на дополнительных данных под каждый язык стран СНГ и малых народов России. И в этой статье мы расскажем про то, как мы это сделали и насколько лучше каждый конкретный файнтьюн знает свой язык. А сами модели можете найти на Hugging Face.

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

Звериные алгоритмы: какими представителями животного мира вдохновлялись исследователи для создания алгоритмов

Level of difficultyEasy
Reading time16 min
Views7.6K

По мере развития технологий в мире появляется все больше различных технологических алгоритмов. Часть из названы в честь ученых, имеющих отношение к их разработке, другая часть имеет простые (или не очень простые) «сухие» названия или же забавные наименования, например, коктейльная сортировка (Cocktail shaker sort), в русском языке называемая просто — «сортировка перемешиванием». Сегодня поговорим про алгоритмы, названные в честь различных представителей животного мира.

Читать далее
Total votes 23: ↑22 and ↓1+33
Comments3

Information

Rating
Does not participate
Location
Витебск, Витебская обл., Беларусь
Date of birth
Registered
Activity