Pull to refresh
3
0
Сергей @jauseg

User

Send message

Перестаньте травить печатные платы дома — заказывайте их на производстве

Reading time3 min
Views99K
В последней своей статье про Домофон с MQTT я проводил опрос на тему того, какую статью написать следующей. Выбор пал на заказ производства печатных плат, вот собственно немного расскажу об этом. Если статья зайдет, напишу по следующей теме из голосовалки.

Я ни в коем разе не принуждаю сразу выливать ваше хлорное железо / перекись водорода, оставьте их для макетирования. Я лишь хочу показать, что заказать платы на производстве в наше время совсем не сложно, как может показаться начинающему радиолюбителю. Есть в этом что-то магическое — подержать в руках красивую плату собственного изготовления.
Читать дальше →
Total votes 69: ↑65 and ↓4+61
Comments381

Как работает видеопроцессор

Reading time29 min
Views71K
image

[Прим. пер.: оригинал статьи называется GPU Performance for Game Artists, но, как мне кажется, она будет полезной для всех, кто хочет иметь общее представление о работе видеопроцессора]

За скорость игры несут ответственность все члены команды, вне зависимости от должности. У нас, 3D-программистов, есть широкие возможности для управления производительностью видеопроцессора: мы можем оптимизировать шейдеры, жертвовать качеством картинки ради скорости, использовать более хитрые техники рендеринга… Однако есть аспект, который мы не можем полностью контролировать, и это графические ресурсы игры.

Мы надеемся, что художники создадут ресурсы, которые не только хорошо выглядят, но и будут эффективны при рендеринге. Если художники немного больше узнают о том, что происходит внутри видеопроцессора, это может оказать большое влияние на частоту кадров игры. Если вы художник и хотите понять, почему для производительности важны такие аспекты, как вызовы отрисовки (draw calls), уровни детализации (LOD) и MIP-текстуры, то прочитайте эту статью. Чтобы учитывать то влияние, которое имеют ваши графические ресурсы на производительность игры, вы должны знать, как полигональные сетки попадают из 3D-редактора на игровой экран. Это значит, что вам нужно понять работу видеопроцессора, микросхемы, управляющей графической картой и несущей ответственность за трёхмерный рендеринг в реальном времени. Вооружённые этим знанием, мы рассмотрим наиболее частые проблемы с производительностью, разберём, почему они являются проблемой, и объясним, как с ними справиться.
Читать дальше →
Total votes 54: ↑53 and ↓1+52
Comments12

Седина в голову, интернет в ребро

Reading time7 min
Views17K
Есть такая шутка: «Объявление: 65-летняя женщина, мать троих программистов, просит кого-нибудь не психованного научить ее интернету.» Дети пожилых родителей точно знают, что это не доля правды, а самая что ни на есть правда — обучать владению ПК своих стариков невыносимо: нужно не просто прививать нужные движения, учить запоминать логику организации приложений, но и делать это безо всяких привычных «клик, свайп, зум, логин, браузер, скринь, скролль, вкладка, новое окно, форма». А потом они приходят с сенсорным планшетом (потому что ты счёл сенсорный интерфейс лучшим для обучения) и говорят, что им угрожал зелёный робот. Да прав он, этот робот, кто бы на его месте не угрожал, когда им так варварски пользуются! Окей, гугл. Расскажи про компьютерную грамотность населения, может, полегчает.


Ctrl+Z в своей атмосфере
Читать дальше →
Total votes 31: ↑29 and ↓2+27
Comments44

learnopengl. Уроки 3.1 (Assimp) + 3.2 (класс Mesh)

Reading time10 min
Views36K
OGL3

Assimp


Во всех уроках, мы, в основном, использовали нашего маленького друга — контейнер, но через некоторое время, даже наши лучшие друзья становятся немного скучными. В большом графическом приложении, обычно присутствуют много моделей, на которые намного приятнее смотреть, чем на наш статичный контейнер. Хотя, в отличие от контейнера, нам будет очень сложно, вручную, определить все вершины, нормали и текстурные координаты таких сложных моделей, как например дом или человекоподобные персонажи. Вместо этого, мы будем имортировать модели в наше приложение; модели, которые были тщательно нарисованы, в 3D редакторах, таких как Blender, 3DS MAX или Maya.


Эти, так называемые инструменты 3D моделирования, позволяют художникам создавать сложные модели и применять текстуры к ним с помощью процесса, который называется текстурная развертка (uv-mapping). Инструменты автоматически генерируют все вершинные координаты, вершины нормалей и текстурные координаты, экспортируя их в файл модели. Таким образом, художники имеют обширный набор инструментов для создания высококачественных моделей, не заботясь о технических деталях. Все технические аспекты спрятаны в экспортируемом файле. Мы, как программисты графики, должны позаботится об этих технических деталях.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments1

