Яндекс.Метрика

    Юмор

    Трудовые будни геймдевелоперов — миф #1

    Миф #1

    «На самом деле — в работе геймдевелоперов всё скучно и не весело».


    Проект Менеджер: «Нужен промо-банер.»


    Геймдизайнер: *пишет подробное ТЗ*, выдержка: "… с изображением сексуальной девушки, стоящей рядом с мотоциклом, (спортбайком)..."


    Художник: «Самый важный вопрос, который здесь возникает — это размер груди у девушки. Я слышал, что в разных игровых зонах (США, Европа, СНГ, Азия) у игровой аудитории существует различное отношение к этому вопросу, только не помню, у кого какое. Прошу не счесть за праздность, просто применительно к одному из главных промо изображений не хочется прогадать.»


    Геймдизайнер: «Хорошо, поищу маркетинговые исследования о размере груди в подобных картинках, применительно к компьютерным играм, для русскоязычной аудитории.»

    Результат поиска под хаброкатом…

    Юмор

    Трудовые будни геймдевелоперов — миф #1

    Миф #1

    «На самом деле — в работе геймдевелоперов всё скучно и не весело».


    Проект Менеджер: «Нужен промо-банер.»


    Геймдизайнер: *пишет подробное ТЗ*, выдержка: "… с изображением сексуальной девушки, стоящей рядом с мотоциклом, (спортбайком)..."


    Художник: «Самый важный вопрос, который здесь возникает — это размер груди у девушки. Я слышал, что в разных игровых зонах (США, Европа, СНГ, Азия) у игровой аудитории существует различное отношение к этому вопросу, только не помню, у кого какое. Прошу не счесть за праздность, просто применительно к одному из главных промо изображений не хочется прогадать.»


    Геймдизайнер: «Хорошо, поищу маркетинговые исследования о размере груди в подобных картинках, применительно к компьютерным играм, для русскоязычной аудитории.»

    Результат поиска под хаброкатом…

    Open Source

    WTFBPPL: одна из наиболее удачных лицензий для ПО с открытым кодом

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

    Язолъ

    Biglion — интернет-мошенники

    Добрый день!

    Я хотел бы пожаловаться на интернет-мошенников biglion.ru.
    16 октября 2011 года мы приобрели 2 купона в компании Биглион для занятий теннисом. В условиях акции явно было указано, что один человек может приобрести любое количество купонов. Однако оказание услуги по второму купону оказалось невозможно, — это видимо очень невыгодно заведению, и мы решили вернуть второй купон — оказание услуги по нему было невозможно не по нашей вине.

    Юмор

    Мекс ищет работу в США

    Регистрировался на американском сайте для поиска работы, увидел такое:
    (то, что американцы не очень любят и не очень хотят видеть мексов и прочих латиносов известно хорошо, но все равно смешно)

    Юмор

    Мекс ищет работу в США

    Регистрировался на американском сайте для поиска работы, увидел такое:
    (то, что американцы не очень любят и не очень хотят видеть мексов и прочих латиносов известно хорошо, но все равно смешно)

    Ни о чём

    Методичка по созданию продающего интернет магазина

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

    Реклама

    Слушайте хабр по «радио»

    На одном сайте, который мне внутренний голос нашептал одним воскресным утром, нашёл ссылку на RSS радио. В настройках помимо всего прочего есть и хабр, и тот самый сайт.
    Мне понравилось.

    Есть приложение для iPhone или iPad
    image
    Сделано в Центре речевых технологий.

    Песочница

    Автоматизированное резервное копирование рабочих станций 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»

    Пишем в файл:

    (неведома магия)

    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 папку для юзера. Но это уже другая история.

    Бизнес

    Опыт регистрации ИП для ведения бизнеса связанного с ИТ

    Однажды решив зарегистрироваться как ИП я столкнулся к несколькими неожиданными проблемами, о которых в интернете не могу найти практически никакой информации. Знакомая бухгалтер, консультирующая меня, тоже не слышала о подобных проблемах, поэтому решился на написание данного топика, чтобы помочь коллегам не попасть в подобную ситуацию.
    Основные пункты «обязательной программы» регистрации много раз разжеваны в интернете, но пройдемся по ним заново, используя собственный опыт. Я специально не буду давать ссылки на программы, формы бланков и постановления, так как они быстро устаревают и смысла выкладывать их я не вижу. К тому же принятое заявление в Тамбове, могут не принять в другой налоговой и т.д.
    Еще в моем случае нет наемных работников, это важно для прохождения «квеста».
    Итак, что нужно сделать обязательно:
    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. Добавил еще пункт про госпошлину.

    Реклама

    Штурм AppStore: Незавершенная история “растянутого” пазла



    По запросу “Puzzle” в яблочном магазине сейчас выдает очень много сходных жанров, но очень мало пазлов (в классическом понимании этого слова). Так получилось, что наше первое приложение отправилось на рынок покорять именно эту категорию, и я верю, что у нас получилось исправить ситуацию.
    Для нас, честно говоря, осталось неизвестным, что именно вдохновило нас на создание такого приложения, потому что любителей мозаики в компании оказалось немало, и немало было собранных пазлов схожего типа. Хотя наша команда твердо уверена в том, что именно наш Stretch the Puzzle получился уникальным и крутым!

    Песочница

    Автоматическое тестирование в PHP

    Работа по TDD имеет очевидные преимущества: у разработчика всегда есть чётко описанная в виде теста цель, и он сразу узнает, когда она будет достигнута.
    Тем не менее, есть и некоторые издержки: необходимо постоянно запускать один и тот же тест при изменениях в нем или в соответствующем классе, чтобы не пропустить тот самый момент истины. Вроде бы не такая уж и большая проблема, но постоянное переключение в консоль для проверки сделанных изменений на работоспособность, да и вообще помнить о необходимости этих манипуляций — лишнее рассеивание внимания.

    Далее о том, как все это дело автоматизировать.

    Головоломки

    Хабр — это:

    Проголосовало 122 человека. Воздержался 21 человек.

    Песочница

    Как я устанавливал Openmeetings

    Что это


    OpenMeetings — это многопользовательское браузерное программное обеспечение, которое позволяет вам мгновенно создать конференцию в Интернете.
    Вы можете использовать Ваш микрофон или веб-камеру, обмениваться документами на досках объявлений.
    Она доступна как сетевой сервис, но можно загрузить и установить пакет с сервера без каких-либо ограничений в использовании или количестве пользователей.

    Исходные данные


    У нас на предприятии в качестве системы дистанционного обучения (далее СДО) используется Moodle. Она нас полностью устраивает, за исключением отсутствия живого общения преподавателя и обучающегося.
    Поэтому было принято решение к действующей СДО добавить приложение видео-конференций. Выбор свой остановил на Openmeetings, поскольку именно эта система интегрируется с Moodle и для этого даже есть специальный модуль.

    Устанавливать систему решил на CentOS. Изрядно погуглив в поисках мануала по установке, и методом проб и ошибок понял, что все инструкции, что есть в сети, либо устаревшие, либо неполные.

    Все грабли, на которые я наткнулся в процессе под катом

    Песочница

    Cкоростная синхронизация миллиарда файлов

    Есть несколько идентичных серверов (4 ноды) на Amazon EC2. Каждый генерирует и хранит у себя на диске кэш, который хотелось бы синхронизировать. Но простой rsync тут не подойдет — файлов несколько миллиардов, nfs — слишком медлителен, и т. д. Полный список рассмотренных вариантов с пояснениями ниже.

    К тому же, время от времени нужно удалять устаревшие файлы сразу на всех серверах, что пока делается вручную и занимает несколько суток. Вопрос наиболее быстрой для такого Use Case файловой системы планирую описать позже. Оговорюсь только, что по нескольким причинам была выбрана XFS.

    После теста нескольких кластерных технологий и файловых систем, по совету старшего товарища, решили использовать тот же rsync, но в связке с inotify. Немного поискав в интернете готовое такое решение, дабы не изобретать велосипед, наткнулся на csyncd, inosync и lsyncd. На хабре уже была статья о csyncd, но он тут не подходит, т.к. хранит список файлов в базе SQLite, которая вряд-ли сможет сносно работать даже с миллионом записей. Да и лишнее звено при таких объемах ни к чему. А вот lsyncd оказался именно тем, что нам и было нужно.

    Реклама

    История разработки игры Demolition Master (iOS

    image

    Работа над первой версией игры началась в июле 2009 года. В тот момент уже были аналогичные проекты с похожей механикой под PC но еще не было для iOS. Сама идея нам показалась интересной и перспективной, поэтому мы с большим удовольствием приступили к разработке.
    Предварительные сроки, которые мы ставили для себя – это 4-5 месяцев. Т.е. выход игры был запланирован на октябрь – ноябрь 2009 года.

    Но разумеется, что просчитывая сроки мы не учли много важных факторов. Например такой, как отсутствие опыта работы с физикой.

    Работа началась с написания физического движка. Данные попытки продлились ровно 3 недели и закончились тем, что смотря на результаты, мы понимали, что продолжать писать свой движок смысла нет. Это будет гораздо дольше и в итоге дороже.

    Последующая неделя была потрачена на поиски уже готовых аналогов физического движка, который можно было переделать под свои нужды. В итоге выбор пал на open source'сный движок ODE.

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

    Параллельно с кодом стартовали графика и левел дизайн.

    image

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

    image

    Отдельно можно отметить поиск иконки. В итоге мы сделали около 30-ти различных вариантов.

    image

    Стараясь найти оптимальное количество игровых уровней для первой версии мы остановились на 7-ми локациях в которой было бы по 15 уровней.

    Т.е. в сумме в игре оказалось 105 левелов. В проморолике мы гордо назвали это “more than 100 game levels”:)

    В ходе работ по кодингу всплывали ожидаемые проблемы – не хватало мощностей девайсов.

    Дело в том, что игра полностью писалась на OpenGL. Желая получить хорошую картинку мы часто имели трудности с получением нормального количества FPS на уровнях, где было много элементов (более 20-ти балок). В итоге нам пришлось упростить буквально каждый 3й уровень, который уже был создан.

    image

    Возможно, мы могли бы избежать такой проблемы, если бы изначально писали игру с помощью Cocos2d. Но об этом мы подумали в тот момент, когда уже более половины игры было сделано. Что же, еще одна шишка.

    Для более комфортного создания уровней был написан простой редактор.

    image

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

    В первых числах ноября мы имели вполне рабочую и достойную версию игры 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.

    image

    В ней мы добавили новую локацию – Луну.

    Кроме названия, игра получила очень много нового: новые локации, новый выбор уровней, интеграцию с социальными сетями.

    Разумеется мы не могли пройти мимо Retina дисплея в момент его выхода и усовершенствовали графику под нужное расширение.

    Также к игре был создан новый ролик:



    В январе 2011 игра появилась в Mac AppStore, где в целом показала себя тоже не плохо (с точки зрения продаж).

    На данный момент суммарное количество скачиваний всех версий Demolition Master (2D) превысило 1 млн. Однако, к сожалению, для нас, более 80% из них – бесплатные закачки.

    image
    Если подводить итоги по этому проекту, то можно сказать, что он был довольно успешным. Кроме получения прибыли с него, на нас навалилось много полезного опыта, который уже трансформировали в новый проект Demolition Master 3D.

    Также сейчас в активной стадии препродакшена находится продолжение игры (а точнее совсем новая игра), которая увидит свет через пол года. Но это уже другая история…

    Ознакомиться с игрой Demolition Master можно по следующим ссылкам:

    Demolition Master (iPhone): App Store

    Demolition Master HD (iPad): App Store

    Demolition Master (Mac): Mac App Store


    PS: Велосипед не мой, я просто Статья размещена по просьбе AlexGRV. Просьба все улучшения кармы направлять в его адрес.

    Юмор

    Принцип матрешки

    Задумывались ли Вы насколько далеко можно зайти в желании виртуализировать всё и вся? Какие выгоды приносит виртуализация и что мы при этом теряем?
    Данная статья эти вопросы решать не будет, но покажет куда можно зайти при использовании виртуализации.

    Теперь традиционная картинка, которая отражает краткое содержание статьи.