Как стать автором
Обновить
0
0
Роман @ShinRa

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

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

Обзор клавиатуры Cougar 500K с полной её разборкой

Время на прочтение25 мин
Количество просмотров13K
Почти по классику:
«Сеанс чёрной магии
с полным ее разоблачением»
© Михаил Булгаков



Дисклеймер: не повторять! Чревато!


(минимум — потерей гарантии, максимум — неработоспособностью клавиатуры)!

В процессе обзора ни одна клавиатура не пострадала!


Предупреждение: в обзоре будет много сложносочинённых и сложноподчинённых предложений — ну не умею я писа́ть простыми рубленными фразами.
Проще говоря, если какая-то фраза после её повторного прочтения будет непонятна — проигнорируйте её, смысл обзора от этого не изменится.
Также рекомендую проигнорировать «простонародные» и «якобы искажённые» слова и выражения — они использованы осмысленно, «для оживления» текста.


Ещё предупреждение: ссылки на сайт Lurkmore предназначены для взрослой аудитории, «детям до 16» и т. п.





Итак, на сцене, то есть, на столе, клавиатура Cougar 500K от молодого, динамично развивающегося немецкого производителя, название которого по-русски звучит как «кугуа́р», а обозначает, по́просту, пу́му (Пума — это такая большая дикая кошка).



Правда, милашка? Но дизайнеры логотипа, видимо, вдохновлялись другой фотографией, вот этой:



Кстати, здесь зверюга не скалится, а всего-навсего зевает!

Чтобы читатели не заснули на первой же трети этого обзора, я не буду приводить множество фотографий коробки и самой клавиатуры — всё это есть в интернете в избытке.
Характеристики и особенности также легко ищутся на сайте любого интернет-магазина.
На коробке, кстати, есть и «надписи на русском языке» © Владимир Высоцкий, где с обильным вкраплением английских терминов перечислены основные особенности «железки».

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

Читать дальше →
Всего голосов 27: ↑11 и ↓16-5
Комментарии51

Клавиатура своими руками под свои руки

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

Для меня всё началось вот с этого топика о механических клавиатурах, желания научиться печатать быстрее (к своему стыду до недавних пор печатал двумя пальцами, несмотря на 25летний стаж программирования), и появившихся недавно неприятных ощущений в кистях после рабочего дня (да и вообще времени, проведённого за компьютером).
Провёл короткое исследование о том, что вообще есть из клавиатур для программистов и тех, кто много печатает, и написал вот этот обзорный топик. Купил себе Happy Hacking Lite (минималистичная клавиатура с мембранными переключателями), но печатать на ней оказалось ещё менее удобно, чем на ноутбучной, в основном из за ещё более компактного расположения клавиш.
Вскоре появился топик, в котором автор рассказывал о новоприобитённой им Truly Ergonomic, пожалуй, практически идеальной клавиатуры с моей точки зрения, но в комментариях автор же отметил, что спустя два месяца использования так и не смог совсем пересесть на неё, а положение рук совсем не так и удобно, как рекламируется.
Чуть позже появился топик о Kinesis Advantage, по отзыву автора к которой тоже не так легко привыкнуть, а цена так и просто пугает.
И я решил...
Всего голосов 297: ↑286 и ↓11+275
Комментарии142

KeeBee. Изготовление с нуля собственной USB-клавиатуры

Время на прочтение5 мин
Количество просмотров70K
Несколько месяцев назад завершился мой проект по изготовлению USB-клавиатуры. Среди прочего, я выполнил дизайн электронных схем, спроектировал печатную плат, запрограммировал прошивку, сделал макет в CAD и произвёл сборку устройства. В результате получилась удобная клавиатура, которую я использую ежедневно и ласково называю KeeBee:


Клавиатура KeeBee в окончательном виде

Несколько целей проекта:

  1. Самостоятельное создание схемы.
  2. Написание прошивки клавиатуры.
  3. Узнать, как работает протокол USB.
Читать дальше →
Всего голосов 130: ↑130 и ↓0+130
Комментарии86

Непрерывная интеграция в Unity: как сократить время сборок и сэкономить ресурсы + пайплайн в подарок

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


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

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

Сразу договоримся, что в качестве сервера CI мы используем TeamCity от JetBrains, в качестве хранилища Git-репозиториев ― GitHub, для хранения артефактов сборки ― Nexus.
Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии8

Процедурная генерация многоэтажных 3D-подземелий

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

В последнее время я играл в несколько roguelike, поэтому решил попробовать написать собственный процедурный генератор подземелий. Существует множество способов решения этой задачи, и я выбрал алгоритм автора TinyKeep, описанный здесь. Я расширил этот алгоритм, чтобы он работал в 3D и мог создавать многоэтажные подземелья.

Код примера выложен в репозитории Github. Для демонстрации я использую Unity3D, но эти концепции, разумеется, применимы к любому другому движку.

Два измерения


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

Сцена для этого примера называется Dungeon2D. Код для него находится в папке Scripts2D.

Алгоритм


