Thursday, December 30, 2010

iOS

Внезапно стал обладателем iPod Touch. В рамках самообучения Objective-C для нужд компании. Раньше Iphone-подобных девайсов у меня не было. Штука классная, скажу я вам. В очередной раз убедился, что о вкусе айФонов можно говорить только с теми у кого они есть,  Пока не пощупаешь эту систему - не веришь насколько она удобная, быстрая, точно реагирующая на касания пальцев к экрану и т.п.

Thursday, December 16, 2010

Humble Bundle number 2

Отличная новость. Хотя уже пару дней как не новость, но ещё есть время.
http://www.humblebundle.com/
Это своего рода пакет из 5-ти отличных кроссплатформенных игр, написанных независимыми разработчиками. То что в интернетах проходит под тегом indie game. То есть разработчики конечно же хотят поиметь своих денег, но за ними обычно не стоят огромные корпорации с легионами менеджеров, дизайнеров и рекламщиков.
Смысл акции простой: заплати сколько сможешь и игры твои. Хоть 5 долларов, хоть 100500. Правда если указать сумму меньшую чем 1$, тебе покажут картинку с бедным разработчиком и намекнут, что он тоже хочет кушать. Кстати по последним графикам, линуксоиды платят ничуть не меньше чем владельцы Эппл.
А игры у нас следующие:

  • Machinarium
  • Braid
  • Osmos
  • Cortex Command
  • Revenge of the Titans
Первые три довольно известны и популярны, две остальные интересны, но до сих пор активно разрабатываются. О них я не очень слышал и поиграть сам много не успел, но люди говорят что игры отличные.

Monday, December 13, 2010

Сравнить int и str в шаблоне Django

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

{% ifequal my_integer|slugify my_string %}
    Источник на английском.

    Tuesday, December 7, 2010

    SQL vs NoSQL

    В последнее время пишу много кода для одной штуки на Django, которая работает с CouchDB. Мне очень нравится идея документо-ориентированной базы данных, но всё, таки признаю, что евангелистом NoSQL подхода мне похоже не стать. Во-первых, отказываясь от SQL, ты не используешь половину возможностей уже реализованых в Django, во-вторых, чёткая таблица с данными мне пока кажется логичнее, что-ли, чем документы, которые один на другой не похожи.
    Хотя, возможно это просто недостаток опыта и подходящий ситуаций.

    P.S.  Уползаю писать очередную map\reduce функцию для CouchDB на Javascript. По другому, выборку из базы данных не сделать, увы)

    Monday, November 22, 2010

    Гильдии и кланы

    Во всяких онлайн-игрушках обязательно присутствют такие формы объединения игроков как кланы или гильдии.
    Насколько я помню свои уроки истории, гильдии всегда образовывались по какому-то профессиональному признаку: гильдии купцов, гильдии портных и т.п. а кланы по родственным связям.
    В играх же мы не наблюдаем ни признаков первого ни второго.
    Но можно сделать это так. С натяжкой можно признать, что совершенно незнакомые игроки могут объединяться в кланы или в какие-нибудь "семьи", а вот для гильдии я бы сделал отдельный чат и список, наверное глобальный, общемировой, в который имеют доступ только представители твоей профессии\класса.

    просто тест, не обращайте внимания пожалуйста.

    Thursday, November 18, 2010

    Внимание, конкурс на Steampunker.ru

    Аудитории тут у меня нет, но тем не менее вот вам конкурс

    Большой конкурс дизайна и моддинга - "Стимпанк пространство" (Часть 1 - настольные предметы)
    Портал Steampunker.ru и компания DREMEL при информационной поддержке журнала "Популярная Механика" и OCClub начинают большой конкурс дизайна и моддинга - "Стимпанк-пространство". Первая часть конкурса посвящена вещам, которые могут быть обнаружены на столе настоящего стимпанка. Отсюда и название - "Настольные предметы".


    Условия конкурса


    Bagger 288 - Tribute to the Beast!

    Ну уж очень люблю этот клип и исполнителя

    Wednesday, November 17, 2010

    "Полосатая" таблица

    Я вообще не большой специалист писать длинные простыни текстов с примерами.
    Но мелкие заметки - почему бы и нет.

    Простейший способ сделать табличную расцветку типа зебра в современных браузерах:

    #id-name table tr {
    background:#fff;
    }
    
    #id-name table tr:nth-child(odd) {
    background:#5dc8cd;
    }
    
    
    это удобнее, на мой взгляд, чем олдскульный метод http://www.alistapart.com/articles/zebratables/
    Хотя конечно стандартный способ более универсальный, но я считаю что совместимость со старыми браузерами должна употребляться там где она уместна, а не везде и всегда.

    ЗЫ. Пока писал заметку, решил озаботиться красивым отображением кода. Нашёл хороший способ для платформы Blogspot. Спасибо автору.

    Monday, November 1, 2010

    Мимоходом

    Есть у меня пара -тройка десятков ежедневных новостей о дизайне в RSS-ридере. Каждый раз смотрю и умиляюсь. Кажется у этих дизайнеров никогда не возникало серьёзных проблем с окружающим миром. Все их поделия красивые, гладенькие, оригинальные, но совершенно бесполезные. Ну, или полезные, но удобные в использовании только в условиях на картинке концепта сферическим конём в вакууме. Поэтому дальше концептов никогда дело не доходит. И хорошо. А всех этих дизайнеров отправить бы в бедную страну или хотя бы в обычный спальный район среднестатического пост-СНГшного или израильского города. Пусть реально нужные вещи попробуют попридумывать.

     

    Ностальгия

    У кого-то любимой игрой был Марио, у кого-то Танчики. А мне в своё время больше всего запомнился Secret Agent: Mission for Red River 

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

    Чтобы не засорять френдленту и не плодить сущности: линк на игру и линк на скриншоты для ностальгирующих.

    Wednesday, October 20, 2010

    Планы на ближайшее время

    1.Написать движок и перенести свой блог на http://novus42.com
    2.Нарисовать примерный шаблон с навигацией по будущему проекту включающую в себя раздел "Форум", "Программы", "Статьи" и т.п.
    3.Написать свой форум. Понимаю что их уже 100500, но в моём случае это тренировка работы с Django и Python.
    4.Начать привлекать народ к проекту.

    Tuesday, September 28, 2010

    Всё-таки игры

    Наконец нашёл в себе силы признаться, что игры я люблю. Играть в игры, размышлять про игры, придумывать разные игровые механики. Медленно пишу концепт для игры которая скорее всего никогда не выйдет на экраны, но зато на бумаге получается очень интересной. :)
    Конечно же это ММО. Игра должна получиться долгоиграющей и вылизанной с точки зрения играбельности.
    Вот придумалась такая штука:
    В ВоВ, например, представители Орды и Альянса не могут между собой общаться. Точнее написать то можно, но вот прочитать представитель противоположной фракции это не сможет.
    На самом деле, когда речь заходит о фракциях в игре, мне ближе подход Линейки, где все могли разговаривать со всеми, а кто с кем воюет определяется игроками. В ЕК2 же, был специальный квест для смены фракции. Но это решает проблему лишь частично.
    Идеальным вариантом была бы наверное возможность разговаривать с врагами на определённых условиях.
    Скажем пишет добрый Паладин злому Чернокнижнику: "Как дела?" и в зависимости от репутации фракций или конкретных персонажей друг к другу, Чернокнижник может получить или "Как дела?" или "Сдохни, тварь" или "Я рад тебя видеть мой дорогой друг", ну или любой другой вариант по шкале "Уважение - Презрение".
    Сложности реализации: охуеть как сложно. Обычно игроки в онлайн игры используют свой собственный, ни на что не похожий сленг и сокращения, распарсить их и привести автоматически в удобоваримый вид практически нереально.
    я ж сказал что игра будет клёвой на бумаге. :)

    Sunday, September 26, 2010

    MySQL и Mac OS X

    По умолчанию, инсталляция MySQL работает без файлика /etc/my.cnf
    Но вот понадобилось мне потестить базу с нестандартной конфигурацией. Файлы с тестовыми конфигами под разные конфигурации лежат в /usr/local/mysql/support-files/
    Берём нужный, переписываем его в /etc/my.cnf и перезапускаем сервер.
    Пыщь!
    Должно работать.

    Wednesday, September 22, 2010

    Ехала игра через игру

    Как то прослоупочил отличную новость из мира WoW.
    Чтобы геймерам было не скучно играть во время игры в ВоВ, в Катаклизме сделали новый квест:
    Peacebloom vs Ghouls
    Для фанатов Plants vs Zombies, коим я тоже являюсь.


    Источник

    Monday, March 22, 2010

    Небольшой Lifehack про торренты

    Недавно открыл интересный сервис Dropbox.
    Фишка сервиса в возможности хранить данные на сервере. Данные в свою очередь синхронизируются между несколькими компьютерами, на которых установлена маленькая программка которая все эти изменения отслеживает и вовремя поднимает в сеть.
    Простыми словами - если тебе на работе понадобилось перекинуть файло домой, то можно его просто кинуть в папку, которую мониторит Dropbox и файл этот тут же окажется на домашнем компьютере.
    Так вот, я нашёл эту фишку очень удобной, для добавления закачек в домашний торрент с работы.
    Показываю на примере uTorrent:

    Почти все торрент клиенты умеют мониторить определённую папку и автоматически добавлять на закачку то что в эту папку попадает. Файлы которые я скачиваю на работе - я сразу кидаю в эту папку и домашний торрент начинает их скачивать. После того как торрент скачался, программа переносит .торрент файл в соседнюю папку внутри папки Dropbox и на работе, получив уведомление в трее о том, что в папку finished добавился файл, я понимаю, что мой торрент скачался и готов к употреблению.
    Просто и удобно.
    Кстати Дропбокс предлагает всего 2ГБ бесплатно, но за каждого кто зарегистрируется по моей ссылке, я получу ещё 250МБ места.) Но всего не больше 3ГБ.
    Ссылка вот: https://www.dropbox.com/referrals/NTUyMzAyNDU5

    Thursday, March 18, 2010

    trace в FlashDevelop

    Вообще в этой замечательной IDE всё хорошо. Но есть раздражающие мелочи, например такая фича, как невозможность нормального трейса в куда-нибудь, как в обычной Flash IDE.
    Погуглив нашёл несколько решений:
    1. Скачать дебаг версию Флэш Плеера отсюда.
    2. Покурить тему на официальном форуме.
    3. Установить плагин FDTracer , который тупо перенаправляет вывод из лог файла в отдельное окошко.

    У меня первый и третий вариант работает поэтому с темой и дополнительными классами не разбирался. Но вот чего я ещё не понял, так это разницу между компиляцией проекта разными шорткатами. Ctrl+Enter с 10ым плеером компилирует, а с 9ым-  выкидывает с ошибками. Ctrl+F8 - наоборот.

    Будем читать дальше.

    Monday, February 22, 2010

    Удобная фишка

    Всё ломал голову, как можно обойтись совсем без Flash IDE при разработке приложений.
    Ну, что поделать, люблю я всё чтобы было правильно и законно. Flash Develop свободный, SDK тоже.
    А вот графику и сам stage приходилось экспортировать в swc из Flash CS3. Не страшно, конечно, но я стараюсь по минимуму работать с пиратским софтом и всегда ищу возможность или найти альтернативу или заплатить.

    А тут наткнулся на занимательную статью Rendering game assets in ActionScript using blitting techniques and Flash Builder 4.

    Вот такой строчкой в коде очень хорошо создаётся stage для приложения
    [SWF(width=480, height=320, frameRate=24, backgroundColor=0xE2E2E2)]

    А вот так подгружается графика.
    [Embed(source="graphics.png")]

    Всё больше и больше меня Actionscript3 радует.

    Wednesday, February 17, 2010

    Я собой горжусь.

    Сделал вчера за пару часов вот такую штукенцию для одного сайта.







    И очень собой горжусь потому, что это полностью ActionScript3. Код внутри конечно детский и некрасивый, зато я сделал это сам и главное, понял как.
    Прикольно на самом деле, меньше заморочек чем с АС2, хотя и в корне другой подход.

    Tuesday, February 16, 2010

    Legend of an Hero. Character concept

    Пока я учу АС3, жена успела нарисовать эскиз персонажа. Я его конечно немного изменю, но в принципе потянет для первой игрушки.
    Оружие тоже сам рисовать буду, нечего такое женщинам доверять. :)

    Sunday, February 14, 2010

    Legend of an Hero. Arcade platform game

    Начал рисовать концепты персонажа для игрушки. Игрушка на флэш, аркада-платформер в стиле Марио. Главная задача - научиться дизайну игровых персонажей и выучить AS3.

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

    To be continued...

    Thursday, February 11, 2010

    Не спешите Flash хоронить

    После презентации одного очень интересного девайса и "скандальных" заявлений Стива Джобса в сети и на Хабре в частности начало формироваться мнение, что мол, Флэш своё отживает и скоро его заменит крутая перспективная технология HTML5\CSS3. С точки зрения веб-разработчика ситуация действительно кажется такой, но я хочу напомнить, о других областях применения Флэш, тех, с которыми программисты обычно не соприкасаются ежедневно по роду занятий.


    Веб

    image

    CSS3 и HTML5 несомненно мощная штука. Для представления и форматирования информации.
    Шагающие роботы из "Звёздных Войн" несомненно красивая штука, но это скорее из области "смотрите как я клёво научился молотком шурупы забивать". Разработчики обычно не занимаются анимацией, а аниматоры не любят и не хотят писать кучу кода, когда всё можно сделать быстрее и наглядно.
    Тут за примерами ходить далеко не нужно, достаточно взглянуть на The FWA: Favorite Website Awards. Пока возможности CSS\Silverlight\whatever не позволят рисовать мышкой или пером на планшете, Flash ещё долго будет жить на имиджевых сайтах, где в первую очередь требуется "Вау-эффект", а не бизнес-логика и дружелюбный, быстрый интерфейс.


    Monday, February 8, 2010

    Жизнь течёт.

    Был сисадмином, веб-мастером, дизайнером, а теперь похоже потихоньку переползаю в прежде ненавистную всеми фибрами души среду Flash и не сильно любимую раньше JavaScript. И то и другое, как оказалось, являются идеальными инструментами для меня: игрушечные снаружи и невероятно мощные и гибкие если научиться ими пользоваться как следует.

    Sunday, February 7, 2010

    Дурное

    В рамках изучения ActionScript 3 по честно приобретённой на Амазоне книжке Foundation Game Design with Flash  столкнулся со странной проблемой. При попытке скомпилировать одну из программ Флэш ругался странной ошибкой:
    1046: Type was not found or was not a compile-time constant: TextField


    и это несмотря на то, что всё писалось строго по книге, вдумчиво и с пониманием.

    10 минут допытывался у Гугля в чём дело и выпытал. Оказывается, если объект типа TextField находится на основном таймлайне, то в скрипт нужно импортировать библиотеку TextField командой 
    import flash.text.TextField;


    Буду умный теперь.

    Tuesday, January 12, 2010

    Flash and right click

    Некоторое время назад задался целью научиться управлять правым кликом мышки в Флэш-приложениях.

    Как известно, правый клик в Флэше всегда вызывает стандартное меню вроде:


    В наше время, когда космические корабли бороздят просторы Большого Театра, эта "фича" является вопиющим безобразием.
    Порыскав чуть-чуть в Интернетах я нашёл несколько вариантов решения проблемы.

    1. Можно убрать меню вообще, примерно вот так: http://articles.sitepoint.com/article/users-right-click-menu 
    2. Можно изменить меню, добавив свою функциональность: http://www.developertutorials.com/tutorials/flash/flash-customized-right-click-050321/page1.html
    3. Наконец, можно добавить на правый клик любое действие по своему желанию. Ура!: http://www.uza.lt/blog/2007/08/solved-right-click-in-as3 Из недостатков - используется JavaScript, то есть решение наверное не подойдёт для Stand-alone аппликаций, а также не работает в браузерах где работают Mouse Gestures.
    Способа который будет работать вне браузера и не AIR я пока не нашёл. Будем искать.