Zaharatot

На Пикабу
Дата рождения: 17 апреля
2175 рейтинг 32 подписчика 37 подписок 47 постов 7 в горячем
Награды:
5 лет на Пикабу

Истинное лицо современного геймдева

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

Встречайте! Именно так и выглядит презентация своего творения инди-студией:
https://pikabu.ru/story/dero_6519797#comments


С самого начала поста, нас встречает фраза: "Если вы ненавидите инди игры, идите лесом" - оригинальный ход. Ну, я вроде к индюшатине отношусь нормально, так что читать дальше можно =).


Дальше идёт описание того, какими играми авторы вдохновлялись, краткое описание завязки сюжета и небольших фишечек игры. И, с каждой прочитанной строкой, появляется твёрдая уверенность, что автор решил создать стёбный пост, ибо всё написанное вызывает воспоминания о таких шедевральных работах как "Жестокая Голактика" и письма в студию «Мистленд» (о чём в комментариях уже упомянули, поинтересовавшись, можно ли в игре будет "грабить корованы"). Ну не может адекватный взрослый человек, на полном серьёзе так писать.


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


И, вот на этом моменте, вероятность, что весь пост написан на полном серьёзе резко вырастает до неприличных величин. Хотя, вероятность стёба всё ещё остаётся, но я буду рассматривать именно первый вариант, ибо сам подход к работе - слишком типичен.


К чему я всё это веду? Тут дело в том, что я уже встречал на пикабу пост от нескольких студентов, которые задумали строить игру, но у них ничего не вышло. Да и на других ресурсах об этом читал.


К людям приходит в голову классная (как минимум, по их мнению) идея и они с места в карьер, на голом энтузиазме, начинают её реализовывать. Постепенно приходит понимание, что не всё так просто, и чтобы реализовать все их задумки требуется вложение огромного количества времени сил и знаний. А в результате может получиться пшик, т.к. их разработка не будет никому интересна. В команде начинаются споры, и в итоге она распадается, оставляя всем участникам как минимум недоверие к разработке игр.


Пример, который я привёл в начале - очень показательный. Я не хочу сказать, что мой прогноз сбудется на 100%, но с большой вероятностью, эти ребята забросят свой проект через пару месяцев (зависит от того, насколько им энтузиазма хватит).


Я не говорю, что это плохо - наоборот! Они занимаются интересным делом, и получают навыки, которые в будущем смогут стать профессией. Но, всё это будет актуально только в случае, если они примут провал своей текущей задумки, сделают из этого верные выводы, и продолжат развитие. В противном случае, это будет только негативный опыт и обозлённость на тех кто "не понял их гениальное творение". Печально, но факт.


Надеюсь, содержимое этого поста никто не воспримет как оскорбление, его можно рассматривать скорее как "старческое брюзжание, над молодыми и глупыми". У меня самого, ещё со школьных времён валяются на диске старые проекты, которые тогда казались мне "гениальными" и "крутыми" (слава богу, что тогда я особо в интернете не сидел, чтобы делиться этими идеями...). Иногда, я даже сдуваю с них пыль и усмехаюсь наивности тех мыслей.


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

Показать полностью

Поиск аниме

Здравствуйте, задала мне девушка задачку =). Сам такого точно не смотрел, и нагуглить не смог. Может сможет кто-нибудь подсказать по описанию, как она называется?


Действие происходит в Токио. Один учёный создал машину для получения сверхтвёрдого вещества. В результате эксперимента в центре города образовалась дыра, доходившая до магмы. Главными героями были девочка и мужчина которые знали песню (стих Поля Элюара "Добрая справедливость") способную запустить разрушительное изобретение.

Размышления о донатах

Размышления о донатах

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


А начать всё буду как обычно, довольно издалека =). Есть у меня небольшая программка. Не то чтобы сверх сложная или сверх нужная, но работы в неё было вложено не так уж и мало. Её история началась ещё в 2014 году, когда я написал самую первую версию... Собственно, вот так она писалась и пилилась потихоньку, периодически забрасываясь, до сего момента. Делалась она в целом под некоторые мои задачи. Сейчас вот, переписал её с ноля, полностью избавившись от жуткого наследия первых версий... Бррр...


Ладно, нафиг историю. Суть в том, что у меня в голове (как наверное у практически всех разработчиков) периодически возникали мысли - а не получить бы мне с неё какую-нибудь копеечку. Для меня, тут даже основная суть не в самих горах денег, а в том, чтобы я увидел, что эта программа действительно интересна людям и ей пользуется ещё кто-то кроме меня. Я даже предпринимал одну попытку (примерно в 2015 году) - добавил в форму, которая появлялась перед запуском приложения, текст с просьбой поддержать разработчика, и залил софтину на пару ресурсов, аудитории которых она могла быть интересна. Результат был, как можно понять - никаким.


И вот сейчас, практически завершив полное обновление программы, ко мне снова пришли такие мысли. Какие вообще есть варианты монетизации?


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


2. Встраивание рекламного блока. Крайне сомнительный способ заработка. Тут много причин:

- Ненависть такого вида монетизации у десктопных пользователей.

- Отсутствие адекватных предложений на рынке. Либо крайне сомнительные сервисы, либо костыли-обёртки со 100% вероятностью получить бан рано или поздно.

- Крайне сомнительная доходность. Да, я говорил, что сам доход мне не важен. Но тут есть одно важное но. Допустим, у программы будет пара сотен пользователей (да, я оптимист). Они будут запускать её пару раз в неделю. Ну и сколько там наберётся за год? Рублей 20? Ну и смысл мозолить пользователям глаза баннером, из-за этих копеек?


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


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


Собственно, к чему я написал все эти размышления? Мне интересно ваше мнение, по поводу монетизации проектов. Может быть у вас есть секретный способ, которым вы втихаря пользуетесь =)? И как вы вообще относитесь к тому, чтобы монетизировать свои небольшие программки. Короче говоря, обсуждение этой темы объявляю открытым! Всем добра!

Показать полностью
0

Интересный способ определения радиации

Всем добра! Материал, который послужил идеей для создания данного поста, уже выкладывал на пикабу @leninkpss, но самого разбора что и как - не было (я не нашёл). Надеюсь, что я никого не обижу этим постом.


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


Я заинтересовался, и просмотрев несколько роликов остановился на вот этом (Не реклама, канал действительно интересный. Я, как человек знающий о радиации только по наслышке узнал много нового.):

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


Думаю, прожжённым технарям написанное ниже интересно не будет (им и так всё понятно), а для остальных - милости прошу!


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


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

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


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


Мне, как программисту проще это описать так: датчик вызывает событие, которое обрабатывается индикатором.


Вроде бы пока всё просто, но что не так с камерой? Тут всё тоже не сложно. Её принцип работы можно описать так. Процессор камеры, с указанной частотой (30, 60 и т.д., кадров в секунду), опрашивает матрицу, на предмет получения кадра (как формируется кадр - мы уже разобрали выше). Уже немного проясняется, не так-ли?


Для понимания, точно так же распишу принцип: процессор проверяет наличие сигнала на датчике, раз, в определённое время. В случае, если на датчике есть сигнал, он отправляет информацию об этом на индикатор.

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


Для упрощения расчётов, возьмём альфа излучение, которое является самым медленным (скорость - 20 000 км/с. У бета и гамма частиц скорость в районе 300 000 км/с).


Толщину матрицы, возьмём в 2 мм (особой разницы, на итоговый вывод это не даст).


Переведём скорость альфа-частицы в миллиметры в секунду, и получим 20 000 000 000 мм/с.


Таким образом, частица пролетит через матрицу, за 2 / 20000000000 = 0,0000000001 секунд.


А это, в свою очередь даёт нам частоту кадров, которая потребуется для того, чтобы эту частицу засечь с вероятностью близкой к 100% в 10 000 000 000 кадров в секунду.

Что же у нас выходит? Решив простое уравнение, мы получаем, что шанс засечь альфа-частицу, камерой с 60 кадрам в секунду равняется примерно 0,0000006%. Для частиц других типов - этот шанс ещё меньше.

Вот так всё просто =). Чтобы достичь эффективности счётчика Гейгера, который выдаёт сигнал в тот же момент, когда через него пролетает частица, нам нужно будет опрашивать камеру, на предмет получения кадра, как минимум 10 миллиардов раз в секунду. Чего, насколько я знаю, современные потребительские камеры достичь не в состоянии.


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


Надеюсь, вся эта писанина была хоть кому-нибудь интересна, и вы не будете сильно на неё ругаться =). Всем добра!

Показать полностью 3
5

Немного о сравнении изображений

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


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


Как обычно, искать стороннее приложение мне было лениво, и я, молодецки гыкнув полез писать свою, ультра крутую и нужную версию. Когда-то давно, я уже писал подобное приложение, но искать его мне было ещё ленивее (перерывать 80 гигабайт проектов - такое себе удовольствие), да и версия та была на диво примитивна.


Ну, решение принято, и я вооружившись вижуал студией начинаю священнодействие. Изначальный план прост - берём файл с картинкой, считываем все байты, получаем из них md5 хеш.  Что это такое можете погуглить, но, если вкратце - получение хеша это преобразование исходных данных в короткую уникальную строку, по которой можно сравнить эти данные. Т.е. например у строки "Привет мир!" хеш будет "1234", а у строки "Привет всем!" будет "1248".


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


Мысль здравая, но как бы это реализовать? Пара минут размышлений, и ответ найден - открываем картинку, сжимаем её до крайне маленького размера (например - 64х64 пикселя, хотя я сделал хитрее - у меня есть заданный размер максимальной стороны картинки, а размер второй я высчитываю из соотношения сторон. Т.е. картинка 1000х500 превратится в 64х32, а картинка 400х800 в 32х64) после чего, получаем набор байт для хеша, просто записав цвета каждого пикселя! Т.е. просто записываем значения каждого из цветов палитры RGB, для каждого пикселя в огромный массив, получаем из него хеш и уже его сравниваем! Но - что-то пошло не так. Программа упорно отказывалась принимать тестовые картинки (об этом немного позже) за похожие. А дело было в том, что даже при отличии в одном пикселе пережатой картинки хеши были разными (но это я понял немного позже).


Путём сложных умозаключений я пришёл к мысли - "А не почитать ли мне о том, как сравнивают изображения умные дяди?". Недолгое гугление привело меня к статье на Хабре, из которой я узнал, что делал то я всё практически верно! Но, можно было добавить ещё одну фишку, вычитанную из статьи - перед записью цветов, превращать картинку в монохромную. Таким образом, нам потребуется сравнивать для каждого пикселя не 3, а всего 1 цвет.


Немного работы, и хитрый алгоритм готов. Суть его в следующем:

1. Берём картинку, и пережимаем её, с сохранением соотношения сторон.

2. Берём цвет каждого пикселя, и по формуле превращаем RGB в один цвет оттенка серого.

3. Полученный цвет сохраняем в массив. Этот массив и будет нашим "хешем" картинки.


Пол дела сделано! Осталось только корректно сравнить эти массивы, с чем я мудрить не стал. Для начала - задал 2 константы. Первая указывает на процент совпадений цветов в "хеше". Если совпадений больше этого процента, то картинки похожи. А вторая указывает допустимое расхождение в цвете пикселя. Т.е. чтобы при сравнении считались не 100% совпадающие по цвету пиксели, а именно похожие. А затем, просто перебираем наш список картинок, сравнивая каждую из них с теми, что уже проверены, и заносим совпадения в отдельный массив.


Итак, давайте же перейдём к тестам!

Тест 1.

Тестовые образцы: Изображение формата png, размером 800х600, и 5 его копий, размер каждого из которых уменьшается на 100px по ширине (высота изменяется соответственно соотношению сторон), от предыдущего.

Цель тестирования: Проверить возможности поиска сходных изображений, в формате без сжатия.

Результат тестирования: Для формата .png были признаны похожими картинки, влоть до разрешения 500х375. Т.е. почти до изображения, которое в 2 раз меньше.

Тест 2.

Тестовые образцы: Изображение формата jpg, размером 800х600, и 5 его копий, размер каждого из которых уменьшается на 100px по ширине (высота изменяется соответственно соотношению сторон), от предыдущего.

Цель тестирования: Проверить возможности поиска сходных изображений, в формате, который добавляет артефакты, при сжатии изображения.

Результат тестирования: Аналогичны с прошлым тестированием.

Тест 3.

Тестовые образцы - Оригинальному изображению была добавлена фоновая заливка, после чего оно было сохранено во всех форматах, поддерживаемых программой - png, jpg, bmp, gif.

Цель тестирования: Проверить возможности поиска сходных изображений, сохранённых в различных форматах.

Результат тестирования: Все тестовые изображения были отмечены как похожие.

Тест 4.

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

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

Результат тестирования: Как схожее было отмечено только изображение с мелким дополнительным элементом.

Ну, вот и всё. Конечно, данная программа крайне далека от идеала - у неё нет нормального интерфейса, она не поддерживает многопоточность (что могло бы ускорить поиск в разы), она не ищет изображения, соотношение сторон которых отличается, ну и не может понять что инвертированная картинка и оригинальная схожи. Да и код в файле "main.cs", нужно снести к чертям и переписать с ноля, ибо там треш и угар. Но, всё это для моей цели было не особо нужно, так что я не стал особо заморачиваться.


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


P.S. Если кому-то интересно, вот исходный код программы: https://github.com/Zaharatot/ImageScanner_New

Не стал добавлять его куски в сам пост, т.к. он и так вышел шибко длинным.

Показать полностью 5
3

Новогодний подарок от Яндекса

Всем добра. Сама история описанная ниже, произошла ещё в ноябре месяце. Тогда я просто порадовался, да и забыл об этом, за рабоче-повседневными делами. А сегодня что-то вспомнилось, и решил написать пост.


Собственно, сервисам Яндекса я пользуюсь довольно давно - лет 7 минимум. А, в конце этого лета решил подключить подписку Яндекс.Плюс. С первой оплатой прилетели бонусные 2 месяца работы подписки. А сама история начинается именно с её продления.


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


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


В форме запроса описал проблему и полный порядок действий, который привёл к появлению бага. Ответ от техподдержки порадовал.

Новогодний подарок от Яндекса

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


Ведь могли спокойно сказать что-то в формате "Да, действительно, спасибо за обращение, ошибочно начисленный бонус отменим." К чему я и был готов. Но, они этого делать не стали, и подарили немного новогоднего настроения. За что им огромное спасибо.


Добра всем!

Показать полностью 1

MIUI10 и Explorer

Всем добра.Случился у меня один косяк, аккурат после обновления моего Redmi Note 4 до MIUI10. Долго пытался нагуглить подобную проблему, но ничего похожего вообще не нашёл. Отписался в соответствующей теме на 4pda - мой вопрос тупо удалили (вообще шикарно). А сегодня появилась мысль - отписаться тут, вдруг кто сталкивался.


Короче говоря, есть такой файловый менеджер - RootExplorer, и его free версия - Explorer. Пользуюсь им на Android уже лет 6. Очень удобная программа, позволяющая открывать неограниченное количество вкладок (все файловые менеджеры, которые я попробовал, когда искал альтернативу могли максимум в 2 вкладки). Так вот, после обновления до MIUI 10, появилась странная проблема - при открытии любого изображения, через этот файловый менеджер (и только через него!), оно открывается, как будто в этой папке нет других изображений. Т.е. при перелистывании к следующему файлу в просмотрщике изображений, ничего не происходит. При этом, если открыть тот же самый файл через любой другой файловый менеджер (стандартный из MIUI, TotalCommander и т.п.), всё работает как и должно - перелистывание приводит к переходу на другой файл. При этом, до обновления таких проблем не было.


Что я пробовал:

1) Проверил все разрешения для программ - всё стоит как и раньше. Попробовал отменить настройки, и заново их проставить.

2) Переустановил Explorer.

3) Попробовал установить струю версию Explorer, с 4pda.

4) Попробовал установить RootExplorer.

5) Долго гуглил, путаясь найти хоть немного схожую проблему, решение которой натолкнуло бы на мысли


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

Показать полностью
0

Сушёная хурма

Всем добра! Не так давно был пост, из серии АДМ, в котором упоминался этот сухофрукт. И в комментариях народ писал о том, что нигде не может найти его в своих городах. Так вот, гуляя сегодня с девушкой, увидел новый магазинчик сухофруктов, вспомнил про этот пост и решил зайти и проверить. Хурма там была (правда - не много)!

Если кому из Белгорода интересно попробовать её, то ищите в здании магазина "Лента" (который на Королёва), магазин находится прямо возле бокового входа, который выходит на "Космос".

Не реклама, просто решил поделиться - вдруг кто искал её.

Отличная работа, все прочитано!