Как говорил мне один рубист, со временем ты становишься специалистом в RoR и ни в чем больше. И начинаешь говорить, что дескать пол секунды на генерацию странички - это нормально. Зарабатывать таким образом, конечно, можно, но будет скучно.
Я в свое время пришел к выводу что для экспериментов со второй ОС лучше либо подрять виртуалку, либо приобрести отдельный комп (если нет своих неиспользуемых ноутов, можно недорого купить). Две ОС на одной машине во-первых неудобно, во-вторых, после какого-нибудь очередного обновления винды или установки какой-нибудь софтины легко потерять возможность грузиться под Linux.
Автоматическое тестирование - функциональное и, желательно, нагрузочное. Не обязательно тестировать совсем все, но хотя бы основной функционал, что пользователь может зарегистрироваться, отправлять там ЛС и все такое. Прямо пишите скрипт, который ходит на ваш тестовый сервер GET/POST запросами. Или через Selenium.
Еще можно выкатывать фичи не на всех пользователей сразу, а только на определенный процент. Например, берете X = crc32(login) % 1000, в конфиге пишите, например, N = 5 (то есть, катим на 0.5%) и в коде, отвечающем за новую фичу, смотрите, если X меньше либо равен N, фича работает, иначе - не работает. Когда выкатите на 100% (N = 1000), проверку из кода можно убрать.
Ну вообще-то при использовании нормальных фреймворков/ORM вероятность SQL Injection или например атаки с помощью XSS становится очень небольшой. Но если хочется перестраховаться, запретите прямое хождение в таблицу и работайте с ней исключительно через процедуры например, частично поможет. (Безопасность - это процесс, а не результат).
См эту заметку. В мире Java вас ждет много боли, еще не поздно одуматься :)
Знакомый фрилансер в свое время говорил, что проще всего найти фрилансера в топе, который делегируют/оутсорсит свою работу другим фрилансерам. Ну и еще стоит отметить, что стоит поискать работу на вебмастерских форумах и писать там заказчику в ЛС.
Часто генерят путем транслитерации имени или фамилии пользователя и прибавления цифр года рождения.
Ну или можно вручную придумать десяток-другой "красивых" ников, потом разбить их на слоги и генерировать из них. Тут поможет pwgen. Например, было:
zeratog rootak erlanger
Разбиваем на части и получаем:
zetak rootanger
и так далее.
Вы складываете a и b, не присвоив им значений. В C/C++ в этом случае в переменных может оказаться произвольный мусор. Нужно писать double a = 0; double b = 0;
Не лучше ли помержить все JS в один файл, и, соответственно, все CSS тоже в один? Тут больше шансов потерять на времени посылки HTTP-запроса, чем на большом трафике. К тому же, JS и CSS отлично gzip'уется.