воскресенье, 28 сентября 2014 г.

RedBlackJera - Мой ответ нечестной игре

Как - то в разговоре с приятелем, за кружкой темного, зашла тема об азартных онлайн играх. На которые, он сетовал, мол, почему некоторые выигрывают, а ему не везет всегда. И тогда мы посчитали в процентах, шансы на победу в азартных онлайн играх:
  1. Онлайн казино, рулетка - 26, 64 % (666 лунок 4 поля, 1 шанс)
  2. Онлайн букмекеры - 16,66 % (3 варианта, которые выгодны букмекерам)
  3. Онлайн лотереи - 1, 75 % (5 из 36)
В итоге, родилась затея, сделать игру в которой шансы были бы 50 на 50, или даже выше. Друг, скептический усмехнулся: - "не ниже чем 50% на победу, для каждого игрока?" - "Да это ж, нереально!".
Тут уже, посмеялся уже я) - "Давай ручку, и смотри." Так, на рекламном листке, доказал ему что это реально:

Основа игры, есть всего две фишки, красная и черная. И два игрока, каждый из которых может выбрать лишь одну фишку.
Первый игрок, "Организатор" делает выбор, первым. Например, поставил на красную фишку.
Второй игрок, "Угадывающий", тоже делает выбор, но ему нужно угадать, какую фишку выбрал "организатор". Если он угадает, то выигрывает, а если нет, то теряет ставку.

Шансы всегда 50, на 50. А это уже в два раза выше чем в онлайн казино, ~3 раза чем в букмекерских конторах, и в ~50 раз чем в онлайн лото!

Подробности на официальном сайте.

Тогда, он предложил мне реализовать такую игру, и согласился выступить в качестве первого пользователя. После разработки в "особо секретных условиях" в течении, 8 месяцев. вначале ланировался запуск летом 2014, потом 2015, а запуск произошел 21 авуста 2015 , так что дедлайнер я еще тот).

В процессе разработки, узнал много нового, про php, laravel, про теорию вероятностей, о репозиториях, bitbucketе, vagrant, virtualbox, vps, онлайн деньги, платежные системы, работа с фрилансерами...


Было весело, да и сейчас интересно. Ожидается устранение ошибок, которые я пропустил, по отзывам пользователей-тестеров, добавление новых фич. Мои познания в продвижениях сайтов, довольно посредственны, так что будем учиться и выкладывать посты и новости. Начал с создания страницы в ВК.


Всем удачи.


Vagrant, Windows 7-8 x64 и ошибка незакрывающихся сессий

На днях, (причем на выходных, закон Мерфи воочию), при запуске виртуальной машины с новым проектом, через Vagrant, получил зависание оной. Что выразилось в остановке на пункте: Booting VM ... После получасового ожидания за просмотром клипов Lindsey Stirling, я понял, что ожидать нечего. Закрыл сессию в консоли Ctrl+C, и узрел ошибку Error, "что_то_там" блокирует процесс с ID=x00300 и т.п.

После гугления и раздумий, переустановок vagranta, virtualbox, понял, что проблема в сессиях, которые некорректно завершаются даже с помощью команды vagrant halt.

Решение
Способ простой (upd 29.09.14) : в консоли запускаете
 vagrant halt
vagrant reload

Способ сложный:
Хорошо, сказал я, в Диспетчере задач, посмотрел процессы VirtualBox и завершил, VBoxSVC.exe а также попытался завершить остальные процессы работающие с VirtualBox.
Затем снова открыл консоль, перешел в директорию с проектом, и внимание: сперва запустил команду vagrant halt, дождался завершения сеанса, а затем vagrant up, и все работает)

Проблема возникла с Vagrant 1.6.5, и VirtualBox-4.3.16-95972-Win

Сразу после установки наблюдаю, такое предупреждение, возможно это причина моей проблемы. Пока ожидаю обновления Vagranta.


Upd: 23/05/15 - Windows 8,
после установки Vagrant + VirtualBox, и запуска, все таки не забываем запустить
vagrant up
vagrant provision
---

суббота, 13 сентября 2014 г.

vagrant, ruby on rails, и решение ошибки с кодировкой latin1

В один из вечеров, для саморазвития, следуя заветам Джона Резига (пишите код каждый день), решил написать новый проект, но не на PHP, а на Ruby. Давненько присматривался, но все откладывал, а сейчас появилось чуток времени. Дай думаю, принесу пользу людям, да и себе.

Порыскав понял, что писать на Ruby под Windows, не стоит. Linux ставить на ноут, пока нет возможности, решил запустить на виртуалке, используя виртуальную машину VirtualBox.
Для "еще_незнающих", есть полезная утилита vagrant (vagrantup.com) - можно запускать virtualbox и сохранять образы. То есть, установил virtualbox, vagrant -> запустил vagrant , скачал box, (образ), настроил один раз. А затем клонировал, и уже с клоном "играешься" как хочешь. Если клон-образа сломался, не беда, запускаем базовый образ, клонируем и через несколько минут - у нас уже полностью настроенная система. Profit!

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

А теперь, собственно об ошибке, которая долго гуглится, а на русском вообще не нашел. Внимайте же)

после шага:

bundlerake db:create db:migrate db:seed
Ошибка:

PG::Error: ERROR:  encoding "UTF8" does not match locale "en_US"
DETAIL:  The chosen LC_CTYPE setting requires encoding "LATIN1".
: CREATE DATABASE "stuff_test" ENCODING = 'unicode'

Решение (взято отсюда):


1
2
sudo su postgres
psql
1
2
3
4
5
update pg_database set datistemplate=false where datname='template1';
drop database Template1;
create database template1 with owner=postgres encoding='UTF-8'
  lc_collate='en_US.utf8' lc_ctype='en_US.utf8' template template0;
update pg_database set datistemplate=true where datname='template1';


Don't forget!:

Выйти из postresql
\q

завершить сеанс под sudo
exit


Поздравляю, теперь все работает.