Pull to refresh
56
0.4
Калягин Евгений Игоревич @eugenk

Программист, в основном железячник

Send message

Игровая камера: сборник приемов

Reading time17 min
Views15K

Сегодня мы узнаем:

- можно ли считать людей, которые инвертируют оси в играх, лицами с нетрадиционной ориентацией;

- что такое фокусное расстояние объектива и для чего оно нужно;

- какой угол обзора надо делать у камер, чтобы монитор выглядел, как окно в виртуальный мир;

- как правильно фотографировать;

- и сделаем простенький симулятор дрифта.

Погнали!
Total votes 62: ↑62 and ↓0+62
Comments23

Процедурная генерация 3D-мешей для интро на 64 КБ

Reading time7 min
Views5.2K

В предыдущей статье [перевод на Хабре] мы рассказали, как генерируются текстуры в демо H – Immersion. На этот раз мы изучим ещё один важный инструмент для создания демо нужного размера — процедурную геометрию.

В частности, поскольку в нашем рендеринге используются традиционные полигоны, мы написали процедурный генератор мешей. Мы покажем, как благодаря тщательно подобранным методикам можно создать разнообразие форм или убедить в этом зрителя, как это сделали мы.
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments3

«Чистый» код, ужасная производительность

Level of difficultyEasy
Reading time17 min
Views71K

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

Читать далее
Total votes 95: ↑69 and ↓26+63
Comments222

Домашние печки и чайники постоянно пингуют заграничные хосты

Reading time3 min
Views32K


Домашние гаджеты — от холодильника до чайника — поумнели настолько, что теперь нуждаются в постоянной проверке сетевого подключения. Например, умные печки одного из производителей каждые пять минут пингуют три сервера:

  • google.com
  • baidu.cn
  • yandex.ru
Читать дальше →
Total votes 45: ↑40 and ↓5+52
Comments304

Anki — настолько круто, что я даже представить не мог

Reading time4 min
Views157K

Если вдруг кто не знает, Anki - это бесплатная opensource программа для запоминания слов (и не только). Есть версии под декстоп и мобилы. Она довольно популярна при этом имеет интуитивно-НЕпонятный интерфейс. Мне понадобилось много лет, чтобы понять, насколько она крута, т.к. базовые статьи и туториалы этого не описывают. А многие люди используют ее даже не понимая ее возможностей.

Впервые про Anki я услышал много лет назад. Может быть 10 или больше, точно сказать сложно. Прочитал здесь на Хабре, что есть такая крутая штука как интервальное повторение, и что Anki как раз такая программа, которая использует этот механизм. Помню что в статье рассказывалось только про версию под декстоп.

Читать далее
Total votes 69: ↑60 and ↓9+66
Comments145

Learn OpenGL. Урок 7.2 – Отрисовка текста

Reading time11 min
Views30K

imageВ некоторый момент ваших графических приключений вам захочется вывести текст через OpenGL. Вопреки тому, что вы могли ожидать, получить простую строку на экране довольно сложно с низкоуровневой библиотекой, такой как OpenGL. Если вам не нужно больше 128 различных символов для отрисовки текста, тогда это не будет сложно. Сложности появляются, когда у символов не совпадают высота, ширина и смещение. В зависимости от того, где вы живете, вам может потребоваться больше 128 символов. А что, если вам захочется спецсимволов, математических или музыкальных символов? Как только вы поймете, что отрисовка текста — не самое простое занятие, то к вам придет осознание того, что это, скорее всего, не должно принадлежать такому низкоуровневому API, как OpenGL.


Поскольку OpenGL не предоставляет никаких средств для отрисовки текста, все трудности этого дела оказываются на нас. Поскольку не существует графического примитива "Символ", нам придется придумывать его самим. Уже есть готовые примеры: рисовать символ через GL_LINES, создать 3D-модели символов или отрисовывать символы на плоские четырехугольники в трехмерном пространстве.


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

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

Почему C++ не устаревает

Level of difficultyEasy
Reading time9 min
Views24K

