Search
Write a publication
Pull to refresh
4
0
Send message

Как я делал 2D тени в Unity

Reading time9 min
Views13K
Что первое приходит в голову разработчику инди-игры, когда он сталкивается с необходимостью добавления фичи, представления о реализации которой толком не имеет? Разумеется, он идёт искать следы тех, кто уже прошёл этот путь и удосужился записать свой опыт. Так поступил и я некоторое время назад, приступая к созданию теней в своей игре. Найти нужную информацию — в виде статей, уроков и гайдов — не составило особого труда. Однако, к моему удивлению, я обнаружил, что ни одно описанное решение мне попросту не подходит. Поэтому, реализовав своё собственное, я решил поведать о нём миру.

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

Сам результат перед вами:



А подробности пути к его достижению ждут вас под катом.
Читать дальше →

Теперь персональные данные должны удалять отовсюду по первому требованию, но есть побочка

Reading time12 min
Views65K

Речь идет о поправках к закону о персональных данных, что вступили в силу в марте. Теперь любые персональные данные обязаны убрать откуда угодно по первому требованию их владельца. Причем владельцу не надо ничего никому доказывать и объяснять.

Ситуация одновременно и правильная, и проблемная. Причем проблемы появятся (по факту уже появились) у всех владельцев сайтов, интернет-площадок и СМИ, кто так или иначе взаимодействует с пользователями. 

Что касается нововведений, я попытался разложить все по полочкам. А еще собрал в отдельный список то, что придется поменять и добавить владельцам сайтов.

Читать далее

Как спарсить любой сайт?

Reading time6 min
Views227K

Меня зовут Даниил Охлопков, и я расскажу про свой подход к написанию скриптов, извлекающих данные из интернета: с чего начать, куда смотреть и что использовать.

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

Узнать как

Как симулировать плохую сеть под Linux, macOS и Windows

Reading time3 min
Views26K

Clumsy 0.2

Все распределённые системы — базы данных, мобильные приложения, корпративные SaaS и так далее — следует разрабатывать с учётом сбоев. Например, компания Stripe во время тестов убивала случайные инстансы — и смотрела, что произойдёт. Компания Netflix рандомно уничтожала инстансы прямо в продакшне с помощью программы Chaos Monkey (проект Simian Army).

Симуляция сбоев — необходимое средство тестирования. Проблема в том, что ситуации не делятся только на чёрное и белое, Есть огромная «серая» зона, где сбои явно не выражены, а проявляются в плохих условиях сети: ненадёжное соединение, узкий канал, потери пакетов, высокая задержка, дубликаты пакетов и так далее.
Читать дальше →

Как выбрать HDMI-кабель? — Разбор

Reading time5 min
Views152K
Вы когда-нибудь задавались вопросом что за странная ситуация с ценой на HDMI-кабели? На Яндекс.Маркете за трехметровый HDMI-кабель цена стартует с 131 рубля, а заканчивается проводом почти за полмиллиона! Понятно, что кабель за пол ляма — это какая-то единичная дичь.





Но есть масса вариантов за 10, 20, 30 тыс. И судя по описанию этих кабелей, каждый из них создан по космическим технологиям и обещается потрясающее качество изображения.

Так всё же. Влияет ли цена кабеля на качество изображения? Какие бывают стандарты HDMI кабелей? И какой HDMI-провод выбрать для 4K телевизора и консолей нового поколения?

Сегодня вместе с вами разбираемся в HDMI кабелях.

Давайте сразу расставим точки над i. HDMI — это цифровой интерфейс High Definition Multimedia Interface.

Способ атаковать любой чат в Telegram-мессенджере, или как на меня напали хакеры

Reading time4 min
Views120K

Помните, недавно вышла серия постов про прививки от коронавируса?

Я член команды админов из той системы чатов v1v2 по вакцинации и лично моя зона ответственности – «ЭпиВакКорона», вакцина ГНЦ «Вектор» Роспотребнадзора.

Если коротко, то в процессе независимой проверки вакцин мы выяснили, что Спутник-V отлично работает и побочки приемлемые, а их разработчик центр им. Гамалея говорит правду в СМИ про свою вакцину и её характеристики. Ковивак (им. Чумакова) работает существенно хуже – формирует антитела далеко не у всех и на низком уровне.  А вот «ЭпиВакКорона» вовсе не получилась никак – нулевая эффективность, её даже низкой нельзя назвать. Подробнее у нас на сайте. «ЭпиВакКорона» не даёт никакой защиты от коронавируса. Какие-то антитела  от неё в 70% появляются в организме человека, но они не способны связываться с коронавирусом.

