Открытый код

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

Мой профиль на GITHUB: https://github.com/tirinox

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

Сейчас выложены следующий проекты:

Erudite Push Stream

https://github.com/tirinox/erudite_push_stream

Сервер для получения сообщений по TCP от сервера. Пришел из сервера Эрудита. Некоторая замена nginx_push_stream_module. Т. е. у нас есть бэкенд на PHP, он хочет уведомить пользователя о событии, поэтому обращается к erudite_push_stream. Пользователь в свою очередь держит открыт к TCP соединение к нему и получает сообщение.

Написан на Go Lang.

GoWaiter

https://github.com/tirinox/gowaiter

Тоже из инфраструктуры Эрудита. Умеет устанавливать таймеры и дергать HTTP запросы, когда таймер истекает. Так же умеет дергать их заранее заданному расписанию (на подобие CRON). Очень простой сервис с минимумом настроек.

Написан на Go Lang.

 

Взлом игры «Потребительская корзина» от РокетБанка

РокетБанк устроил конкурс с розыгрышем iPhone, хамона и макарон. В одном из заданий нужно играть в игру типа «Ну, погоди!». Несколько раз пробовал, но она оказалась для меня слишком сложной, поэтому я взломал движок Construct 2 (на котором она сделана) и прошел ее на раз-два.

Итак, нам понадобится браузер Chrome.

Открываем игру.

Кликаем правой кнопкой около игровой приставки, выбираем Inspect. (Картинки можно открыть пошире)

screen-shot-2016-09-29-at-23-14-55

В появившемся окне кликаем на Sources (наверху).

screen-shot-2016-09-29-at-23-15-03

Кликаем на три точки, затем Go to file.

screen-shot-2016-09-29-at-23-15-21

Находим файл c2runtime.js, переходим к нему (это движок игры).

screen-shot-2016-09-29-at-23-15-33

Нажимаем (Ctrl+F или Cmd+F на маке), это поиск. Находим нужную ф-цию (AddVar).

screen-shot-2016-09-29-at-23-15-51Дописываем туда код, как показано на рисунке.

Код смотрит, если переменная – очки за игру, то добавляем сразу по 10:

if(v.name == 'Score') x = 10;

screen-shot-2016-09-29-at-23-16-33

Нажимаем Ctrl+S (или Cmd+S на маке). Chrome может подвиснуть на пару секунд, не пугайтесь. Затем возвращаемся к игре, нажимаем «Заново» и «Играть». Теперь каждый собранный продукт дает нам по 10 очков вместо 1 очка. Нам остается набрать 100 и более очков, продуть, и все! Печать наша!

screen-shot-2016-09-29-at-23-19-31

Спасибо за внимание!

P. S. Оформляйте карты РокетБанка через мой реферал: https://rocketbank.ru/loves/maksim.koltsov

Apple customer

Поймал себя на мысли, что для того, чтобы переустановить систему, я сходил в магазин и купил новый SSD. Похоже, я превращаюсь в эталонного Apple customer (сел iPhone, пошел и купил новый).

На самом деле, мой старенький HDD сдох, и теперь у меня в системе 2 SSD.

Переустановил за два дня без особых проблем обе системы. Теперь у меня OS X El Captain 10.11.5 и Windows 10.

Короче, чем только не займешься лишь бы не работать 🙂