Привет, Хабр! Меня зовут Георгий Осипов. Я работаю в МГУ и компании Яндекс, а также в команде курса «Разработчик С++» Яндекс Практикума. В этой статье я поделюсь своими мыслями о том, почему немолодой язык С++ до сих пор не теряет актуальности.


Кажется, что первое доказательство — новость 2022 года, когда компания Google анонсировала новый язык Carbon. Он должен стать альтернативой C++. Первая версия Carbon выйдет только через 2-3 года, но уже сейчас понятно — если C++ языку ищут замену, значит, её нет.

Читать дальше →
Total votes 57: ↑40 and ↓17+33
Comments337

Высокоточное измерение ЭКГ

Level of difficultyEasy
Reading time9 min
Views4.8K

Последние годы ознаменовались быстрым развитием кардиологии в области как диагностики, так и лечения сердечно‑сосудистых заболеваний.

При этом электрокардиография, как и прежде, остается простым, но важным методом исследования.

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

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

Level of difficultyMedium
Reading time13 min
Views11K

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

Ресурсы


Прежде чем мы приступим к разбору того, что я сделал, важно упомянуть очень полезные ресурсы для создания собственного текстового редактора:

  • Build Your Own Text Editor — наверно, самый фундаментальный пост о создании текстового редактора с нуля, который я видел. Это превосходный туториал на случай, если вы хотите начать писать собственный текстовый редактор. Стоит заметить, что в редакторе из этого туториала в качестве внутренней структуры для текста используется, по сути, вектор строк.
  • Text Editor: Data Structures — отличный обзор множества структур данных, которые можно использовать при реализации текстового редактора. (Спойлер: как минимум одна из них будет рассмотрена в моём посте)
  • Плейлист Ded (Text Editor) на YouTube — это потрясающая серия, в которой @tscoding фиксирует процесс создания с нуля текстового редактора. Эти видео стали для меня источником вдохновения.

Зачем?


Если в сети есть так много хороших ресурсов о создании собственного текстового редактора (не говоря уже о том, что уже существует множество феноменальных текстовых редакторов), то зачем я это пишу? На то есть несколько причин:

  1. Я хотел заняться проектом, непохожим ни на один свой прошлый.
  2. Я хотел создать инструмент, которым смогу пользоваться.
  3. Мне всегда хотелось глубже разобраться с созданием собственных структур данных.
Читать дальше →
Total votes 47: ↑46 and ↓1+58
Comments18

Сгорела на работе. Как 29-летнюю девушку похоронил стресс

Reading time3 min
Views74K

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

Суть: девушка, 29 лет, инженер-тестировщик умерла, от того, что организм не выдержал той ситуации, в которой он оказался.

Читать далее
Total votes 144: ↑119 and ↓25+126
Comments458

И снова про VGA

Level of difficultyMedium
Reading time9 min
Views27K

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

Читать далее
Total votes 104: ↑103 and ↓1+132
Comments39

Wireshark — подробное руководство по началу использования

Level of difficultyMedium
Reading time8 min
Views229K

Wireshark – это широко распространённый инструмент для захвата и анализа сетевого трафика, который активно используется как для образовательных целей, так и для устранения неполадок на компьютере или в сети. Wireshark работает практически со всеми протоколами модели OSI, обладает понятным для обычного пользователя интерфейсом и удобной системой фильтрации данных. Помимо всего этого, программа является кроссплатформенной и поддерживает следующие операционные системы: Windows, Linux, Mac OS X, Solaris, FreeBSD, NetBSD, OpenBSD.

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

Microsoft только что сделала огромную ставку на термоядерный синтез

Reading time10 min
Views52K


Ученые десятилетиями мечтали о ядерном синтезе. Который даст неограниченную энергию и не будет угрожать радиацией. Microsoft считает, что технология почти готова. И теперь ставит на это миллиарды. Предыдущая большая ставка компании — на OpenAI и её ИИ-системы — оправдалась с лихвой. За полгода с момента релиза ChatGPT капитализация компании выросла на 670 миллиардов долларов. Таким интересом со стороны инвесторов и близко не могут похвастаться Google, Apple и Amazon. Посмотрим, сможет ли Сатья Наделла провернуть всё это второй раз, только возможно в ещё большем масштабе.