В нашем чате около 8500 человек, интересующихся нашими исследованиями и данным препаратам. И вот вчера на нас напала неизвестная группа лиц весьма своеобразным способом. Проведя небольшое исследование и ряд экспериментов удалось вычислить схему действия. В нашем чате под видом обычного пользователя сидит бот, подключённый к чату через их API. Он следит за сообщениями и как кто-то пишет новое, смотрит id пользователя. Это внутренний номер в Telegram, который не равен вашему нику или номеру телефона. Id не меняется, если вы меняете ник или номер телефона.

Далее по данному id пробивается по базам данных, собранных по публичным источникам. Доступ к ним есть через ботов в Telegram, например @Quick_OSINT или «Глаз бога».

Что же там произошло?

О выгорании в СССР из книжки 1973 года

Reading time8 min
Views77K

Досталась мне от бати книжка издания 1973 года, отпечатанная на ротапринте. Наткнулся в ней на вещи, которые бы мы сейчас назвали проблемой "выгорания". Термина в то время еще не было, но проблема была. Я выписал кое-какие вещи чисто для себя, но потом решил все же опубликовать, может кому пригодится...

Читать далее

Советский водяной компьютер

Reading time8 min
Views33K

Во времена, когда трава была зеленее, вода чище, а компьютер казался диковинкой, широкое распространение имели аналоговые вычислительные машины, или просто аналоговые компьютеры. В СССР такие аппараты были в ходу практически до конца 80-х годов, когда спорить с производительностью ЭВМ стало попросту невозможно. Данные в аналоговых компьютерах представлялись не как набор нулей и единиц, а при помощи различных физических параметров: длины, скорости, силы тока, тут уж, как говорится, на что фантазии хватит. Например, некоторые машины работали буквально на воде. В этой статье как раз и пойдет речь о таких образцах аналоговых компьютеров.

Читать далее

Как создать бота ВКонтакте: гайд для старта на платформе

Reading time5 min
Views64K

Автоматизируем рутинные процессы с помощью платформы ботов VK — подборка материалов для разработчиков

Привет! Меня зовут Семён, я деврел платформы ботов ВКонтакте. Расскажу о том, как с ней работать, какие есть возможности и перспективы для разработчиков. В этой статье вы найдёте краткий пошаговый мануал: от поиска идеи для вашего чат-бота до проектирования его бизнес-возможностей. К каждому этапу будут ссылки на полезные материалы и источники, где можно узнать больше и погрузиться в технологию. 

Статья будет дополняться по мере развития платформы — свежими ссылками на документацию, обзорами и интересными кейсами.

Читать далее

Делаем сервер из Android-телефона

Reading time8 min
Views135K

Некоторое время назад мне пришла в голову интересная идея — превратить свои старые телефоны (их скопилось немало за десять лет) в серверы, в качестве альтернативы покупке Raspberry Pi.


image


На то было несколько причин: во-первых, у телефонов есть батарея, что для сервера практически бесплатный мини-UPS, во-вторых, внутренняя память смартфона (UFS) работает быстрее и надёжнее, чем SD-карта. В-третьих, у телефонов имеется экран, по которому можно отслеживать состояние сервера.


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


TL;DR: в этом посте будут разобраны вопросы установки PostmarketOS на смартфон,
поднятия на нём в качестве примера Docker и веб-приложения в нём.

За длинной версией под кат

Бессчётное количество персонажей для игры? О том, как я сделал это через процедурную генерацию

Reading time7 min
Views7.6K
Игра, которую мы разрабатываем, подразумевает огромное количество персонажей. Главный герой будет постоянно сталкиваться с ними и чтобы игроку не наскучили одинаковые лица, мы придумали как их генерировать из частей.

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



А прежде чем я расскажу всё, попробуйте этот генератор в действии. Мы выложили его web версию тут: galaxypassstation.com/character-creator (для ПК и Планшетов)
Читать дальше →

[Личный опыт] Зачем IT-инженеры едут в Мексику, а потом работают на США

Reading time5 min
Views23K

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