Мир разделён в виде прямоугольной сетки. Я предполагаю, что 1 единицы будет достаточно для обозначения коридора. В полной игре 1 единица измерения Unity может соответствовать например 5 метрам. Для сетки я выбрал размер 30×30.
Всего голосов 46: ↑46 и ↓0+46
Комментарии7

Модульные скетчи

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


В статье описан способ, который упрощает работу над созданием скетчей. Он подойдет всем людям, работа которых — проектировать интерфейсы для пользователей.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии11

Golden canon grid: страшилка для фронтендеров

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


Большая часть людей, так или иначе причастных к верстке сайтов, проходят через… Назовем это “путь бутстрапа”. Это такая философская позиция, когда у тебя есть 12 колонок и ничего больше. Ты берешь элементы, кладешь их в определенные колонки и все у тебя хорошо. Можно выключить мозг, погрузиться в нирвану и руки будут сами расставлять элементы. Красота… Но тут появляется современный дизайнер, который рисует что-то, что ну совсем не сходится с этой замечательной концепцией. Колонок явно больше, они все разной ширины, да еще и по высоте что-то нужно выравнивать. Жуть. А встречается такое все чаще, особенно если сделать шаг в сторону от магазинов или админок. Сегодня мы поговорим о том, что же это за чудо такое там используется и как его можно готовить в современном CSS. Кода будет совсем немного, в основном – размышления и картинки.

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

Как научить нейросеть воспроизводить игровую физику

Время на прочтение11 мин
Количество просмотров14K
Практически в любой современной компьютерной игре наличие какого-либо физического движка является обязательным условием. Развевающиеся на ветру флаги и кролики, бомбардируемые шарами, ― всё это требует надлежащего исполнения. И, конечно, пусть не все герои носят плащи… но те, кто носят, действительно нуждаются в наличии адекватной симуляции развевающейся ткани.



И всё же полное физическое моделирование таких взаимодействий часто становится невозможным, поскольку оно на порядки медленнее необходимого для игр в реальном времени. Данная статья предлагает новый метод моделирования, который может ускорить физические симуляции, сделать их в 300-5000 раз быстрее. Цель его состоит в том, чтобы попытаться научить имитации физических сил нейронную сеть.
Читать дальше →
Всего голосов 55: ↑51 и ↓4+47
Комментарии5

Документация разработчика Hibernate – Глава IV. Пакетная обработка

Время на прочтение7 мин
Количество просмотров28K
Читать далее
Всего голосов 13: ↑12 и ↓1+11
Комментарии0

Скрипт настройки Windows 10

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

image
Давно хотел поделиться своим скриптом по автоматизации настройки Windows 10 (на данный момент актуальная версия 19041), да все руки не доходили. Возможно, он будет кому-то полезен целиком или только его части. Конечно, будет проблематично описать все пункты настройки, но постараюсь выделить самое важное.

Если кому-то интересно, то добро пожаловать под кат.

Читать дальше →
Всего голосов 88: ↑77 и ↓11+66
Комментарии297

git rebase для начинающих

Время на прочтение4 мин
Количество просмотров188K
В продолжение статьи на тему что сказать git, чтобы он сделал то, что вам нужно и перед статьей как создать PR в чужой Open Source проект на GitHub думаю стоит полезным рассказать о том, что такое git rebase.
Читать дальше →
Всего голосов 26: ↑16 и ↓10+6
Комментарии8

Почему системные администраторы должны становиться DevOps-инженерами

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

Для обучения в жизни нет лучшего времени, чем сегодня.

На дворе 2019 год, и тема DevOps сейчас актуальна, как никогда. Говорят, что дни системных администраторов прошли, как миновала эпоха мейнфреймов. Но так ли это на самом деле?
Как это часто бывает в IT, ситуация изменилась. Появилась методология DevOps, но она не может существовать без человека с навыками системного администратора, то есть без Ops.

До того как DevOps-подход приобрёл свой современный облик, я относил себя к категории Ops. И я хорошо знаю, что испытывает сисадмин, когда понимает, сколько же всего он пока не умеет и как мало времени у него на то, чтобы этому научиться.
Читать дальше →
Всего голосов 46: ↑40 и ↓6+34
Комментарии23

UAC Bypass или история о трех эскалациях

Время на прочтение14 мин
Количество просмотров34K
На работе я исследую безопасность ОС или программ. Ниже я расскажу об одном из таких исследований, результатом которого стал полнофункциональный эксплоит типа UAC bypass (да-да, с source-code и гифками).


Ах, да, в Майкрософт сообщили, они сделали вид, что им не интересно.
Алярм! Под катом около 4 мегабайт трафика – картинок и гифок.
Поднять права
Всего голосов 60: ↑58 и ↓2+56
Комментарии15

Пиксельные отступы в текстурной развертке

Время на прочтение7 мин
Количество просмотров8.9K
Представляем четвертую статью нашего цикла о работе с 3D-моделями в Unity. Предшествующие статьи: «Особенности работы с Mesh в Unity», «Unity: процедурное редактирование Mesh», «Импорт 3D-моделей в Unity и подводные камни».

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

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

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

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


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

