Компьютерные сети

Недавно я в целях ликвидации безграмотности посмотрел видеокурс GeekBrains по компьютерным сетям (автор — Алексей Степченко). Курс великолепный, то как автор доносит информацию до слушателей — выше всяких похвал. Зиждется данный курс на практических примерах и заданиях, которые выполняются в программе Cisco Packet Tracer, которая эмулирует компьютерные сети, то бишь хосты, серверы, свичи, роутеры и пр. Причем эмулирует, я бы сказал, с высокой степенью реалистичности. В этой программе вы настраиваете сетевое оборудование и можете в реальном времени наблюдать функционирование сети. Читать дальше …

Опыт изучения OpenGL — Часть 6 — Улучшаем программу рисования треугольника

В прошлой заметке мы нарисовали треугольник с использованием практически голого OpenGL. Начнем теперь видоизменять программу. Цель — сделать ее более простой для понимания и менее подверженной ошибкам. Предпосылки для написания своего фреймворка У приведенной в прошлой заметке программы рисования треугольника есть следующие потенциальные возможности для улучшения: Очень много вызовов всяких функций, выполняющих очень мелкие операции в рамках некой сравнительно крупной задачи. Например, чтобы скомпоновать шейдерную программу, надо вызвать функции glCreateProgram, glAttachShader, glLinkProgram, glDetachShader. Ясно, что в подобных случаях все эти Читать дальше …

Опыт изучения OpenGL — Часть 5 — Рисуем треугольник

В предыдущих заметках мы провели всю необходимую подготовку для того, чтобы начать рисовать. Рисовать начнем с треугольника (так поступают авторы большинства книжек по OpenGL). На примере рисования треугольника мы обсудим ряд базовых концепций компьютерной графики. Пока речь не пойдет о трехмерном пространстве, наш треугольник не будет поворачиваться, и на него нельзя будет взглянуть под произвольным углом. Литература Настоятельно рекомендую вам главы из нижеследующих книг перед чтением этой заметки (или после чтения): Jason McKesson — Learning Modern 3D Graphics Programming. — Читать дальше …

Опыт изучения OpenGL — Часть 4 — Класс engine::ProgramBase

Я продолжаю рассказывать о написанном мною рисовательном API на базе OpenGL, размещенном в открытом репозитории на хостинге BitBucket. К сожалению, написание программы с помощью OpenGL требует существенной предварительной артподготовки в виде Загрузки функций OpenGL (инициализации библиотеки GLEW) Создания окна Создания контекста OpenGL В сегодняшней заметке я освещу класс engine::ProgramBase, который собирает все перечисленные этапы воедино, и в следующих заметках перейду непосредственно к рисованию. Задачи класса ProgramBase Все программы, которые что-то рисуют при помощи OpenGL, как оказалось, имеют ряд общих черт. Читать дальше …

Опыт изучения OpenGL — Часть 3 — Создание контекста рисования

В предыдущих двух заметках я рассказал о том, как загрузить функции OpenGL (проинициализировать библиотеку GLEW) и как создать окно, в котором мы будем рисовать. Но для рисования нам потребуется так называемый OpenGL context — «an object that holds all of OpenGL» — он уже упоминался в первой заметке. Повторим вкратце основные факты о контексте OpenGL: Контекст обладает состоянием. Его состояние определяет, что будет нарисовано на экране. Изменить (повлиять на) это состояние могут только функции API OpenGL. Т. е. контекст можно Читать дальше …

Опыт изучения OpenGL — Часть 2 — Окно

В прошлой заметке я начал рассказывать про свой опыт изучения OpenGL и остановился на том, что проинициализировал библиотеку GLEW, которая загружает все функции API OpenGL. Чтобы начать рисовать что-либо при помощи OpenGL, нам нужно то, на чем можно рисовать, а именно — окно. Ему и посвящена настоящая заметка. Работа окна имеет непосредственное отношение к используемой нами операционной системе, в моем случае — Windows. Поэтому в коде активно используется WinAPI. Исходный код проекта по изучению OpenGL находится в открытом репозитории. Литература Читать дальше …

Как сделать свой проект открытым (open source)

Недавно мне довелось делать закрытый проект открытым, т. е. перевести его в разряд проектов с открытым исходным кодом (open source). Не уверен, что все сделал абсолютно правильно. Тем не менее, опытом хочу поделиться. Добавление лицензии в проект Copyright notice Зависимости (dependencies): как быть с их лицензиями Делаем репозиторий открытым Добавление лицензии в проект Если проект не снабжен лицензией, он тем не менее защищен авторским правом. Причем это подразумевает, что никто, кроме автора, не может распространять проект в оригинальном или модифицированном Читать дальше …

Опыт изучения OpenGL — Часть 1 — Введение

С детства мечтал писать компьютерные игры, и вот, года три назад решил рискнуть — поизучать OpenGL. Почему взялся изучать не игровой движок, а низкоуровневый API (API — Application Programming Interface)? Потому что люблю изучать все с как можно более низкого уровня, чтобы разобраться как оно работает (например, изучение языка ассемблера Intel очень помогло моему пониманию языков Си и C++). А почему OpenGL, а не DirectX? — Просто по OpenGL я смог найти больше литературы, чем по DirectX. Изучать OpenGL — Читать дальше …

Вращательное движение

Что в курсе механики (простой, не аналитической) всегда вызывало у меня удивление, так это вращательное движение, моменты сил, импульса… В этой заметке рассмотрим основные интересные вещи, связанные с вращением. Момент силы и момент импульса Момент инерции Сохранение момента импульса при изменяющемся моменте инерции Энергия поступательного и вращательного движения Вращательный дисбаланс Колесо на палке, волчок, прецессия Литература Дуглас Джанколи — Физика в 2-х томах — Москва, Мир, 1989. Разделы 9,10 — Вращательное движение. Момент силы и момент импульса На рисунке 1 Читать дальше …

Начала термодинамики

В предыдущей заметке речь шла об идеальном газе и понятии температуры. Но это была прелюдия к более сложным вещам, а именно, ко 2-му и 3-му началам термодинамики. Сложные они лично для меня, потому что вовлекают довольно абстрактные понятия: обратимость-необратимость процесса, энтропия. Литература Isaak Asimov — Understanding Physics — Vol. 1 Motion, sound, heat — Chapter 15 Thermodynamics. Дуглас Джанколи — Физика в 2-х томах — Москва, Мир, 1989. Раздел 21 — Второе начало термодинамики. Hugh Young and Roger Freedman — Читать дальше …