Синдром сухого глаза как частный случай дистрофических процессов (ВМД) и его друг — компьютер

Reading time4 min
Views51K
Количество диагнозов синдрома сухого глаза по миру растёт вместе с развитием технологий. Основные факторы: ухудшение атмосферного воздуха, в частности, близ промзон, кондиционированный воздух, побочные эффекты многих лекарственных средств, излучение светодиодов (особенно сверхъярких по синей части спектра, в т. ч. AMOLED-экранов и подобных).

Признаки заболевания: зуд, покраснение, усталость, сухость в области глаз и век. Причина— нарушение слёзопродукции.

Если выявить синдром на ранней стадии, когда обычная поликлиника ещё не ставит его как диагноз, можно избежать целого моря проблем. Давайте начнём с короткой таблицы, позволяющей понять, касается это вас или стоит пройти мимо.
Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments37

Как работает поле Хиггса: основная идея

Reading time5 min
Views26K
Разбираемся в физике частиц:
1. Шар на пружине, ньютоновская версия
2. Квантовый шар на пружине
3. Волны, классический вид
4. Волны, классическое уравнение движения
5. Квантовые волны
6. Поля
7. Частицы – это кванты
8. Как частицы взаимодействуют с полями

Как работает поле Хиггса:
  1. Основная идея
  2. Почему поле Хиггса в среднем ненулевое
  3. Как появляется частица Хиггса
  4. Почему поле Хиггса необходимо


Если вы читали мою серию статей про физику частиц и полей, вы знаете, что все т.н. «элементарные частицы» на самом деле – кванты (волны, чья амплитуда и энергия минимально допустимые квантовой механикой) релятивистских квантовых полей. Такие поля обычно удовлетворяют уравнениям движения класса 1 (или их обобщению) вида

$ d^2Z/dt^2 - c^2 d^2Z/dx^2 = - (2 \pi \nu_{min})^2 (Z - Z_0) $


Где Z(x,t) – поле, Z0 — равновесное состояние, x – пространство, t – время, d2Z/dt2 представляет изменение по времени изменения по времени Z (d2Z/dx2 — то же для пространства), c – универсальное ограничение скорости (часто называемое «скоростью света»), а νmin — минимально допустимая частота для волны в поле. Некоторые поля удовлетворяют уравнению класса 0, которое представляет собой просто уравнение класса 1, в котором величина νmin нулевая. У кванта такого поля масса

$ m = h \nu_{min} / c^2 $


Где h – постоянная Планка. Иначе говоря,

$ d^2Z/dt^2 - c^2 d^2Z/dx^2 = - (2 \pi c^2/h)^2 m^2 (Z - Z_0) $


Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments11

Коды Рида-Соломона. Часть 1 — теория простым языком

Reading time8 min
Views52K
Добрый день! Меня зовут Максим, в YADRO, кроме всего прочего, я занимаюсь разработкой подсистемы, отвечающей за надежное хранение данных. Готовлю небольшой цикл статей про коды Рида-Соломона — теоретическую основу, практическую реализацию, применяемые на практике программные и аппаратные оптимизации. На Хабре и в остальной сети есть хорошие статьи по вопросам этой области — но по ним сложно разобраться, если ты новичок в теме. В этой статье я попытаюсь дать понятное введение в коды Рида-Соломона, а в следующих выпусках напишу, как все это запрограммировать.



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

Load Average в Linux: разгадка тайны

Reading time18 min
Views217K


Средние значения нагрузки (Load averages) — это критически важная для индустрии метрика. Многие компании тратят миллионы долларов, автоматически масштабируя облачные инстансы на основании этой и ряда других метрик. Но на Linux она окутана некой тайной. Отслеживание средней нагрузки на Linux — это задача, работающая в непрерываемом состоянии сна (uninterruptible sleep state). Почему? Я никогда не встречал объяснений. В этой статье я хочу разгадать эту тайну, и создать референс по средним значениям нагрузки для всех, кто пытается их интерпретировать.

Читать дальше →
Total votes 127: ↑125 and ↓2+123
Comments25

Охота на рыжего демона или пеленгатор помех спутниковой навигации

Reading time4 min
Views38K


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

К чему это привело читайте дальше.
Читать дальше →
Total votes 53: ↑52 and ↓1+51
Comments34

Блокировка мессенджеров и анонимайзеров одобрена Госдумой, осенью наступит очередь соцсетей

Reading time3 min
Views41K

Источник: gazeta.ru

19 июля депутаты Госдумы сразу в двух чтениях приняли поправки в закон «Об информации…», — пишут «Ведомости». Речь идет о поправках, которые регулируют работу мессенджеров и анонимайзеров в России. Первоначальная версия поправок была разработана в 2015 году с участием Медиа-коммуникационного союза. Этот вариант с течением времени изменили, например, убрали пункты, которые регламентируют работу онлайн-кинотеатров. Конечная версия поправок устанавливает требование к мессенджерам, нарушение этих требований грозит соответствующим сервисам штрафом и блокировкой.

Одно из требований — идентификация пользователей по номеру телефона. Ряд программ и так использует такой метод регистрации и подтверждения личности. Но в большинстве мессенджеров указание номера телефона все же вовсе не является обязательным. Депутаты, которые разрабатывали поправки, объяснили введение такого рода требований необходимостью борьбы с распространением наркотиков, экстремистского контента и информации, которая угрожает жизни детей.
Читать дальше →
Total votes 41: ↑36 and ↓5+31
Comments178

Снимаем «4D видео» с помощью depth-сенсора и триангуляции Делоне

Reading time15 min
Views19K


Привет Хабр! Это заметка о небольшом хобби-проекте, которым я занимался в свободное время. Я расскажу, как с помощью несложных алгоритмов превращать карты глубины от depth-сенсоров в забавный вид контента — динамические 3D сцены (их ещё называют 4D video, volumetric capture или free-viewpoint video). Моя любимая часть в этой работе — алгоритм триангуляции Делоне, который позволяет превращать разреженные облака точек в плотную полигональную сетку. Приглашаю всех, кому интересно почитать про алгоритмы, самописные велосипеды на C++11, и, конечно же, посмотреть на трёхмерных котиков.

Для затравки: вот что получается при использовании RealSense R200: skfb.ly/6snzt (подождите несколько секунд для загрузки текстур, а затем используйте мышку, чтобы поворачивать сцену). Под катом есть ещё!
Обладатели лимитированных тарифов, будьте осторожны. В статье много разных изображений и иллюстраций.
Total votes 89: ↑88 and ↓1+87
Comments34

Использование BSP-деревьев для создания игровых карт

Reading time9 min
Views26K
image

При заполнении области объектами (например, комнатами в подземелье) в случайном порядке вы рискуете тем, что всё будет слишком случайным. Результат может оказаться абсолютно бесполезным хаосом. В этом туториале я покажу, как использовать для решения этой проблемы двоичное разбиение пространства (Binary Space Partitioning, BSP).

Я подробно и по этапам расскажу об использовании BSP для создания простой двухмерной карты, к примеру, схемы подземелья. Я покажу, как создать простой объект Leaf, который мы используем для разделения области на маленькие сегменты. Затем мы займёмся генерированием в каждом Leaf случайной комнаты. И, наконец, узнаем, как соединить все комнаты коридорами.

Примечание: хоть код примеров и написан на AS3, концепцию можно использовать практически в любом другом языке.
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments5

Полное руководство по переходу с HTTP на HTTPS

Reading time36 min
Views216K

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


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

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

Сюда включены детальные инструкции для владельцев виртуального хостинга на cPanel, администраторов серверов Apache HTTP и nginx под Linux и Unix, а также Internet Information Server под Windows.
Читать дальше →
Total votes 67: ↑64 and ↓3+61
Comments53

Кератопластика – последний вариант «починить» глаза, если всё плохо (и кое-что про современные методы)

Reading time8 min
Views55K

Нейлон 10/0 (чтобы шить роговицу)

Для операции «последнего шанса» или пересадки роговицы нужны донорские ткани. Конкретно нас интересует ткань толщиной 500–600 микрон для сквозной кератопластики. Дальше с этой плёнкой нужно работать руками, шить тонкой нейлоновой нитью. Потом, когда роговица срастётся, снимать шов. Никаких биоразлагаемых материалов — их продукты распада начнут лизироваться и могут вызывать воспаление, что исключит положительный результат операции. Более того, трансплантат рекомендуется прошить по периметру дважды — это повышает шансы его правильной и равномерной фиксации. Второй слой нейлона чаще всего вообще не снимается, потому что пока он не мешает — не трогаем.

Но давайте начнём с самого начала. Конкретно — с ситуаций, когда человеку может потребоваться эта непростая для России, но совершенно привычная в Германии операция. Она бывает трёх видов:

  • Сквозная, то есть удаление всей роговицы пациента, например, диаметром от 7 до 8,5 мм и пришивание новой.
  • DALK, то есть пересадка роговичной ткани за исключением десцеметовой мембраны и эндотелия.
  • DMEK, то есть «установка» только слоя десцеметовой мембраны и эндотелиальных клеток вместо такого же слоя у пациента.

Кератопластика в Германии — операция очень распространенная. В нашей клинике в Марбурге я и мой заведующий отделением за прошлый год сделали 210 пересадок, за год до этого — 236 пересадок. С марта этого года в московской клинике SMILE EYES мы начали пересаживать роговичную ткань — и послойные, и сквозные пересадки.
Total votes 46: ↑45 and ↓1+44
Comments16