Чтобы разобраться, где правда, побеседовали с Дарьей. Она с супругом живет в Мексике 3,5 года, родила здесь ребенка. Но работала не на Мексику, а на США, и супруг ее тоже трудится в американской компании. Она расскажет, почему в мексиканском IT специалисту делать нечего, а вот жить здесь очень даже интересно и комфортно.




Читать дальше →

Недооцененная площадка для продвижения ИТ-проектов на английском: гайд по AngelList

Reading time6 min
Views6.1K

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

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

Читать далее

Как 20-летний паренёк фигачит по 12 часов каждый день уже больше года

Reading time10 min
Views70K
YouTube мне предложил посмотреть видос какого-то азиатского паренька и я согласился, потому что в названии фигурировало «как я фигачил по 12 часов в день в течение года».

Паренек рассказывал про книжки, которые он прочитал, про свои мечты, всплакнул даже. А потом я зашел на его канал и увидел это:

image

И так каждый день с марта 2020 года.

У паренька ЭЛТ-монитор, прикольный рыжий кот, парень стримит каждый день, как он учится на ИТишника (и своим усердием мотивирует других) по 10 часовых помодорок с 10-минутными перерывами между ними.

Я решил немного разобраться, что же это за паренек и что им движет.

Трубки, шланги, кабели и провода — не наскучат программисту никогда

Reading time8 min
Views4.1K
Шланг для полива и его модель

К написанию этой публикации меня побудила следующая статья на Хабре: «Математика провисающих проводов и цепей в играх», хоть я и совершенно не занимаюсь играми.

Статья заинтересовала меня потому, что давала повод для применения моего собственного приложения для визуализации графических объектов. Первоначальное предназначение этого приложения — исследование динамических систем, которые можно представить в виде системы дифференциальных уравнений. Одним из компонентов этого приложения является вьюер (просмотрщик) трехмерных проволочных моделей. Вьюер нужен для просмотра и анализа трехмерных траекторий динамической системы, но его можно использовать и для просмотра вообще любых проволочных моделей. Недавно я добавил в свое приложение возможность генерации проволочных моделей для заданных параметрически поверхностей. Статья о цепных линиях натолкнула меня на мысль: можно ли для данной трехмерной кривой сгенерировать (и исследовать с помощью вьюера) поверхность в виде трубки, окружающей данную кривую? Такая поверхность может представлять собою модель кабеля, шланга или реального провода ненулевой толщины. Сначала это показалось мне несложной задачей, но выяснилось, что даже для такой относительно простой кривой, как цепная линия, создать трубку не так-то просто.
Читать дальше →

Тинькофф, Я вас люблю и ненавижу…

Reading time15 min
Views59K

В 21 веке, кто-то боится экосистем, кто-то их ненавидит, кто-то боготворит. Каждому предстоит самому делать выбор готов ли он жертвовать безопасностью ради удобства, складывая все яйца в одну корзину. Я пользуюсь Тинькофф уже несколько лет. Начал со счёта для ИП, как андроид разработчик, попробовал многие сервисы для физических лиц... И хотел бы рассказать о том, как банк сам не даёт себя любить. Ну серьёзно, в доме 31 градус - работать просто невозможно, почему бы не осчастливить Хабр очередным личным опытом?

Читать без соблюдения банковской тайны

О классах Program и Startup — инициализация ASP.NET приложения. Часть II: IWebHostBuilder и Startup

Reading time72 min
Views11K

Это - продолжение статьи, первая часть которой была опубликована ранее. В той части был рассмотрен процесс инициализации, общий для любого приложения .NET Core на базе шаблона Generic Host. А в этой части будет рассмотрена инициализация, специфическая именно для веб-приложения. Именно в нее входят вызовы методов Startup-класса.

Если вы не читали первую часть, то рекомендую в нее заглянуть, по двум причинам. Во-первых, процесс инициализации, специфической именно для веб-приложения, существенно опирается на механизмы, рассмотренные в первой части: методы интерфейса построителя веб-приложения IWebHostBuilder в основном реализуются через вызовы методов интерфейса построителя IHostBuilder, и процесс инициализации проходит, в целом, через те же стадии, общие для любого базирующегося на Generic Host приложения .NET Core. А во-вторых, там объяснено, для чего часть информации убрана под спойлеры, и какую информацию под какими спойлером можно увидеть (и решить - а стоит ли ее смотреть).

И ещё пара слов про вторую часть. К моему сожалению, она получилась раза в два больше первой части, которая сама по себе была и так немалой. Но мне не удалось найти способа сократить ее без ущерба для содержания. Так что заранее прошу простить меня тех, кому большой объем статьи помешает с ней ознакомиться. Возможно, им сможет помочь краткое содержание этой статьи, которое находится сразу под катом.
А ещё, опыт публикации первой части показал, что стоит заранее предупредить потенциальных читателей, чтобы ненароком не ввести их в заблуждение: в этой статье содержится только описание "как оно работает", но нет никакой информации, как этим пользоваться практически, никаких рецептов и вообще - никакого кода. К сожалению, большой объем матераиала заставил чем-то пожертвовать. И я решил ради полноты описания принципов работы - информации, которую лично я нигде больше не видел - пожертвовать сведениями о практических приемах работы - той информацией, которая, в конце концов, уже опубликована в руководстве от изготовителя и в многочисленных статьях.

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

Читать далее

2500 дней создания AI без использования нейронных сетей или покерный бот, который дороже $50к

Reading time12 min
Views28K

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

Я закончил математический факультет(ТвГУ) в 2012г.  В период учёбы я профессионально играл в покер, как вживую, так и онлайн(yura_$198802,основной аккаунт PS). Не могу сказать, что был супер успешен, но для студента вполне себе подработка. Уже с 2011 года я начал карьеру программиста и продолжаю её по сей день. Это мой основной источник заработка. Но где-то в 2014 я серьёзно решил заняться написание покерного бота, для онлайн площадок. На данный момент “я” превратился в команду энтузиастов, которая двигает этот проект вперёд! Еще в университете довольно таки плотно был знаком с Байесовским классификатором, а также имел  базовые представления по нейронным сетям. Сейчас стало "мейнстримом" считать, что если вы нашли релевантные данные и корректно обучили сетку с использованием (ML,CatBoost,TensorFlow и т.д.), то вы сделали что-то похожее на “искусственный интеллект”(далее AI). Я решил ,что если раскрою верхнеуровневую архитектуру своего проекта, это может кого-то удивить тем, что AI - это нечто большое.(только не профессионалов в этой области) И даже в такой игре как покер, где казалась бы не обойтись без нейронных сетей(на самом деле это действительно так), до момента органического встраивания их в продукт, лично у меня прошло примерно 2500 дней. Сразу хочу отметить, что  способ, когда ты знаешь всю информацию обо всех участниках и играешь с одними и теми же, где можно просто собрать модель и обучить её по лучшим и быть в их числе, не подходит для так называемого реального онлайн покера. Тут  нужно делать изначально экспертную систему, которую уже можно бесконечно долго улучшать и модифицировать.

Читать далее

Давайте уберём кватернионы из всех 3D-движков

Reading time13 min
Views32K
image

Для записи трёхмерных поворотов программисты графики используют кватернионы. Однако в кватернионах сложно разобраться, потому что изучают их поверхностно. Мы просто принимаем на веру странные таблицы умножения и другие загадочные определения, и используем их как «чёрные ящики», поворачивающие векторы так, как нам нужно. Почему $\mathbf{i}^2=\mathbf{j}^2=\mathbf{k}^2=-1$ и $\mathbf{i} \mathbf{j} = \mathbf{k}$? Почему мы берём вектор и превращаем его в «мнимый» вектор, чтобы преобразовать его, например $\mathbf{q} (x\mathbf{i} + y\mathbf{j} + z \mathbf{k}) \mathbf{q}^{*}$? Да кому это интересно, если всё работает, правда?

Существует способ описания поворотов под названием ротор, который относится к области и комплексных чисел (в 2D), и кватернионов (в 3D), и даже обобщается до любого количества измерений.

Мы можем создавать роторы практически полностью с нуля, вместо того, чтобы определять из ничего кватернионы и пытаться объяснить, как они работают задним числом. Это занимает больше времени, но мне кажется, что это стоит того, потому что их гораздо легче понять!

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

Было бы здорово, если бы начали вытеснять использование и изучение кватернионов, заменяя их роторами. Заменить их очень просто, а код останется почти таким же. Всё, что можно делать с кватернионами, например, интерполяцию и устранение блокировки осей (Gimbal lock), можно сделать и с роторами. Но понимать мы начинаем гораздо больше.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity