Pull to refresh
15
0
Artem Televich @televich

User

Send message

Создание шейдеров

Reading time27 min
Views188K
Освоить создание графических шейдеров — это значит взять под свой контроль всю мощь видепроцессора с его тысячами параллельно работающих ядер. При таком способе программирования требуется другой образ мышления, но раскрытие его потенциала стоит потраченных усилий.

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


Сцена из Minecraft, до и после добавления нескольких шейдеров.

Задача этого туториала


Иногда программирование шейдеров представляется загадочной чёрной магией и его часто понимают неправильно. Существует множество примеров кода, демонстрирующих создание невероятных эффектов, но в которых практически нет объяснений. В своём руководстве я хочу восполнить этот пробел. Я сосредоточусь в основном на базовых принципах создания и понимания кода шейдеров, чтобы вы смогли с лёгкостью настраивать, сочетать или писать свои собственные шейдеры с нуля!
Total votes 105: ↑105 and ↓0+105
Comments27

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

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

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

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

Как создаются изометрические миры

Reading time25 min
Views58K
image

Все мы играли в потрясающие изометрические игры, будь то первые Diablo, Age of Empires или Commandos. При первой встрече с изометрической игрой можно задаться вопросом: двухмерная она, трёхмерная или нечто совершенно другое. Сам мир изометрических игр обладает волшебной притягательностью для разработчиков. Давайте попробуем раскрыть тайну изометрической проекции и создадим простой изометрический уровень.

Для этого я решил использовать Phaser с кодом на JS. В результате у нас получится интерактивное приложение HTML5.

Учтите, что это не туториал по разработке на Phaser, мы просто используем его для удобного ознакомления с базовыми концепциями создания изометрической сцены. Кроме того, в Phaser есть простые способы создания изометрического контента, например, Phaser Isometric Plugin.

Для упрощения при создании сцены мы будем использовать тайлы.
Total votes 49: ↑49 and ↓0+49
Comments7

Интеграция 1С с DLL с помощью Python

Reading time4 min
Views29K
Привет Хабр! Недавно я разработал алгоритм для логистики, и нужно было его куда-то пристроить. Помимо веб-сервиса решено было внедрить данный модуль в 1С, и тут появилось довольно много подводных камней.

Начнем с того, что сам алгоритм представлен в виде dll библиотеки, у которой одна точка входа, принимающая JSON строку как параметр, и отдающая 2 колбэка. Первый для отображения статуса выполнения, другой для получения результата. С web-сервисом все довольно просто, у питона есть замечательный пакет ctypes, достаточно подгрузить нужную библиотеку и указать точку входа.

Выглядит это примерно так:

import ctypes
def callback_recv(*args):
	print(args)

lib = ctypes.cdll.LoadLibrary('test.dll')
Callback = ctypes.CFUNCTYPE(None, ctypes.c_int, ctypes.c_char_p)
my_func = getattr(lib, '_ZN7GtTools4testEPKcPFviS1_E')
cb_func = Callback(callback_recv)
my_func(ctypes.c_char_p('some data'), cb_func)
 

Как можно заметить, точка входа не совсем читабельная. Чтобы найти данную строчку в скомпилировнанных данных, нужно открыть соответствующий файл с расширением .lib и применить утилиту objdump с параметром -D, в выводе легко можно найти нужный метод по названию.

Данное коверканье метода происходит из-за того, что компилятор манглит («mangle» — калечить) название всех точек входа, причем разные компиляторы «калечат» по разному. В примере указан метод полученный MinGW
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments15

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

Reading time36 min
Views214K

В наше время 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

Защищаем сайт с помощью ZIP-бомб

Reading time3 min
Views88K

Старые методы по-прежнему работают


[Обновление] Теперь я в каком-то списке спецслужб, потому что написал статью про некий вид «бомбы», так?

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

Когда я в возрасте 13 лет впервые захостил свою маленькую Linux-коробочку с доступом по SSH, я смотрел логи и каждый день видел IP-адреса (в основном, из Китая и России), которые пытались подключиться к моей сладенькой маленькой коробочке (которая на самом деле была старым ноутом ThinkPad T21 со сломанным дисплеем, жужжавшим под кроватью). Я сообщал эти IP их провайдерам.

На самом деле если у вас Linux-сервер с открытым SSH, то можете сами посмотреть, сколько попыток подключений происходит ежедневно:

grep 'authentication failures' /var/log/auth.log
Читать дальше →
Total votes 157: ↑155 and ↓2+153
Comments184

Уязвимость ВКонтакте: отправляем сообщение с кодом восстановления страницы на чужой номер

Reading time5 min
Views128K


Обычным весенним днем, занимаясь «подготовкой» к ЕГЭ по информатике, наткнулся на статью об уязвимости Facebook, позволявшей взломать все аккаунты в социальной сети, за которую выплатили 15000$. Суть уязвимости заключалась в переборе кодов восстановления на тестовом домене компании. Я подумал, а чем собственно ВКонтакте хуже? И решил попробовать провернуть подобный трюк у них. Зная, что веб-версия уже достаточно хорошо исследована, жертвой должен был стать Android клиент, а что из этого вышло можно прочитать под катом.
Total votes 221: ↑219 and ↓2+217
Comments144

Набор юного биохакера

Reading time24 min
Views28K
Обзор медицинских гаджетов для самостоятельного использования.


Авторы: Анастасия Егорова, Андрей Никифоров, Надежда Батина и Денис Варванец

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

Описали четыре десятка (не беря в расчёт многообразие фитнес-браслетов и часов), но вот те на! Получите-распишитесь ссылку на базу данных из 421 носимых устройств. И только пять из наших сорока есть в этой базе. Да что ж такое-то!

А ведь их будет всё больше. Кэп просил передать, что рынок растёт.
Total votes 28: ↑25 and ↓3+22
Comments49

Обзор 98 одноплатных компьютеров. Часть 1

Reading time14 min
Views137K
Часть 1
Часть 2
Часть 3
Часть 4

От переводчика: Предлагаю вашему вниманию перевод отчёта по одноплатным компьютерам, который был опубликован на сайте LinuxGizmos.com. В отчёт включены краткие описания 98 плат стоимостью до 200 долларов. В отчёте такие платы называют «хакерскими», чтобы подчеркнуть их пригодность для различного творчества.
Так как объем информации весьма велик, я разбил перевод на несколько частей.

Также хочу предупредить, что под катом очень много картинок!

Итак, часть 1.



КДПВ

В течение последнего года, LinuxGizmos сообщал о дюжинах новых одноплатных компьютерах с открытыми спецификациями, дружественных к разработчикам и «хакерам», на которых можно запустить Linux и Android. Мы добавили их в наш каталог вместе со старыми платами. Платы, попавшие в наш обзор, стоят меньше 200 долларов без учёта пересылки, доступны для доставки в июле этого года, и удовлетворяют нашим (весьма гибким) критериям открытости.
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments34

BBC Micro:bit — детский обучающий микрокомпьютер, первое знакомство

Reading time5 min
Views30K
Привет geektimes. О компьютерах BBC Micro я впервые прочитал здесь же, на geektimes. Еще в 80х британская компания BBC запустила обучающий проект, целью которого было повышение уровня компьютерной грамотности. Подробнее можно прочитать в статье компании Plarium "BBC Micro — компьютер, который обыграл ZX Spectrum", но мы вернемся к делам сегодняшним. Долго ли, коротко ли, BBC решила повторить проект уже на современной элементной базе, и выпустила микрокомпьютер BBC Micro:bit.



Как можно видеть, современная модель чуть поменьше своего предшественника.

Про Micro:bit уже писали на geektimes, как про то что плату уже можно купить, так и про то, что британским школьникам ее даже раздают бесплатно. Однако здесь на сайте похоже мало кто на ней программировал, пора восполнить этот пробел.

Как это работает, подробности под катом.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments90

+500 бесплатных инструментов для запуска вашего стартапа в 2017 году

Reading time40 min
Views155K


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

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

Итак, мы нашли в интернете бесплатные и условно-бесплатные инструменты для роста вашего бизнеса. Когда они дадут вам желаемый результат, вы можете оформить платную подписку.
Читать дальше →
Total votes 74: ↑60 and ↓14+46
Comments26

От программирования к железу или «Почему оно не работает?».Ликбез

Reading time9 min
Views146K
image
Привет Хабр. В последнее время среди программистов все больше стала набирать популярность цифровая электроника, появляются все новые платформы, позволяющие без каких либо особых знаний в электронике собирать различные устройства. Сам я начинал заниматься аналоговой электроникой, позже — цифровой и программированием. Многие же — наоборот — сначала программированием, а потом пытаются заниматься железом, при этом знания по части электроники практически нулевые и люди не знают/не понимают элементарных для олдфажного электронщика вещей. В данной статье я постараюсь затронуть наиболее важные на мой взгляд моменты, как по части проектирования схем, так и по части разводки плат. Надеюсь мои советы помогут миновать некоторые грабли
Читать дальше →
Total votes 140: ↑138 and ↓2+136
Comments36

Особенности национальных конструкторов (в картинках). Часть 1

Reading time6 min
Views37K


В детстве мы особо не задумывались, где появились детальки к любимому конструктору — если только это не было предметом особой гордости. Но вот мы выросли. Мы все еще любим конструкторы и ради интереса выяснили, как они повлияли на становление технаря в отдельно взятом ИТ-проекте.

А что если взять мировой масштаб? Давайте посмотрим на знаменитые и не очень конструкторы из разных стран и попробуем понять, как они могли повлиять на местную интернет-отрасль. Так как нам ближе тема конструкторов сайтов — в блоке о интернет-проектах поговорим о них.
Читать дальше →
Total votes 46: ↑33 and ↓13+20
Comments54

Лазер, который режет внутри роговицы: процедура ReLEх на физическом уровне

Reading time6 min
Views77K

Кадр из телеметрии ReLEx — внутри глаза за примерно 4 миллиона лазерных импульсов вырезана линза-лентикула, она удаляется через 2,5-миллиметровый разрез у края, касающийся поверхности. Сегодня поговорим о лазере, который это делает.

Идея — взять и вырезать в прозрачной роговице глаза линзу — не нова. Сначала это делалось вручную, скальпелем прямо по поверхности (сложно и очень грубо, с морем побочных эффектов). Первый лазер использовали в 1979 году, тогда это был импульсный инфракрасный излучатель с эффективной длиной импульса в 4 наносекунды.

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


Шаг 1: создание пузырька плазмы, фактически — микровзрыв. Шаг 2: расширение ударной и тепловой волны. Шаг 3: кавитационный пузырь (расширение плазмы). Шаг 4: формирование параллельного среза за счёт нескольких рядом расположенных точек фокусировки лазера

Сегодня один «микровзрыв» длится не 4 наносекунды, а в 10.000 раз быстрее.
Читать дальше →
Total votes 104: ↑103 and ↓1+102
Comments222

Телеметрия с лазера для коррекции зрения: полная операция с комментариями (не для слабонервных)

Reading time5 min
Views91K
Сейчас я буду показывать то, что обычно врачи никогда не показывают пациентам. Точнее, показывается это всё в виде красивого рендера, из которого никак не следует, что прямо в вашей роговице будет пару минут торчать железка. К счастью, вы этого не почувствуете из-за обезболивающей премедикации, не узнаете и не запомните, потому что железка будет не в фокусе.


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

Поехали. Итак, смотрите видео, а я покажу стопкадры с комментариями. Это реальная операция на пациенте в немецкой клинике, запись сделана на устройство вроде «чёрного ящика» аппарата VisuMAX. В данном случае пациент дал согласие на использование записи для учебных целей, обычно доступ к таким записям строжайше ограничен.
Total votes 105: ↑101 and ↓4+97
Comments171

История операций по коррекции зрения: сравнение рисков и побочных эффектов

Reading time12 min
Views152K

Механическое устройство, выстреливающее или медленно двигающее лезвием для срезания верхней части роговицы глаза

Начнём с истории, чтобы было понятно, как эволюционировали методы, а потом перейдём к рискам и побочным эффектам современных операций.

Итак, доктор Снеллен, который изобрёл таблицу проверки зрения, выдвинул теорию о том, что можно «поцарапать» глаз так, что кривизна роговицы изменится. Случилось это в 1869 году (в этом же году появилась таблица Менделеева и докопали Суэцкий канал), поэтому «царапать» тогда могли только металлическим скальпелем. Офтальмологии как отдельной науки официально не было, и занимались ей обычные хирурги — те же самые, которые бодро отпиливали руки и ноги при возникновении инфекции.

К глазам они приступать поначалу не решались: пациент вроде жив, шевелится и не кричит, значит, трогать его пока нет достаточных оснований. Поэтому первая операция по коррекции зрения была проведена доктором Лансом в Голландии только через 30 лет, в 1898 году.

Следующим отличившимся персонажем стал выдающийся советский хирург академик Святослав Николаевич Фёдоров, который предложил очень своеобразный метод: точечно нагревать роговицу глаза до тех пор, пока она не деформируется. Но вместе с японским офтальмологом Сато они быстро перешли к надрезам. Сато резал изнутри и тем самым создавал много осложнений, а Фёдоров делал насечки алмазным ножом снаружи. Эти самые надрезы фактически и положили начало современным лазерным операциям.
Читать дальше →
Total votes 100: ↑98 and ↓2+96
Comments297

Робот Xiaomi MITU: не убийца, а сам по себе

Reading time7 min
Views61K
Вспомните себя ребёнком: Новый год, ёлка, горы вкусной еды, отдых дома и на катке, интересные подарки, каникулы рядом с родителями и друзьями. Раз, два — и вот уже ёлка осыпается и больно колется в тапочках, а за окном настаёт длинная и беспросветная третья четверть. Неохота выходить на мороз, зубрить, писать контрольные и слушать бесконечные тирады про самую главную четверть в году. Собственно, то же самое сейчас испытывают наши дети и младшие братья и сёстры. Перед родителями стоит важная задача: не довести ребёнка до нервного срыва и сохранить интерес и стимул к учёбе более гуманными способами, чем ремень.


Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments83

Выбор между визуальным и текстовым программированием для детей

Reading time12 min
Views30K

Недавно попалась интереснейшая английская статья, написанная Трейси Гарднер из TechAgeKids. В ней она делится интересными мыслями по поводу программирования детьми в текстовых и визуальных языках. Она приводит интересные наблюдения, которые совпадают с моим опытом развития детей в программировании. Представляю вам перевод данной статьи.


Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments85

Интересные Sсi-Fi фильмы, которые вы (не должны были, но) могли пропустить в 2016 году

Reading time4 min
Views68K
Для читателей Geektimes (а еще для своего мужа) я составила список интересных Sсi-Fi фильмов ушедшего 2016 года. Фильмы, указанные ниже, доступны в сети и имели относительно небольшой или неуспешный релиз, поэтому я предполагаю, вы пропустили, по крайней мере, некоторые из них.
Total votes 77: ↑47 and ↓30+17
Comments188

5 действительно бесплатных нелинейных видеоредакторов для Windows

Reading time6 min
Views433K
Этот пост призван помочь тем, кому, как и мне, внезапно стало тесно с Movie Maker.

Видеоредакторы почти не интересовали меня до прошлого месяца, пока с друзьями мы не задумали снять что-нибудь оригинальное к Новому году. Креативность наша ограничилась тем, чтобы, говоря терминами прежде мне неизвестными, применить эффект “Разделение экрана” (Split Screen). То есть реализовать нечто такое:


Читать дальше →
Total votes 64: ↑63 and ↓1+62
Comments92

Information

Rating
Does not participate
Location
Калининград (Кенигсберг), Калининградская обл., Россия
Date of birth
Registered
Activity