Возможности CodeRush for Roslyn для XAML

Reading time3 min
Views3.7K

Редактировать XAML-разметку в Visual Studio достаточно удобно благодаря таким фичам как IntelliSense, автозакрытие тэгов, сворачивание тэгов. Но при реальной работе с этими фичами приходит понимание, что XAML в чистой студии достаточно обособлен: например, плохо отслеживаются связи между кодом и разметкой. Это не позволяет чистой студии делать многие полезные вещи, которые умеет делать студия c CodeRush for Roslyn. Под катом подробности...



Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments11

Исходный код Quake III

Reading time13 min
Views42K
image

[Примечание переводчика: перевод первой части этой статьи уже есть на Хабре, но её автор почему-то не завершил работу.]

Рендерер Quake III


Рендерер Quake III стал эволюционным развитием рендерера Quake II с аппаратным ускорением: классическая часть построена на архитектуре «двоичного разбиения»/«потенциально видимых наборов», но добавлены два новых заметных ключевых аспекта:

  • Система шейдеров, построенная поверх фиксированного конвейера OpenGL 1.X. Это было большим достижением для 1999 года. Она обеспечивала большое пространство для инноваций в эру до повсеместно распространённых сегодня вершинных, геометрических и фрагментных шейдеров.
  • Поддержка многоядерной архитектуры: клиент-серверная модель OpenGL блокирует некоторые методы и система потоков частично решает эту проблему.
Читать дальше →
Total votes 99: ↑97 and ↓2+95
Comments13

Фантастика и фентези за два с половиной года, почти сто хороших книг

Reading time22 min
Views244K
На этот пост меня подтолкнула публикация «Почему я ворую книги, бедные авторы, и как это исправить», а именно — скепсис и возражения на мой комментарий о том, что я не читаю плохие книги. Мне предложили рассказать, как я выбираю книги для чтения и что именно читаю. Ну я и повелся.
Оформить список было сравнительно просто, FBReader любезно хранил на GoogleDrive все скачанные книги с того момента, как там появилась эта услуга. Предлагаю вашему вниманию список прочитанного мной за 2,5 года из жанров фентези и фантастики.
Читать дальше →
Total votes 70: ↑66 and ↓4+62
Comments553

Пишем простой драйвер под Windows для блокировки USB-устройств

Reading time11 min
Views26K
Вряд ли пользователь домашнего ПК заинтересуется тем, чтобы блокировать устройства на своем ПК. Но если дело касается корпоративной среды, то все становится иначе. Есть пользователи, которым можно доверять абсолютно во всем, есть такие, которым можно что-то делегировать, и есть те, кому доверять совсем нельзя. Например, вы заблокировали доступ к Интернету одному из пользователей, но не заблокировали устройства этого ПК. В таком случае пользователю достаточно просто принести USB-модем, и Интернет у него будет. Т.е. простым блокированием доступа к Интернету дело не ограничивается.

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

В этой статье я расскажу немного теоретическую часть, на основе которой все строится, и расскажу принцип самого решения.
Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments88

Багфикс человека: как фиксить баги, которые мешают работать

Reading time7 min
Views22K

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


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


image
Читать дальше →
Total votes 46: ↑43 and ↓3+40
Comments48

Объектное Реактивное Программирование

Reading time16 min
Views21K

Объектное Реактивное Программирование


Дмитрий Карловский из SAPRUN представляет… ммм...


Это — текстовая версия одноимённого выступления на FrontendConf'17. Вы можете читать её как статью, либо открыть в интерфейсе проведения презентаций, либо посмотреть видео.

Надоело.. Чем поможет ОРП?
… писать много, а делать мало? Пиши мало, делай много!
… часами дебажить простую логику? Реактивные правила обеспечат консистентность!
… асинхронщина? Синхронный код тоже может быть неблокирующим!
… что всё по умолчанию тупит? ОРП оптимизирует потоки данных автоматом!
… функциональные головоломки? Объекты со свойствами — проще некуда!
… что приложение падает целиком? Позволь упасть его части — само поднимется!
… жонглировать индикаторами ожидания? Индикаторы ожидания пусть сами появляются, где надо!
… двустороннее связывание? Двустороннее связывание нужно правильно готовить!
… пилить переиспользуемые компоненты? Пусть компоненты будут переиспользуемыми по умолчанию!
… вечно догонять? Вырывайся вперёд и лидируй!
Читать дальше →
Total votes 22: ↑15 and ↓7+8
Comments170

Information

Rating
Does not participate
Location
Тула, Тульская обл., Россия
Date of birth
Registered
Activity

Specialization

Software Developer, Mobile Application Developer