Как стать автором
Обновить
-1
0
fluke @fluke

Пользователь

Отправить сообщение

«Восемь бит»: о звуках в старых играх

Время на прочтение5 мин
Количество просмотров21K
Современные игры невозможно представить без правдоподобного звукового сопровождения, диалогов и музыки, но так было не всегда. В самых первых играх звуков не было вообще.

Потом, когда они начали появляться, они выполняли довольно утилитарную функцию — помогали игроку ориентироваться в игровом пространстве и понимать, что его действия «замечены» игрой.

Даже первая приставка для домашних телевизоров Magnavox Odyssey не издавала ни звука.

Более поздние игры подарили знакомое целым поколениям «бипанье» — звуки, издаваемые 8-битными аудиокартами. Сегодня мы вспоминаем историю звуков в ранних играх — как они появились, как менялись и как их наследие живет сейчас.

Всего голосов 30: ↑28 и ↓2+26
Комментарии27

Руководство инструктора к книге «Программирование: Принципы и практика с использованием C++»

Время на прочтение55 мин
Количество просмотров27K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Instructor’s Guide for Programming" автора Бьярне Страуструпа (дата последнего посещения: 20.12.2017).


От переводчика


Бьярн Страуструп известен как разработчик языка программирования C++. Книги его авторства лежат на столах многих маститых разработчиков.


Особенно стоит отметить учебник по основам программирования "Программирование: Принципы и практика с использованием C++". Бьярн написал его для студентов Техасского университета агрокультуры и машиностроения, в котором он долгое время преподавал курс для студентов. В дополнение к самому учебнику, на сайте www.stroustrup.com можно найти Руководство инструктора. Изложенный в нем опыт преподавания курса основ программирования может быть полезен не только для курса по C++. В руководстве можно найти ответы на типичные вопросы преподавателей: Как подавать материал? Как бороться с расслоением группы по навыкам? Насколько глубоко нужно погружаться в тему?


Мне не удалось найти русской версии Руководства инструктора к книге "Программирование: Принципы и практика с использованием C++", поэтому я решил перевести его и опубликовать.

Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии2

Хачим IntegerCache в Java 9

Время на прочтение5 мин
Количество просмотров14K
Для многих переход на Java 9 выглядит как нечто абстрактное. Давайте переведем это в практическую плоскость одним коротким победоносным примером, который привел в своей статье Питер Варгас [1].
Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Комментарии24

Простая модель адаптивного фильтра Калмана средствами Python

Время на прочтение5 мин
Количество просмотров30K

Проблема


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

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

Адаптивность методов повышения точности динамических измерений следует понимать, как использование прогнозирования значений дисперсий и погрешности для следующего цикла измерений. Такое прогнозирование осуществляется в каждом цикле измерений. Для этой цели применяются фильтры Винера, работающие в частотной области. В отличии от фильтра Винера, фильтр Калмана работает во временной, а не в частотной области. Фильтр Калмана был разработан для многомерных задач, формулировка которых осуществляется в матричной форме. Матричная форма достаточно подробно описана для реализации на Python в статье [1], [2]. Описание работы фильтра Калмана, приведенная в указанных статьях, рассчитана на специалистов в области цифровой фильтрации. Поэтому возникла необходимость рассмотреть работу фильтра Калмана в более простой скалярной форме.
Читать дальше →
Всего голосов 34: ↑31 и ↓3+28
Комментарии3

Контейнеры Docker немного увеличивают энергопотребление сервера

Время на прочтение3 мин
Количество просмотров11K

Энергопотребление компьютера с ОС Linux и сервисом Docker без всякой нагрузки (без загрузки контейнера)

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

Поскольку в контейнерах не работают одновременно два ядра операционной системы, как в виртуальных машинах, то казалось бы, что энергопотребление у них должно быть такое же, как при работе обычной операционной системы. Но это не так. Cравнительное тестирование Linux и Docker показало, что энергопотребление контейнеров Docker чуть выше.
Читать дальше →
Всего голосов 31: ↑22 и ↓9+13
Комментарии14

Считаем до трёх: три

Время на прочтение5 мин
Количество просмотров16K

Троичный счётчик


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

Это уже третья статья, по мере готовности будет продолжение. Оглавление:


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


Всего голосов 35: ↑33 и ↓2+31
Комментарии31

Бесплатные плагины, инструменты и сервисы для разработки игры на юнити

Время на прочтение3 мин
Количество просмотров30K
Всем привет. В своей статье я хочу рассказать про бесплатные юнити плагины, которые использовал для создания своих игр. Есть плагины для разработки, монетизации, аналитики, соцсетям и т.д. Вот ссылка на список в гитхабе.

Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии15

Системы инициализации Unix и Linux после SysV

Время на прочтение6 мин
Количество просмотров23K

До середины 2000-х никому в голову не приходило менять sysvinit, почти никому. Gentoo с самого начала создавала и развивала OpenRC. Все изменилось с появлением launchd в Mac OS X. Разработчики Ubuntu бросились создавать Upstart, в котором были позаимствованы некоторые идеи из launchd. Дело шло ни шатко ни валко, но тут случился systemd и смешал все карты. Но кто же был истинным первопроходцем?




Daniel J. Bernstein математик и специалист по криптографии, автор популярного MTA qmail и множества других менее известных программ, среди которых выделяется daemontools. Для множества современных систем инициализации daemontools являлся примером и вдохновителем. Прошу внутрь для того, чтобы познакомиться с самой элегантной, простой и влиятельной системой управления службами в Unix / Linux.

Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии20

Трехмерная графика в вебе

Время на прочтение7 мин
Количество просмотров34K
Веб-технологии прочно вошли в нашу повседневную жизнь. Мы проводим во всемирной паутине достаточно большое количество времени — смотрим новости, совершаем покупки, общаемся и работаем. Индустрия услуг и развлечений в сети Интернет стремительно развивается, ведущие разработчики программного обеспечения улучшают поддержку трехмерной графики в своих продуктах. Традиционно ее поддержка ограничивалась высокопроизводительными компьютерами или специализированными игровыми консолями, а программирование требовало применения сложных алгоритмов. Однако благодаря росту производительности персональных компьютеров и расширению возможностей браузеров стало возможным создание и отображение трехмерной графики с применением веб-технологий.

В отличие от других технологий для работы с трехмерной графикой (таких как OpenGL и Direct3D), WebGL предназначена для использования в веб-страницах и не требует установки специализированных расширений или библиотек. Одно из преимуществ WebGL — приложения конструируются как веб-страницы, то есть одна и та же программа будет успешно выполняться на самых разных устройствах (к примеру, на смартфонах, планшетных компьютерах и игровых консолях). Это означает, что WebGL будет оказывать все более усиливающееся влияние на сообщество разработчиков и станет одним из основных инструментов программирования графики.

image
Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии24

Открытый курс машинного обучения. Тема 1. Первичный анализ данных с Pandas

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров1.1M


Открытый курс машинного обучения mlcourse.ai сообщества OpenDataScience – это сбалансированный по теории и практике курс, дающий как знания, так и навыки (необходимые, но не достаточные) машинного обучения уровня Junior Data Scientist. Нечасто встретите и подробное описание математики, стоящей за используемыми алгоритмами, и соревнования Kaggle Inclass, и примеры бизнес-применения машинного обучения в одном курсе. С 2017 по 2019 годы Юрий Кашницкий yorko и большая команда ODS проводили живые запуски курса дважды в год – с домашними заданиями, соревнованиями и общим рейтингом учаcтников (имена героев запечатлены тут). Сейчас курс в режиме самостоятельного прохождения.

Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии61

Уменьшение размера дистрибутива в Java 9

Время на прочтение4 мин
Количество просмотров17K
Через четыре месяца планируется выпустить Java 9 (надеемся, что переносов сроков больше не произойдёт). Ничто не мешает уже сейчас на предварительной версии проверить, насколько соответствует ожиданиям главная возможность новой версии — модульность (проект Jigsaw).



В статье описываются изменения, требуемые для сборки дистрибутива с поддержкой модульности. Сборка дистрибутива производится в операционных системах Windows, macOS и Linux.
Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии6

Анализ исходного кода Quake

Время на прочтение17 мин
Количество просмотров45K
image

Я с удовольствием погрузился в изучение исходного кода Quake World и изложил в статье всё, что я понял. Надеюсь, это поможет желающим разобраться. Эта статья разделена на четыре части:

  • Архитектура
  • Сеть
  • Прогнозирование
  • Визуализация
Читать дальше →
Всего голосов 54: ↑54 и ↓0+54
Комментарии11

Мифы о Spark, или Может ли пользоваться Spark обычный Java-разработчик

Время на прочтение31 мин
Количество просмотров45K
Продолжаем расшифровывать и местами облагораживать хардкорные доклады спикеров JPoint 2016. Сегодня доклад поменьше, всего час с копейками, соответственно, концентрация пользы и отжига на одну минуту зашкаливает.

Итак, Евгений EvgenyBorisov Борисов о Spark, мифах и немного о том, дествительно ли тексты Pink Floyd адекватнее, чем у Кэти Пэрри.





Это будет необычный доклад о Spark.

Обычно много рассказывают про Spark, какой он крутой, показывают код на Scala. Но у меня немного другая цель. Во-первых, я поговорю о том, что такое Spark и зачем он нужен. Но основная цель — показать, что вы, как Java-девелоперы, можете прекрасно им пользоваться. В этом докладе мы развеем несколько мифов о Spark.
Всего голосов 34: ↑30 и ↓4+26
Комментарии8

Рекурсия. Беглый взгляд

Время на прочтение3 мин
Количество просмотров35K

image


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

Читать дальше →
Всего голосов 29: ↑18 и ↓11+7
Комментарии34

Gentoo — это возможность выбора

Время на прочтение3 мин
Количество просмотров21K

Gentoo — это свобода выбора. Мы так часто это говорили, что нам уже не хочется повторять еще раз. Однако, по следам недавних стычек в рассылке, в которых я также принял участие, и среди сообщества свободного ПО в целом, считаю, что повторение в данном случае уместно.




Ладно, потерпите немного, я собираюсь поговорить о systemd. Это не пост о systemd, но без упоминания о нем, это сообщение скорее всего не будет заслуживать внимания. Так что, давайте поговорим о том, почему я поднимаю эту тему.

Читать дальше →
Всего голосов 38: ↑30 и ↓8+22
Комментарии105

Дональд Кнут о своей счастливой жизни, своей смерти и о последних двух проектах

Время на прочтение8 мин
Количество просмотров10K
«Я понял, что готов умереть, как только закончу книгу.»

image


Я все еще работаю над «Искусством программирования», но я нашел время для работы над двумя крупными проектами. Над одним я работал в конце 80-х, а над другим в начале 90-х. Это были монографии.

Первый проект назывался «Аксиомы и оболочки», я изучал интересные проблемы в геометрии — выпуклой геометрии — и я продолжал работать над этим, пока я был в Сингапуре, выпуская в печать «3:16». Это была небольшая книга, около 100 страниц.

Затем я начал изучать случайные графы — удивительный феномен, когда происходит нечто вроде Большого Взрыва: начинаете с точек, которые ничем не соединены, затем выбираете 2 случайные точки и соединяете их, и так далее; как только вы перейдете количество соединений, около половины точек, неожиданно почти все точки всегда оказываются соединенными. Это называется «гигантской компонентой».
Всего голосов 25: ↑22 и ↓3+19
Комментарии1

Думаешь, ты знаешь Си?

Время на прочтение4 мин
Количество просмотров53K
image

Многие программисты утверждают, что знают С. Ну что ж, у него самый известный синтаксис, он существует уже 44 года и он не захламлен непонятными функциями. Он прост!

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

Если вы думаете что он прост — пройдите этот тест. В нем всего 5 вопросов. Каждый вопрос в принципе одинаковый: какое будет значение возврата?
Всего голосов 60: ↑44 и ↓16+28
Комментарии270

Математика в JavaScript

Время на прочтение20 мин
Количество просмотров195K

Введение


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

От переводчиков


Всем привет, с вами Максим Иванов и Дмитрий Сергиенков, и сегодня мы решили, что мы не будем говорить о модных и полезных штуках типа ReactJS, Angular, TypeScript и других. Сегодня мы уделим внимание математике в JavaScript. Если вам нравится математика, вы можете заниматься ей всё свободное время, но если вашей целью являются не научные изыскания, а работа программистом, математика вряд ли станет лучшим объектом для изучения.
Читать дальше →
Всего голосов 61: ↑55 и ↓6+49
Комментарии20

Как научиться оценивать задачи, если не умеешь: 4 фактора сложности

Время на прочтение11 мин
Количество просмотров66K
Когда я был начинающим программистом, – а впрочем, и позднее, когда я был начинающим ведущим разработчиком, – я думал, что спрогнозировать сроки, в которые ты что-то сделаешь, абсолютно невозможно. Или же, что хороший прогноз требует очень детальных проектирования и подготовки, примерно таких же по длительности, как и сама задача.

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

В одной из команд, где я работал, мы придумали оригинальный метод для предварительной оценки задач. Метод синтезирует некоторые известные из литературы приёмы, но в приведённой форме, пожалуй, никем не описан. Концепция была следующей: объективность (связь с измеримыми показателями); интегрируемость с Agile; повторяемость; быстрота оценки (меньше 0.5% от объема задачи); доступность для начинающих разработчиков. Я буду рад обсудить нашу идею и не исключаю, что кому-то из Хабрааудитории она придётся по душе.
Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии5

Использование Drag-and-drop между различными Activity в Android 7 Nougat

Время на прочтение4 мин
Количество просмотров12K
В этой статье я хочу рассказать о новой возможности перетаскивать данные между различными Activity в режиме совместного отображения, которая появилась с выходом Android 7 Nougat. Ранее перетаскивать данные можно было только в рамках одной Activity.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии6
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Украина
Дата рождения
Зарегистрирован
Активность