Читать дальше →
Total votes 75: ↑69 and ↓6+81
Comments469

Тандем Cpp/Graphviz для Описания Сложных ToolСhain(ов)

Level of difficultyEasy
Reading time19 min
Views3.5K

Разработка современного софта это далеко не только про код.

Разработка современного софта это во многом про ToolСhain(ы). Прежде чем начать исполняться исходники проходят гигантский путь. C каждым поколением выходят все более и более массивные системы сборки.
Современные технологии разработки софта это многостадийные конвейеры из различных утилит. Понять их весьма сложно. Однако поможет нам в этом хипстерский язык программирования Graphviz.

Читать далее
Total votes 11: ↑8 and ↓3+7
Comments8

Blink: супербыстрый эмулятор x86_64 размером 119 КБ

Level of difficultyMedium
Reading time6 min
Views19K


На Хабре когда-то писали про талантливую программистку Джастин Танни, автора маленьких и очень быстрых приложений. Приятно знать, что она не останавливает свою неординарную деятельность. Например, одна из её последних разработок — крошечный эмулятор под названием Blink размером всего 116 КБ, который очень быстро компилирует WASM и выполняет Linux-программы x86_64 под разными платформами и даже в браузере.
Читать дальше →
Total votes 56: ↑50 and ↓6+61
Comments14

Что будет дальше

Reading time15 min
Views98K


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

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

Когда живёшь в Иванове, ты не чуствуешь пульс индустрии, страны и мира так, как должен чувствовать. Город, в котором я родился, вырос, построил жизнь и карьеру, их которого я учил всех жить, хоть и находится довольно близко к дефолтному — всё ещё редкое захолустье. Размеренный, спокойный, отдаленный. В городе Иваново легко делать вид, что ты не бежишь ни над какой пропастью, легко не смотреть вниз. Даже если ты известный человек, с огромным количеством друзей и знакомых по всему миру, даже если ты ведешь один из самых популярных индустриальных подкастов, и даже если вся твоя работа подразумевает глубочайшее погружение во всё значимое, что происходит в мире, в регионе, и в твоей индустрии.

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

Читать далее
Total votes 335: ↑187 and ↓148+87
Comments859

Интерактивные книги 2: на этот раз про геймдизайн и алгоритмы

Level of difficultyMedium
Reading time2 min
Views10K
Хабр силен комментариями. Поэтому, когда я писал топик "Мечтали про интерактивные книги? Я знаю человека, который делает их прямо сейчас", то надеялся, что читатели помогут найти аналогичные примеры. Результат превзошел ожидания.


Итак, знакомьтесь — Амит Патель (Amit Patel) и его интерактивные статьи на стыке математики, алгоритмов и программирования. Небольшой дисклаймер: поскольку я не могу встроить интерактивные иллюстрации на Хабр, то буду использовать анимированные gif. Некоторые из них могут быть тяжелые.
Читать дальше →
Total votes 45: ↑45 and ↓0+45
Comments19

Мечтали про интерактивные книги, когда читали фантастику? Я знаю человека, который делает их прямо сейчас

Level of difficultyEasy
Reading time3 min
Views12K
Когда я был юн, то завороженно читал об интерактивных книгах. Нет, не тех, что упомянуты в Гарри Поттере, а о настоящих — описанных десятками фантастов. Таких, где иллюстрации можно покрутить, запустить в динамике, поставить на паузу и рассматривать в разных сочетания. Я думаю, вы понимаете о чем я говорю.

Каково же было мое удивление, когда в прошлом году я наткнулся именно на такие пусть и не книги, но довольно подробные статьи. Делает их калифорнийский iOS-разработчик польского происхождения Бартош Цехановский (Bartosz Ciechanowski). И каждая его статья — штучный товар.


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

Производительность Android приложений Kotlin в сравнении с С++ или цена управления памятью

Reading time9 min
Views18K

Взгляд на скорость выполнения кода с применением NDK.

Вычисление фрактала Мандельброта с помощью Kotlin и С++ и тест на реальных устройствах

Читать далее
Total votes 31: ↑30 and ↓1+32
Comments106

Information

Rating
2,030-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity