вторник, 2 декабря 2014 г.

Тяжкие будни программиста-одиночки


Да, да, да! Знаю-знаю. Не сдерживать слово очень нехорошо. Я в очередной раз нарушил обещание не тянуть с продолжением. Каяться в этой ситуации бессмысленно, все равно мне гореть в аду. И после очередных упреков со стороны старого приятеля по поводу отсутствия контента в блоге, я взялся за продолжение рассказа о том как стать программистом после 30-ти. Сильно после 30-ти.

Примерно год назад, взвесив всё, я взялся за проект, который показался мне интересным и соответствующим всем моим хотелкам, про которые я говорил в предыдущем посте. В то время (конец 2013 года) у всех на слуху был Биткойн и другие криптовалюты. Bitcoin день за днем устанавливал рекорды биржевой стоимости будоража умы желающих легко и быстро заработать. Про криптовалюты много писали как IT-ресурсы, так и издания для широкой публики. Меня не особо интересовала тема торговли криптовалютами, т.к. в своё время я уже наигрался с Форексом и к биржевым спекуляциям не тяготел.

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

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

Так вот, продолжая логическую цепочку размышлений о том где взять много компьютеров (а точнее много вычислительных мощностей) я пришел к мысли, что ведь в мире без толку простаивает множество компьютеров. Многие наверняка знают, что среднестатистический компьютер 95% времени ничего не делает. В этом легко убедиться, запустив Диспетчер задач (см. рисунок)
Кроме того, что во время работы компьютера процессор не особо-то нагружен, есть еще периоды, когда пользователь и вовсе оставляет компьютер без дела, а сам занимается другими вещами. Получается что очень много процессорного времени пропадает впустую. Вот если бы заставить эти бесполезно простаивающие процессоры добывать криптовалюту. Ну и, разумеется, складывать ее в мой кошелек.

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

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

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

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

Сложных настроек в программе не было, т.к. она была рассчитана на самую массовую аудиторию. Выглядело окно настроек как-то так:
Поначалу все пошло неплохо. Я разместил написанную мной программу в различных софт-каталогах, на скорую руку слепил сайт для нее (www.ssavers.ru) и начал следить за статистикой добычи криптовалюты. Это и были те десятки центов в день, о которых я писал в предыдущем посте. Я уж было рисовал мысленно планы по продвижению скринсейвера в массы, как вдруг возникла неприятность, которая в конце концов загубила весь этот проект. Ну или почти загубила.

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

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

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