Пользователь
Шум Перлина (Perlin Noise)
Многим людям приходилось использовать генератор случайных чисел в программах для создания непредсказуемости, чтобы сделать движение и поведение объектов более натуральным или генерировать текстуры. Генераторы случайных чисел, конечно, имеют свои области применения, но иногда их выход может быть слишком «жесткий», чтобы казаться естественным. В этой статье мы представляем функцию, которая имеет очень широкий спектр применения, больше, чем я мог бы думать, но в основном везде, где вам нужно чтобы что-то выглядело естественного происхождения. К тому же вывод может быть легко настроен под ваши нужды.
Если посмотреть на многие вещи в природе, вы заметите, что они являются фрактальными. Они имеют различные уровни детализации. Типичным примером является очертание горного хребта. Оно содержит значительные различия в высоте (горы), средние изменения (холмы), небольшие вариации (валуны), крошечные изменения (камни) и так далее. Посмотрите на что угодно: распространение пятен травы на поле, волн в море, движение муравьев, движение ветвей дерева, узоры из мрамора, ветра. Все эти явления поддаются той же схеме, в больших и малых вариациях. Функция шума Перлина воссоздает это, просто складывая функции шума в различных масштабах.
Для создания функции шума Перлина, вам нужны две вещи, функции шума и функция интерполяции.
Искусство позиционирования
![](https://habrastorage.org/storage2/002/1d3/6c2/0021d36c2d766b52dfa0c204834a90c9.jpg)
Представьте такую ситуацию: вы с командой собираетесь запустить/запустили стартап, гордитесь своей идеей, работаете днем и ночью, и однажды, возращаясь домой поздно ночью встречаете своего старого знакомого. Происходит следующий диалог:
…
— А ты чем занимаешься то?
— Да мы с ребятами стартап запускаем, такой классный!
— О, круто! А что за стартап?
— Ну слушай, сейчас объясню. Вобщем, это каталог с музыкой, в котором ее можно оценивать, ставить лайки и делиться ею с друзьями. А главное, все это бесплатно!
— А ну понятно. Ладно, я пошел, до встречи.
Трикоптер (Квадрокоптер своими руками: Часть II.2)
![](https://habrastorage.org/storage2/60a/be1/ccb/60abe1ccb446153ee31f6176f69c14d5.jpg)
Как рассказать про вашу игру засранцу
В повседневной жизни я — игрожур, но на досуге я сам пишу одну игру (Gunpoint), она даже вышла в финал Independent Games Festival, я немного горжусь этим (до меня выступал создатель Solipskier, объяснявший, почему всем наплевать на IGF, так что мне стало немного легче). Это моя первая игра, к тому же ещё недописанная, поэтому учить вас программированию мне не по статусу. Вместо этого я хочу поговорить о том, как рассказывать о играх. С этим легко накосячить, особенно когда вы находитесь в контексте игры; но описанию нужно уделять большое внимание, если вы не хотите остаться единственным пользователем. Мне повезло — за восемь лет я натренировался рассказывать о чужих играх, так что со своей всё пошло легче.
Даже не ожидайте, что аудитория вашего сайта, интервью или ролика будет состоять исключительно из умных, серьёзных и заинтересованных людей. Потому что в худшем случае это могу прочесть я — а я тот ещё засранец.
Сейчас я расскажу, почему на тупиц типичные методы не действуют, а потом объясню (как весьма опытный засранец), как нужно рассказать про игру, чтобы это понял каждый.
Шпаргалки для тех, кто делает первые шаги
![](https://habrastorage.org/storage2/9d1/9b9/a9c/9d19b9a9c08121358e6e3dd99043bf73.png)
На картинке фрагмент отличной шпаргалки, где собраны основные электронные компоненты — их внешний вид и обозначения на принципиальных схемах.
Шпаргалка по электронным компонентам (PDF, 168Kb)
Шпаргалка по контроллерам AVR (ч.1) (PDF, 61Kb)
Шпаргалка по контроллерам AVR (ч.2) (PDF, 61Kb)
PS: Там же, на сайте, имеется любопытный блог с описанием эффектных электронных поделок. Культура исполнения на высоте, приведены ссылки на open source прошивки.
Прислушивайтесь к своему сообществу, но не позволяйте ему указывать, что вам нужно делать
Наверняка вы знаете, как журналисты любят спрашивать в своих интервью о вашей самой большой слабости или о вашей самой крупной ошибке, которую вы когда-либо совершили? Эти вопросы могут выглядеть стереотипными или даже походить на клише. Но будьте внимательны, когда отвечаете на них: они намного важнее, чем кажутся.
Когда люди спрашивают меня о самой большой ошибке, которую я совершил в процессе создания Stack Overflow (Прим. переводчика — далее SO) я рад, что не надо выдумывать и говорить банальности. Я могу честно и открыто рассказать об огромной, нелепой и, до смешного, дурацкой ошибке, которую совершил в самом начале разработки SO. Что ещё хуже, я могу рассказать о такой ошибке, которую продолжал совершать потом ещё и на протяжении девяти месяцев на фоне продолжающихся протестов сообщества.
Вопросы Леонардо да Винчи
Это вторая из трех статей о техниках анализа проблем и принятия решений (первая здесь).
Сегодня речь пойдет о технике, которая называется «Вопросы Леонардо да Винчи» и является скорее способом мозгового штурма.
Откуда такое название? По непроверенной информации метод этот появился после расшифровки и анализа дневников гения, в которых и было найдено описание, а также следы неоднократного применения данного метода.
Основное его преимущество в том, что он не требует практически никаких материальных ресурсов, а временные затраты окупаются сразу.
С помощью этой техники вы можете анализировать все, что угодно, начиная от кусочка кода, заканчивая книгой, которую вы хотите написать. Я, например, последний раз использовал ее перед составлением презентации, целью которой была продажа идеи внедрения некой системы для сотрудников руководящего состава.
Примеров в этой статье не будет по двум причинам.
1. Пример в первой статье оказался крайне неудачным
2. Текст получился бы слишком громоздким, если бы я использовал хотя бы один пример (сейчас поймете почему)
Всех заинтересовавшихся прошу под кат.
Применение вакуумного люминисцентного индикатора
![](https://habrastorage.org/storage2/f63/db4/043/f63db40433125f45f9ef3eee5d0be7cb.jpg)
Подобные дисплеи выглядят довольно красиво, а использовать их очень просто, так что они подойдут для множества проектов.
Я использовал дисплей IEE 036X2–122–09220 (он же IEE 36199-01), их можно найти на ибее. Скорее всего, работа с любым другим VFD от IEE не будет отличаться (также, как и со многими другими похожими дисплеями, например, от кассовых аппаратов).
Игры free-to-play: как сделать их успешными
![image](https://habrastorage.org/getpro/habr/post_images/32b/dd6/f71/32bdd6f7107ff2c5fd76fac757df7523.jpg)
Вообще, free-to-play (F2P) игры – это не какой-то новый жанр, это целая революция в игровой индустрии. Появление F2P повлияло на большинство аспектов и факторов в маркетинге, издании, дистрибуции, дизайне и разработке.
Один из главных плюсов F2P заключается в том, что, как бы странно это ни звучало, на старте не требуются большие инвестиции.
Простая паяльная станция на микроконтроллере
Восстановление расфокусированных и смазанных изображений
Почему же для устранения смаза и расфокусировки практически ничего нету (unsharp mask не в счет) – может быть это в принципе невозможно? На самом деле возможно – соответствующий математический аппарат начал разрабатываться примерно 70 лет назад, но, как и для многих других алгоритмов обработки изображений, все это нашло широкое применение только в недавнее время. Вот, в качестве демонстрации вау-эффекта, пара картинок:
![](https://habrastorage.org/storage2/73c/4ef/470/73c4ef470d38e37db24cf61230640dc1.png)
Я не стал использовать замученную Лену, а нашел свою фотку Венеции. Правое изображение честно получено из левого, причем без использования ухищрений типа 48-битного формата (в этом случае будет 100% восстановление исходного изображения) – слева самый обычный PNG, размытый искусственно. Результат впечатляет… но на практике не все так просто. Под катом подробный обзор теории и практические результаты.
Осторожно, много картинок в формате PNG!
Образование в вузе и за его пределами: взгляд с кафедры
Когда использовать Parallel.ForEach, а когда PLINQ
Введение
Обычно, при оптимизации программы для многоядерных компьютеров первым шагом является выяснение возможности разделения алгоритма на части, выполняющиеся параллельно. Если для решения задачи необходимо параллельно обрабатывать отдельные элементы из большого набора данных, то первыми кандидатами станут новые возможности параллельности в .NET Framework 4: Parallel.ForEach и Parallel LINQ (PLINQ)
Parallel.ForEach
Класс Parallel содержит метод ForEach, представляющий собой многопоточную версию обычного цикла foreach в C#. Подобно обычному foreach, Parallel.ForEach выполняет итерации над перечислимыми данными (enumerable), но с использованием множества потоков. Одна из более часто используемых перегрузок Parallel.ForEach выглядит следующим образом:
public static ParallelLoopResult ForEach<TSource>(
IEnumerable<TSource> source,
Action<TSource> body)
Ienumerable указывает на последовательность, по которой нужно выполнить итерации, а Action body задает делегат, вызываемый для каждого элемента. Полный список перегрузок Parallel.ForEach можно найти здесь.
PLINQ
Родственный с Parallel.ForEach PLINQ представляет собой модель программирования для паралелльных операций над данными. Пользователь определяет операцию из стандартного набора операторов, включающих в себя проекции, фильтры, агрегирование и т.д. Подобно Parallel.ForEach PLINQ достигает параллельности, разбивая входную последовательность на части и обрабатывая элементы в разных потоках.
В статье выделяются различия между этими двумя подходами к параллельности. Разбираются сценарии использования, в которых лучше всего использовать Parallel.ForEach вместо PLINQ и наоборот.
Выполнение независимых операций
Тестирование параллельных потоков
А зачем вообще это нужно?
Архитектура логирования
Топик написан как продолжение к этой статье и будет полезен в первую очередь начинающим программистам.
Здесь я собираюсь осветить следующие вопросы:
- Внутреннее свойство логгера и примеры софта который его использует.
- Объемы, уровни и детализация сообщений лога.
- Общие правила конфигурации в разработке, в бою и в расследовании.
Вскрытие Pentium III, фотографии под микроскопом
![](https://habrastorage.org/storage1/e5473753/c1d2efdc/e38878cc/6e455c4d.jpg)
Все фото кликабельны и доступны в высоком разрешении.
Бесплатные книги
Основы программирования
Экспорт пользовательского интерфейса из Фотошопа
Экспорт пользовательского интерфейса из Фотошопа
Каждый разработчик игр в сталкивается с проблемой переноса/натягивания пользовательского интерфейса.
Большинство моих знакомых просят художников делать текстурные атласы, и потом в ручную или при помощи встроенных в игру тулзов располагают это на экране.
Самая острая проблема заключается именно в расстановке данных объектов на экране. Я встречал варианты ручного позиционирования через .ini файлы с указанием положения на экране и описание прямоугольника с текстурными координатами. Это вполне приемлемо если у вас немного элементов и есть свободное время.
Самодельный расходомер для автомобиля
Конечно, можно было купить готовое изделие, может, даже за меньшую цену (хотя за меньшую я не находил). Но это было неинтересно, и оно могло не иметь тех функций, которые мне хотелось иметь. К тому же, хобби, как и спорт, редко оправдывает затраты в материальной форме.
Прежде, чем рассказать о процессе, покажу картинку, как это выглядит сейчас. Программа пока в стадии дебага, поэтому контроллер висит на проводах в салоне, а дисплей прилеплен на двухсторонний скотч ) В дальнейшем это будет установлено по-человечески.
![Image #1326265, 1.2 MB Image #1326265, 1.2 MB](https://habrastorage.org/getpro/geektimes/post_images/042/119/82c/04211982c97174c32351c97c31db3db3.jpg)
Прибор вычисляет и отображает на дисплейчике километровый расход топлива: на нижней строке мгновенный, на верхней — средний за последний километр.
Information
- Rating
- 3,624-th
- Location
- Россия
- Date of birth
- Registered
- Activity