Юмор →
Трудовые будни геймдевелоперов — миф #1
Миф #1
«На самом деле — в работе геймдевелоперов всё скучно и не весело».
Проект Менеджер: «Нужен промо-банер.»
…
Геймдизайнер: *пишет подробное ТЗ*, выдержка: "… с изображением сексуальной девушки, стоящей рядом с мотоциклом, (спортбайком)..."
…
Художник: «Самый важный вопрос, который здесь возникает — это размер груди у девушки. Я слышал, что в разных игровых зонах (США, Европа, СНГ, Азия) у игровой аудитории существует различное отношение к этому вопросу, только не помню, у кого какое. Прошу не счесть за праздность, просто применительно к одному из главных промо изображений не хочется прогадать.»
…
Геймдизайнер: «Хорошо, поищу маркетинговые исследования о размере груди в подобных картинках, применительно к компьютерным играм, для русскоязычной аудитории.»
Результат поиска под хаброкатом…
09.11.2011 11:03+0400
Юмор →
Трудовые будни геймдевелоперов — миф #1
Миф #1
«На самом деле — в работе геймдевелоперов всё скучно и не весело».
Проект Менеджер: «Нужен промо-банер.»
…
Геймдизайнер: *пишет подробное ТЗ*, выдержка: "… с изображением сексуальной девушки, стоящей рядом с мотоциклом, (спортбайком)..."
…
Художник: «Самый важный вопрос, который здесь возникает — это размер груди у девушки. Я слышал, что в разных игровых зонах (США, Европа, СНГ, Азия) у игровой аудитории существует различное отношение к этому вопросу, только не помню, у кого какое. Прошу не счесть за праздность, просто применительно к одному из главных промо изображений не хочется прогадать.»
…
Геймдизайнер: «Хорошо, поищу маркетинговые исследования о размере груди в подобных картинках, применительно к компьютерным играм, для русскоязычной аудитории.»
Результат поиска под хаброкатом…
09.11.2011 11:03+0400
Open Source →
WTFBPPL: одна из наиболее удачных лицензий для ПО с открытым кодом
Многие из нас тратят время на создание ПО с открытым кодом, кто для саморазвития, кто от скуки, и ничего в не требуют взамен. Пришло время покончить с этим, представляю вам перевод новой революционной лицензии для ПО с открытым кодом.
09.11.2011 01:13+0400
Язолъ →
Biglion — интернет-мошенники
Добрый день!
Я хотел бы пожаловаться на интернет-мошенников biglion.ru.
16 октября 2011 года мы приобрели 2 купона в компании Биглион для занятий теннисом. В условиях акции явно было указано, что один человек может приобрести любое количество купонов. Однако оказание услуги по второму купону оказалось невозможно, — это видимо очень невыгодно заведению, и мы решили вернуть второй купон — оказание услуги по нему было невозможно не по нашей вине.
Я хотел бы пожаловаться на интернет-мошенников biglion.ru.
16 октября 2011 года мы приобрели 2 купона в компании Биглион для занятий теннисом. В условиях акции явно было указано, что один человек может приобрести любое количество купонов. Однако оказание услуги по второму купону оказалось невозможно, — это видимо очень невыгодно заведению, и мы решили вернуть второй купон — оказание услуги по нему было невозможно не по нашей вине.
08.11.2011 21:04+0400
Юмор →
Мекс ищет работу в США
Регистрировался на американском сайте для поиска работы, увидел такое:
(то, что американцы не очень любят и не очень хотят видеть мексов и прочих латиносов известно хорошо, но все равно смешно)
(то, что американцы не очень любят и не очень хотят видеть мексов и прочих латиносов известно хорошо, но все равно смешно)
08.11.2011 18:11+0400
Юмор →
Мекс ищет работу в США
Регистрировался на американском сайте для поиска работы, увидел такое:
(то, что американцы не очень любят и не очень хотят видеть мексов и прочих латиносов известно хорошо, но все равно смешно)
(то, что американцы не очень любят и не очень хотят видеть мексов и прочих латиносов известно хорошо, но все равно смешно)
08.11.2011 18:11+0400
Ни о чём →
Методичка по созданию продающего интернет магазина
Много статей и публикаций есть в сети. Однако я решил написать свою методичку.
Дело в том, что как Вы понимаете — интернет с большего не модерируеться. А устроен так, что хранит все и очень долго. По этому, то что было актуально год назад — не актуально сейчас.
Дело в том, что как Вы понимаете — интернет с большего не модерируеться. А устроен так, что хранит все и очень долго. По этому, то что было актуально год назад — не актуально сейчас.
08.11.2011 17:24+0400
Реклама →
Слушайте хабр по «радио»
На одном сайте, который мне внутренний голос нашептал одним воскресным утром, нашёл ссылку на RSS радио. В настройках помимо всего прочего есть и хабр, и тот самый сайт.
Мне понравилось.
Есть приложение для iPhone или iPad
Сделано в Центре речевых технологий.
Мне понравилось.
Есть приложение для iPhone или iPad
Сделано в Центре речевых технологий.
08.11.2011 16:12+0400
Песочница →
Автоматизированное резервное копирование рабочих станций Windows при помощи rsync и vshadow — Часть 1
Если у вас возникло желание поддерживать рабочие станиции в максимально «защищённом» состоянии, а так же насколько возможно «автоматизировать» этот процесс, то этот пост для вас.
Будет использоваться:
Немного batch файла
Немного Linux сервера
Немного Windows Server 2008 R2 и Групповых политик
Идея в следующем — незаметно от самого юзера, чтобы не нарушать его работу, делать еженедельное копирование его профиля, дабы исключить потерю данных, и сохранять его на сервере в максимально защищённом виде.
Для этого начнём с клиентской части. Мы используем shadow volume create — expand, дабы исключить проблему нечитания открытых пользователем файлов, таких как Outlook pst, или документов. Нам понадобится набор от Microsoft, который содержит vshadow — это Volume Shadow Copy Service SDK 7.2, который можно бесплатно скачать с серверов Microsoft, http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=23490.Нам понадобятся vshadow.exe и vshadow.pdb файлы из этого SDK. Внимание — они разные для 64-битных, и 32-битных систем.
После инсталляции их можно будет найти тут:
64-bit — %PROGRAMFILES%\Microsoft\VSSSDK72\TestApps\vshadow\bin\obj-chk\amd64
32-bit — %PROGRAMFILES%\Microsoft\VSSSDK72\TestApps\vshadow\bin\release-xp
Так же нам понадобится набор файлов из cwrsync под Windows — http://sourceforge.net/projects/sereds/files/cwRsync/4.2.0/cwRsync_4.2.0_Installer.zip/download
После инсталляции их можно будет найти тут:
%PROGRAMFILES%\cwRsync\bin
Складываем все файлы в одну папку, назовём её для удобства «Backup», и начинаем создавать файл, который будет запускать эту «машину смерти» — по факту, это простой batch файл, который будет отрабатывать все действия. Назовём его для удобства «backup.cmd»
Пишем в файл:
(неведома магия)
Эта часть «макаронного кода» делает shadow volume copy с C: и подключает её на O:, который мы и будем использовать для копирования, а потом тем же скриптом уберём. Теперь часть, которая отвечает за действия rsync:
(неведома магия)
Первой командой мы создаём директорию по имени компьютера %computername%
Второй командой мы копируем данные с временно подключенного диска O:\Users, с сохранением лог-файла.
Третьей командой мы копируем всю папку C:\Backup, для сохранности лога и самой программы.
Вот эта строка «backupusr@hostname::sbackupusr» — указывает на пользователя на принимающей стороне а так же хост принимающей стороны. (Будет рассмотрено во втором псто).
После этого нам необходимо отключить O: диск, так как если мы этого не сделаем, в следующий раз vshadow не сможет подключить туда копию, и копия будет делаться со старого O:\ диска всё время, не смотря на то, что файлы в папке пользователя уже давно изменились.
(неведома магия)
Это всё нужно сложить в обычный .cmd файл, как я уже указывал выше, сохранить его в папку Backup, где хранятся файлы rsync и vshadow, и запускать по мере надобности. Работает на Windows Vista, Windows 7, Windows XP, 32 и 64-bit
P.S: Конечно, будет необходимо поднять принимающую машину, в нашем случае на базе *nix, и создать разделы, которые будут защищены true-crypt в случае кражи сервера. Так же в дальнейшем эту папку можно запаковать в msi инсталлер для установки на все рабочие станции через Групповые Политики и использовать их же для создания Scheduled Tasks и закрытия доступа в Backup папку для юзера. Но это уже другая история.
Будет использоваться:
Немного batch файла
Немного Linux сервера
Немного Windows Server 2008 R2 и Групповых политик
Идея в следующем — незаметно от самого юзера, чтобы не нарушать его работу, делать еженедельное копирование его профиля, дабы исключить потерю данных, и сохранять его на сервере в максимально защищённом виде.
Для этого начнём с клиентской части. Мы используем shadow volume create — expand, дабы исключить проблему нечитания открытых пользователем файлов, таких как Outlook pst, или документов. Нам понадобится набор от Microsoft, который содержит vshadow — это Volume Shadow Copy Service SDK 7.2, который можно бесплатно скачать с серверов Microsoft, http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=23490.Нам понадобятся vshadow.exe и vshadow.pdb файлы из этого SDK. Внимание — они разные для 64-битных, и 32-битных систем.
После инсталляции их можно будет найти тут:
64-bit — %PROGRAMFILES%\Microsoft\VSSSDK72\TestApps\vshadow\bin\obj-chk\amd64
32-bit — %PROGRAMFILES%\Microsoft\VSSSDK72\TestApps\vshadow\bin\release-xp
Так же нам понадобится набор файлов из cwrsync под Windows — http://sourceforge.net/projects/sereds/files/cwRsync/4.2.0/cwRsync_4.2.0_Installer.zip/download
После инсталляции их можно будет найти тут:
%PROGRAMFILES%\cwRsync\bin
Складываем все файлы в одну папку, назовём её для удобства «Backup», и начинаем создавать файл, который будет запускать эту «машину смерти» — по факту, это простой batch файл, который будет отрабатывать все действия. Назовём его для удобства «backup.cmd»
Пишем в файл:
(неведома магия)
setlocal
if NOT "%CALLBACK_SCRIPT%"=="" goto :IS_CALLBACK
set SOURCE_VOLUME=C:
set DESTINATION_VOLUME=O:
set CALLBACK_SCRIPT=%~dpnx0
set TEMP_GENERATED_SCRIPT=GeneratedVarsTempScript.cmd
%~dp0\vshadow.exe -nw -p -script=%TEMP_GENERATED_SCRIPT% -exec=%CALLBACK_SCRIPT% %SOURCE_VOLUME%
del /f %TEMP_GENERATED_SCRIPT%
goto :EOF
:IS_CALLBACK
setlocal
call %TEMP_GENERATED_SCRIPT%
%~dp0\vshadow.exe -el=%SHADOW_ID_1%,%DESTINATION_VOLUME%
Эта часть «макаронного кода» делает shadow volume copy с C: и подключает её на O:, который мы и будем использовать для копирования, а потом тем же скриптом уберём. Теперь часть, которая отвечает за действия rsync:
(неведома магия)
setlocal
SET CWRSYNCHOME=C:\Backup\ (где папка с файлами rsync и vshadow)
SET CWOLDPATH=%PATH%
SET CYGWIN=nontsec
SET PATH=%CWRSYNCHOME%;%PATH%
SET HOME=С:\Backup\LOG\ (сюда будем сохранять логи)
SET RSYNC_PASSWORD=(тут пароль, который установлен на принимающем сервере rsync)
SET MY_NAME=%computername%
(теперь указываем, что копировать)
SET FS_SRC_HOME="/cygdrive/O/Users/" (используем именно в таком формате, указываем папку до "Users")
SET FS_SRC_BCK="/cygdrive/C/Backup/" (где файлы rsync, чтобы положить их вместе с логами на бекап сервер)
del /q С:\backup\log\*.log (стираем старые логи перед запуском)
(запускаем)
rsync -av --chmod=ug=rwx %FS_SRC_B2% backupusr@hostname::sbackupusr/%MY_NAME%
rsync -avhP --inplace --stats --del --modify-window=1 --log-file=%FS_SRC_BCK%DATA/backupwork.log --exclude-from=%FS_SRC_BCK%DATA/exclude %FS_SRC_HOME% backupusr@hostname::sbackupusr/%MY_NAME%/snapshot/
rsync -av %FS_SRC_BCK% backupusr@hostname::sbackupusr/%MY_NAME%/snapshot/Backup/
Первой командой мы создаём директорию по имени компьютера %computername%
Второй командой мы копируем данные с временно подключенного диска O:\Users, с сохранением лог-файла.
Третьей командой мы копируем всю папку C:\Backup, для сохранности лога и самой программы.
Вот эта строка «backupusr@hostname::sbackupusr» — указывает на пользователя на принимающей стороне а так же хост принимающей стороны. (Будет рассмотрено во втором псто).
После этого нам необходимо отключить O: диск, так как если мы этого не сделаем, в следующий раз vshadow не сможет подключить туда копию, и копия будет делаться со старого O:\ диска всё время, не смотря на то, что файлы в папке пользователя уже давно изменились.
(неведома магия)
SET HOME=%HOMEDRIVE%%HOMEPATH%
VSHADOW.EXE -ds=%SHADOW_ID_1%
Это всё нужно сложить в обычный .cmd файл, как я уже указывал выше, сохранить его в папку Backup, где хранятся файлы rsync и vshadow, и запускать по мере надобности. Работает на Windows Vista, Windows 7, Windows XP, 32 и 64-bit
P.S: Конечно, будет необходимо поднять принимающую машину, в нашем случае на базе *nix, и создать разделы, которые будут защищены true-crypt в случае кражи сервера. Так же в дальнейшем эту папку можно запаковать в msi инсталлер для установки на все рабочие станции через Групповые Политики и использовать их же для создания Scheduled Tasks и закрытия доступа в Backup папку для юзера. Но это уже другая история.
08.11.2011 15:14+0400
Бизнес →
Опыт регистрации ИП для ведения бизнеса связанного с ИТ
Однажды решив зарегистрироваться как ИП я столкнулся к несколькими неожиданными проблемами, о которых в интернете не могу найти практически никакой информации. Знакомая бухгалтер, консультирующая меня, тоже не слышала о подобных проблемах, поэтому решился на написание данного топика, чтобы помочь коллегам не попасть в подобную ситуацию.
Основные пункты «обязательной программы» регистрации много раз разжеваны в интернете, но пройдемся по ним заново, используя собственный опыт. Я специально не буду давать ссылки на программы, формы бланков и постановления, так как они быстро устаревают и смысла выкладывать их я не вижу. К тому же принятое заявление в Тамбове, могут не принять в другой налоговой и т.д.
Еще в моем случае нет наемных работников, это важно для прохождения «квеста».
Итак, что нужно сделать обязательно:
1. Заполняем «Заявление о государственной регистрации физического лица в качестве индивидуального предпринимателя» в 2х экземплярах. Там нет ничего сложного, нужно только забить свои данные и указать все виды деятельности по справочнику ОКВЭД. Я указывал все коды на 72, всего 6 кодов. Это коды связанные с ИТ технологиями. Хотя возможно, например, для прокладки кабеля могут потребоваться еще какие-то коды. Продажа чего-либо тоже в других кодах, но я оказываю только услуги. Заявление не подписываем, его попросят подписать при инспекторе.
2. Заполняем «Заявление о переходе на упрощенную систему налогообложения (форма № 26.2-1)». Распечатываем в 2х экземлярах. Я выбрал налог 6% с оборота.
3. Оплачиваем госпошлину в размере 800р за регистрацию ИП. Реквизиты Вашей инспекции есть на сайте налоговой.
4. Можно идти в налоговую и подавать сначала заявление на регистрацию, потом тут же переход на упрощенку.
5. В назначенный срок приходим для получения свидетельства и выписки. Проверяем все до буквы. В моем случае обнаружилась опечатка в адресе. Штраф за опечатку в заявлении 5000р. Будьте внимательны. Мне повезло, исправили бесплатно.
6. Пенсионный уведомляется автоматически из налоговой. Остается управление статистики, в которое нужно явиться со своим свидетельством и копией 2 основных страниц паспорта. Вам выдадут справку.
Далее начинается необязательная программа, но если Вы планируете работать с организациями и по безналу, скорее всего Вам это тоже потребуется.
7. Заказываем себе печать.
8. С печатью и всеми, уже имеющимися, документами приходим в выбранный Вами банк для открытия счета. В моем случае это был Сбербанк. Почему сбер? По привычке. И у знакомых есть опыт работы с ними, уже помогали разобраться в их онлайн клиент-банке.
9. Заполняем заявление о регистрации счета в банке и относим в налоговую. Вот этот пункт не сделал вовремя, теперь меня ждет штраф. По умолчанию он 5000р, но мне обещали уменьшить до 1000р, если я напишу ходатайство на начальника.
10. Аналогично уведомляем пенсионный фонд об открытии счета.
А теперь самое интересное о чем не нашел никакой информации в интернете.
11. Уведомляем Роспотребнадзор о начале предпринимательской деятельности. Тут я все таки дам ссылку, по ней далее можно выйти и на правила и прочее. В этой конторе нужно регистрироваться только если Ваша деятельность подпадает под их список, в моем случае попал код «Техническое обслуживание и ремонт офисных машин и вычислительной техники, включая контрольно-кассовую технику 72.5*». Так же про этот момент не знал никто их знакомых, не сказали в налоговой, хотя я спрашивал. Должны назначить некий штраф за просрочку, сейчас поеду сдаваться. Дозвонится к ним для получения комментариев оказалось не просто.
Надеюсь Вы не повторите моих ошибок, всем удачи в бизнесе.
UPD. Добавил еще пункт про госпошлину.
Основные пункты «обязательной программы» регистрации много раз разжеваны в интернете, но пройдемся по ним заново, используя собственный опыт. Я специально не буду давать ссылки на программы, формы бланков и постановления, так как они быстро устаревают и смысла выкладывать их я не вижу. К тому же принятое заявление в Тамбове, могут не принять в другой налоговой и т.д.
Еще в моем случае нет наемных работников, это важно для прохождения «квеста».
Итак, что нужно сделать обязательно:
1. Заполняем «Заявление о государственной регистрации физического лица в качестве индивидуального предпринимателя» в 2х экземплярах. Там нет ничего сложного, нужно только забить свои данные и указать все виды деятельности по справочнику ОКВЭД. Я указывал все коды на 72, всего 6 кодов. Это коды связанные с ИТ технологиями. Хотя возможно, например, для прокладки кабеля могут потребоваться еще какие-то коды. Продажа чего-либо тоже в других кодах, но я оказываю только услуги. Заявление не подписываем, его попросят подписать при инспекторе.
2. Заполняем «Заявление о переходе на упрощенную систему налогообложения (форма № 26.2-1)». Распечатываем в 2х экземлярах. Я выбрал налог 6% с оборота.
3. Оплачиваем госпошлину в размере 800р за регистрацию ИП. Реквизиты Вашей инспекции есть на сайте налоговой.
4. Можно идти в налоговую и подавать сначала заявление на регистрацию, потом тут же переход на упрощенку.
5. В назначенный срок приходим для получения свидетельства и выписки. Проверяем все до буквы. В моем случае обнаружилась опечатка в адресе. Штраф за опечатку в заявлении 5000р. Будьте внимательны. Мне повезло, исправили бесплатно.
6. Пенсионный уведомляется автоматически из налоговой. Остается управление статистики, в которое нужно явиться со своим свидетельством и копией 2 основных страниц паспорта. Вам выдадут справку.
Далее начинается необязательная программа, но если Вы планируете работать с организациями и по безналу, скорее всего Вам это тоже потребуется.
7. Заказываем себе печать.
8. С печатью и всеми, уже имеющимися, документами приходим в выбранный Вами банк для открытия счета. В моем случае это был Сбербанк. Почему сбер? По привычке. И у знакомых есть опыт работы с ними, уже помогали разобраться в их онлайн клиент-банке.
9. Заполняем заявление о регистрации счета в банке и относим в налоговую. Вот этот пункт не сделал вовремя, теперь меня ждет штраф. По умолчанию он 5000р, но мне обещали уменьшить до 1000р, если я напишу ходатайство на начальника.
10. Аналогично уведомляем пенсионный фонд об открытии счета.
А теперь самое интересное о чем не нашел никакой информации в интернете.
11. Уведомляем Роспотребнадзор о начале предпринимательской деятельности. Тут я все таки дам ссылку, по ней далее можно выйти и на правила и прочее. В этой конторе нужно регистрироваться только если Ваша деятельность подпадает под их список, в моем случае попал код «Техническое обслуживание и ремонт офисных машин и вычислительной техники, включая контрольно-кассовую технику 72.5*». Так же про этот момент не знал никто их знакомых, не сказали в налоговой, хотя я спрашивал. Должны назначить некий штраф за просрочку, сейчас поеду сдаваться. Дозвонится к ним для получения комментариев оказалось не просто.
Надеюсь Вы не повторите моих ошибок, всем удачи в бизнесе.
UPD. Добавил еще пункт про госпошлину.
08.11.2011 14:55+0400
Реклама →
Штурм AppStore: Незавершенная история “растянутого” пазла
По запросу “Puzzle” в яблочном магазине сейчас выдает очень много сходных жанров, но очень мало пазлов (в классическом понимании этого слова). Так получилось, что наше первое приложение отправилось на рынок покорять именно эту категорию, и я верю, что у нас получилось исправить ситуацию.
Для нас, честно говоря, осталось неизвестным, что именно вдохновило нас на создание такого приложения, потому что любителей мозаики в компании оказалось немало, и немало было собранных пазлов схожего типа. Хотя наша команда твердо уверена в том, что именно наш Stretch the Puzzle получился уникальным и крутым!
08.11.2011 11:04+0400
Песочница →
Автоматическое тестирование в PHP
Работа по TDD имеет очевидные преимущества: у разработчика всегда есть чётко описанная в виде теста цель, и он сразу узнает, когда она будет достигнута.
Тем не менее, есть и некоторые издержки: необходимо постоянно запускать один и тот же тест при изменениях в нем или в соответствующем классе, чтобы не пропустить тот самый момент истины. Вроде бы не такая уж и большая проблема, но постоянное переключение в консоль для проверки сделанных изменений на работоспособность, да и вообще помнить о необходимости этих манипуляций — лишнее рассеивание внимания.
Далее о том, как все это дело автоматизировать.
Тем не менее, есть и некоторые издержки: необходимо постоянно запускать один и тот же тест при изменениях в нем или в соответствующем классе, чтобы не пропустить тот самый момент истины. Вроде бы не такая уж и большая проблема, но постоянное переключение в консоль для проверки сделанных изменений на работоспособность, да и вообще помнить о необходимости этих манипуляций — лишнее рассеивание внимания.
Далее о том, как все это дело автоматизировать.
08.11.2011 05:30+0400
Песочница →
Как я устанавливал Openmeetings
Что это
OpenMeetings — это многопользовательское браузерное программное обеспечение, которое позволяет вам мгновенно создать конференцию в Интернете.
Вы можете использовать Ваш микрофон или веб-камеру, обмениваться документами на досках объявлений.
Она доступна как сетевой сервис, но можно загрузить и установить пакет с сервера без каких-либо ограничений в использовании или количестве пользователей.
Исходные данные
У нас на предприятии в качестве системы дистанционного обучения (далее СДО) используется Moodle. Она нас полностью устраивает, за исключением отсутствия живого общения преподавателя и обучающегося.
Поэтому было принято решение к действующей СДО добавить приложение видео-конференций. Выбор свой остановил на Openmeetings, поскольку именно эта система интегрируется с Moodle и для этого даже есть специальный модуль.
Устанавливать систему решил на CentOS. Изрядно погуглив в поисках мануала по установке, и методом проб и ошибок понял, что все инструкции, что есть в сети, либо устаревшие, либо неполные.
Все грабли, на которые я наткнулся в процессе под катом
08.11.2011 04:14+0400
Песочница →
Cкоростная синхронизация миллиарда файлов
Есть несколько идентичных серверов (4 ноды) на Amazon EC2. Каждый генерирует и хранит у себя на диске кэш, который хотелось бы синхронизировать. Но простой rsync тут не подойдет — файлов несколько миллиардов, nfs — слишком медлителен, и т. д. Полный список рассмотренных вариантов с пояснениями ниже.
К тому же, время от времени нужно удалять устаревшие файлы сразу на всех серверах, что пока делается вручную и занимает несколько суток. Вопрос наиболее быстрой для такого Use Case файловой системы планирую описать позже. Оговорюсь только, что по нескольким причинам была выбрана XFS.
После теста нескольких кластерных технологий и файловых систем, по совету старшего товарища, решили использовать тот же rsync, но в связке с inotify. Немного поискав в интернете готовое такое решение, дабы не изобретать велосипед, наткнулся на csyncd, inosync и lsyncd. На хабре уже была статья о csyncd, но он тут не подходит, т.к. хранит список файлов в базе SQLite, которая вряд-ли сможет сносно работать даже с миллионом записей. Да и лишнее звено при таких объемах ни к чему. А вот lsyncd оказался именно тем, что нам и было нужно.
К тому же, время от времени нужно удалять устаревшие файлы сразу на всех серверах, что пока делается вручную и занимает несколько суток. Вопрос наиболее быстрой для такого Use Case файловой системы планирую описать позже. Оговорюсь только, что по нескольким причинам была выбрана XFS.
После теста нескольких кластерных технологий и файловых систем, по совету старшего товарища, решили использовать тот же rsync, но в связке с inotify. Немного поискав в интернете готовое такое решение, дабы не изобретать велосипед, наткнулся на csyncd, inosync и lsyncd. На хабре уже была статья о csyncd, но он тут не подходит, т.к. хранит список файлов в базе SQLite, которая вряд-ли сможет сносно работать даже с миллионом записей. Да и лишнее звено при таких объемах ни к чему. А вот lsyncd оказался именно тем, что нам и было нужно.
08.11.2011 03:18+0400
Реклама →
История разработки игры Demolition Master (iOS
Работа над первой версией игры началась в июле 2009 года. В тот момент уже были аналогичные проекты с похожей механикой под PC но еще не было для iOS. Сама идея нам показалась интересной и перспективной, поэтому мы с большим удовольствием приступили к разработке.
Предварительные сроки, которые мы ставили для себя – это 4-5 месяцев. Т.е. выход игры был запланирован на октябрь – ноябрь 2009 года.
Но разумеется, что просчитывая сроки мы не учли много важных факторов. Например такой, как отсутствие опыта работы с физикой.
Работа началась с написания физического движка. Данные попытки продлились ровно 3 недели и закончились тем, что смотря на результаты, мы понимали, что продолжать писать свой движок смысла нет. Это будет гораздо дольше и в итоге дороже.
Последующая неделя была потрачена на поиски уже готовых аналогов физического движка, который можно было переделать под свои нужды. В итоге выбор пал на open source'сный движок ODE.
Еще через 2 недели у нас уже был готов первый тестовый уровень, в котором можно было ставить на балки квадратики и, нажимая на кнопку их взрывать. После получения этих первых результатов игра была запущена в производство.
Параллельно с кодом стартовали графика и левел дизайн.
По графике мы довольно быстро определились со стилистикой фонов и очень долго мучились с меню и логотипом. В общей сложности мы перебрали 5-ть вариантов меню. На это все ушло немного больше месяца работы художника. Последние штрихи по логотипу доделывали за 2 недели перед отправкой игры в Apple.
Отдельно можно отметить поиск иконки. В итоге мы сделали около 30-ти различных вариантов.
Стараясь найти оптимальное количество игровых уровней для первой версии мы остановились на 7-ми локациях в которой было бы по 15 уровней.
Т.е. в сумме в игре оказалось 105 левелов. В проморолике мы гордо назвали это “more than 100 game levels”:)
В ходе работ по кодингу всплывали ожидаемые проблемы – не хватало мощностей девайсов.
Дело в том, что игра полностью писалась на OpenGL. Желая получить хорошую картинку мы часто имели трудности с получением нормального количества FPS на уровнях, где было много элементов (более 20-ти балок). В итоге нам пришлось упростить буквально каждый 3й уровень, который уже был создан.
Возможно, мы могли бы избежать такой проблемы, если бы изначально писали игру с помощью Cocos2d. Но об этом мы подумали в тот момент, когда уже более половины игры было сделано. Что же, еще одна шишка.
Для более комфортного создания уровней был написан простой редактор.
По ходу разработки следующих версий игры мы его немного усовершенствовали, но в целом на вид он остался таким же. Невзрачным, но вполне функциональным.
В первых числах ноября мы имели вполне рабочую и достойную версию игры Demolition Master, которую собирались отправить на Apple'овский апрув через 2-3 недели.
Но этого не случилось, по причине сюрприза в виде выхода игры Implode, которая появилась 6-го ноября 2009 года.
Буквально сразу данная игра себя начала отлично чувствовать в Top Paid рейтингах и нам оставалось только порадоваться за наших коллег.
С нашей же стороны было принято решение доработать и улучшить Demolition Master.
В итоге это вылилось еще в дополнительные 2 месяца разработки.
Первая версия игры увидела мир уже в 2010 году, а именно 20-го января.
Видео первой версии:
Аналогичного промоушена со стороны Apple (как это было с Implode), мы конечно же не получили. Но в целом чего обижаться – кто первый встал, того и тапки.
Сумасшедших продаж не последовало, но игру мы забрасывать не собирались.
В итоге за 2010 год iPhone версия игры получила 3 обновления. В каждом из них добавлялись новые локации и небольшие усовершенствования.
Также в апреле 2010 года мы выпустили Demolition Master под iPad. Она была сделана в рекордные для нас сроки – 3 недели (в марте 2010 года).
Далее были апдейты уже двух версий одновременно.
Однажды, мы сделали игру бесплатной. На следующий день оказались в топ 50 free приложений в US AppStore и в топ 10 во многих других странах.
После этого наши серваки, на которых хранятся скоры, начали подвисать. Статистика показывала, что за сутки было свыше 1,5 млн попыток пройти любой из уровней (и это только тех пользователей, у которых был доступ к интернету).
Потом вышло глобальное обновление игры и она немного изменилась в названии.
Вместо Demolition Master стала называться Demolition Master: Space Quest.
В ней мы добавили новую локацию – Луну.
Кроме названия, игра получила очень много нового: новые локации, новый выбор уровней, интеграцию с социальными сетями.
Разумеется мы не могли пройти мимо Retina дисплея в момент его выхода и усовершенствовали графику под нужное расширение.
Также к игре был создан новый ролик:
В январе 2011 игра появилась в Mac AppStore, где в целом показала себя тоже не плохо (с точки зрения продаж).
На данный момент суммарное количество скачиваний всех версий Demolition Master (2D) превысило 1 млн. Однако, к сожалению, для нас, более 80% из них – бесплатные закачки.
Если подводить итоги по этому проекту, то можно сказать, что он был довольно успешным. Кроме получения прибыли с него, на нас навалилось много полезного опыта, который уже трансформировали в новый проект Demolition Master 3D.
Также сейчас в активной стадии препродакшена находится продолжение игры (а точнее совсем новая игра), которая увидит свет через пол года. Но это уже другая история…
Ознакомиться с игрой Demolition Master можно по следующим ссылкам:
Demolition Master (iPhone): App Store
Demolition Master HD (iPad): App Store
Demolition Master (Mac): Mac App Store
PS:
08.11.2011 02:45+0400
Юмор →
Принцип матрешки
Задумывались ли Вы насколько далеко можно зайти в желании виртуализировать всё и вся? Какие выгоды приносит виртуализация и что мы при этом теряем?
Данная статья эти вопросы решать не будет, но покажет куда можно зайти при использовании виртуализации.
Теперь традиционная картинка, которая отражает краткое содержание статьи.
Данная статья эти вопросы решать не будет, но покажет куда можно зайти при использовании виртуализации.
Теперь традиционная картинка, которая отражает краткое содержание статьи.
08.11.2011 01:01+0400