Предположим, что мы решили создавать персонажа для игры, но что если это будет окружение, архитектура или что-то еще? Сначала нужно узнать какие бывают способы моделирования и понять какой нам больше подходит.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии23

Основы формата GLTF и GLB, часть 1

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

Что такое GLTF и GLB?


GLTF (GL Transmission Format) — это формат файла для хранения 3Д сцен и моделей, который является крайне простым в понимании (структура записана в стандарте JSON), расширяемым и легко взаимодействующим с современными веб-технологиями. Данный формат хорошо сжимает трёхмерные сцены и минимизирует обработку во время выполнения приложений, использующих WebGL и другие API. GLTF сейчас активно продвигается Khronos Group как JPEG от мира 3D. На сегодняшний день используется GLTF версии 2.0. Существует и бинарная версия данного формата, которая называется GLB, единственное различие которого в том, что все хранится в одном файле с расширением GLB.


Эта статья — 1 часть из 2х. В ней мы с вами рассмотрим такие артефакты формата и их атрибуты, как Scene, Node, Buffer, BufferView, Accessor и Mesh. А во второй статье мы рассмотрим оставшиеся: Material, Texture, Animations, Skin и Camera. Больше общей информации о формате можно найти здесь.
Если в процессе просмотра статьи захочется лично поработать с данным форматом, то можете скачать модели GLTF 2.0 с официального репозитория Khronos на GitHub


image


Проблематика и её решение


Изначально GLTF формат был задуман Khronos Group как решение для передачи 3D контента по интернету и был призван минимизировать количество импортеров и конвертеров, разные виды которых создаются при работе с графическими API.


image

На текущий момент GLTF и его бинарный брат GLB используются как унифицированные форматы и в CAD программах (Autodesk Maya, Blender и т. д.), в игровых движках (Unreal Engine, Unity и прочих), AR/VR приложениях, соц. сетях и т.д.

Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии5

Дизайн низкополигональных персонажей

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

Персонаж — это личность. Без истории нет индивидуальности. Каждый хороший персонаж начинается с истории, а дизайн персонажа должен рассказать эту историю.

В своей предыдущей статье How To Make Low Poly Look Good я говорил, что главная цель низкополигонального (low poly) дизайна — донести сообщение через наименьшее количество форм.

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

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



Я буду работать в Blender. В Maya, Max и других 3D-редакторах есть похожие инструменты, так что не беспокойтесь об этом.
Читать дальше →
Всего голосов 56: ↑56 и ↓0+56
Комментарии14

«Latency numbers» на iPhone

Время на прочтение10 мин
Количество просмотров11K
Latency Numbers Every Programmer Should Know — таблица «задержек, которые должен знать каждый программист». Там собраны средние значения времени для выполнения базовых операций компьютера в 2012-м году. Для этой таблицы есть несколько альтернативных представлений и вот одно из них.


Ссылка на источник схемы

Но какая польза мобильным разработчикам от этой информации в 2019? Кажется, что никакой, но Дмитрий Куркин (SClown) из команды Яндекс.Навигатора задумался: «А как бы таблица выглядела для современного iPhone?». Что из этого получилось, в переработанной текстовой версии доклада Дмитрия на AppsConf.


Для чего это нужно?


Почему же программисты должны знать эти числа? И актуальны ли они для мобильных разработчиков? Можно выделить две основные задачи, которые можно решать при помощи этих чисел.
Всего голосов 45: ↑43 и ↓2+41
Комментарии8

Про одного парня

Время на прочтение14 мин
Количество просмотров191K
История реальная, я все видел своими глазами.

Несколько лет один парень, как и многие из вас, работал программистом. На всякий случай напишу так: «программистом». Потому что он был 1Сником, на фиксе, производственной компании.

До этого он пробовал разные специальности – 4 года во франче программистом, руководителем проектов, умел закрывать по 200 часов, одновременно получая процент с проекта, за руководство и немного занимаясь продажами. Пробовал самостоятельно разрабатывать продукты, был начальником IT-отдела в большой компании, численностью 6 тысяч человек, примерял разные варианты применения своей кавычечной профессии – программиста 1С.

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

Этому парню стало интересно, как можно зарабатывать больше денег, не занимаясь продажами и не создавая свой собственный бизнес.
Читать дальше →
Всего голосов 272: ↑239 и ↓33+206
Комментарии247

Как генерировать осмысленные коммиты. Применяем стандарт Conventional Commits

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


Привычный хаос в названиях коммитов. Знакомая картина?

Наверняка вы знаете git-flow. Это отличный набор соглашений по упорядочиванию работы с ветками в Git. Он хорошо документирован и широко распространен. Обычно мы знакомы с правильным ветвлением и много говорим об этом, но, к сожалению, уделяем слишком мало внимания вопросу наименования коммитов, поэтому часто сообщения в Git пишутся бессистемно.

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

Читать дальше →
Всего голосов 72: ↑71 и ↓1+70
Комментарии84

Информация

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