Archive for the ‘Новости’ Category



23
Авг

iphone и flash. Жизнь на яблоке.

Вот уже месяц я интенсивно использую iPhone 3G по полной программе. В том числе и для веб-серфинга.
И вот что я хочу сказать: отсутствие поддержкм flash мне совсем не мешает, более того, меня это просто не волнует.

Как впрочем, совершенно не волновало и раньше, когда я пользовался Nokia n800 с поддержкой флэша. На нокии я мог открыть практически любой флэш-сайт, однако осмысленно использовать его было просто невозможно.
Производительность. Да все дело в производительности. Даже довольно простые флэш-сайты еле ворочались на n800. Я убедился, что флэш номинально поддерживатся и спокойно забыл об этом. По существу смысла в такой поддержке ноль целых ноль десятых.
Ровно по этой причине меня ни минуты не смущало отсутствие поддержки flash на iPhone. Он тут просто не нужен!
Да. Давайте смотреть правде в глаза, на таком маленьком устройстве флэш - совершенно избыточная побрякушка не дающая ровным счетом ничего кроме удовлетворения от самого факта ее наличия.
Флэш-сайты надо смотреть на хорошем компьютере с большим монитором, а не на несчастных 320 пикселях ширины крошечного экрана айфона. На айфоне, как ни удивительно, есть куда более удобные способы читать всякие сайты, очень многие сетевые издания и ресурсы создают специальные приложения в которых в удобном для такого размера экрана виде показывается содержимое сайта. Вот, например, для хабра такое приложение есть. Это просто удобно.
По существу с обыкновенными сайтами гораздо больше мороки чем с оптимизированными версиями. Все эти трюки с увеличением, прокруткой и т.п. интересны в начале, потом же хочется просто читать, не тратя время на всякую возню с масштабированием.
Так что через некоторое время неизбежно приходишь к более оптимальным решениям.

А вот для айпада отсутствие флэша мне уже кажется довольно спорным, но на айфоне, повторюсь, совершенно пофиг.

Что же касается собственно iPhone, то это отличная вещь. Я удовлетворен на все сто. В первую очередь, меня восхищает интерфейс, быстрый, отзывчивый, ясный. Это образец, Образец для подражания с большой буквы.
Недавно я пощупал htc desire на андроиде, так вот хочу сказать: типичное не то. Ярко? Да. Быстро? Да. Разрешение экрана обалденное, цветопередача вах! Но, нет той глубины проработки интерфейса, той простоты и тщательности в проработке каждой детали.
На айфоне каждый пиксель вылизан до идеала. Каждому элементу интерфейса найдено почти идеальное место. Когда пользуешься этим устройством то понимаешь, да, это должно работать именно так. Как дизайнер, я хорошо знаю что эта “простота” дорогого стоит.

Весь этот пост я выстругал на айфоне, лежа на диване. И это было вполне удобно!

23
Авг

Html 5. На это стоит взглянуть.

Я знаю, что вы возможно уже читали это на хабре, тем не менее оставлю ссылку на память:

http://hakim.se/experiments/

Это уже довольно интересно выглядит.

19
мая

Листалка страниц HTML5 canvas. Чешу задумчиво в затылке.

Увидел сегодня на Хабре: листалка страниц на html5 canvas.

html5

Собственно живой пример.

Конечно это пример пока корявенький, без всяких излишеств, типа теней и объемов, но однозначно рабочий.

Процесс идет. Медленно, но верно. Младенец уже уверенно держит головку, скоро научится садится.

27
Апр

Realaxy. Первые впечатления. Hands on review.

Первые впечатления… тут пожалуй подойдет такая метафора: прогулка на лыжах по песку.

Впрочем, речь даже не о прогулке, а о попытке сдвинуться с места. Я не буду давать никаких оценок, я просто опишу свой опыт первых часов работы с Realaxy.

Итак, дано:

Пользователь, который не имел дела с flex sdk, не знает ничего о jetbrains кроме самых общих слов. При этом  активно пользуется редактором кода FlashDevelop, и имеет небольшой опыт работы с Flex Builder. Realaxy я попытаюсь использовать просто как редактор Action Script кода.

Ставим Realaxy. Все проходит быстро.

Первый запуск. Узнаем, что имеем дело с триальной версией на 30 дней.

Создаем проект.

Выбираем в меню Action Script проект

realaxy_01

жмем далее, выбираем имя проекта. Ниже идет какая- галочка «Создать модуль».

realaxy_02

Пожимаем плечами, бог его знает, что это, наверное так надо.

realaxy_03

Жмем далее, пишем имя главного класса, ок!

Появляется окошко в котором показывается прогресс создания проекта. Машина на которой производилось тестирование - старье, пентиум 820D. Ждем. Ждем долго. Настолько долго, что я начинаю волноваться… Ок. Спустя каких-то три минуты имеем проект.( Позже выяснилось, что это только первый раз так долго. Потом все быстро грузится)

Открываем в дереве каталогов главный модуль. Вот она революция! Ну наконец-то!

realaxy_041s


Легким нажатием Enter генерим метод, даем ему имя.

Создаем переменную: var txt : String;… String почему-то подсвечено красным… Пробуем еще раз, снова. Не знаю такого типа, дает мне понять программа.

realaxy_05_nostring

Хорошо. А Number ? - Хрен. int? - фигушки.

realaxy_05_num

Что за черт?

UPDATE

В комментах Евгений Потапенко подсказал: чтобы тип переменных или класс стал доступен в проекте его надо импортировать с помощью ctrl+R. В появившемся диалоговом окне пишем имя переменной или класса, после этого она (он) становится доступной.

UPDATE 2

Александр Елисеев: по CTRL+R импортируется не класс, а вся модель (пакет), которая содержит этот класс. Можно также нажать CTRL+M и выбрать в списке именно пакет, классы из которого требуется сделать доступными. Модели из библиотек имеют постфикс @swc_stub после имени пакета, поэтому, например модель дефолтного пакета называется просто @swc_stub.


Пытаюсь написать trace(”Hello world”); редактор не понимает, чего я хочу, подсвечивает красным.

realaxy_05_notrace

Минута молчания.

Создаю новый проект. Та же фигня. Ладно.

Лезу смотреть скринкасты. Делаю как там.

Пишу в строке “Hello world”, ставлю на нее курсор, жму ctrl-alt-V. О боги! Сработало, наконец-то! Все как в сказке - редактор сам создал переменную! Даю ей имя, ура!

realaxy_05_nstring

Выдыхаем. Ну ка – ну ка, а что если мне нужна просто строковая переменная без инициализации. Ок. Создаем шаблон переменной, даем имя пишем тип… var txt2 : String; Что за черт?!

realaxy_05_nostring2

Подсвечено красным! Т. е. то, что редактор создал сам -  его устраивает. А моя прекрасная переменная ему не катит? (Вспомнилось про поддельные елочные игрушки - все у них тоже самое, как у настоящих, но… не радуют!)

Где-то, на пятом по счету, новом проекте я внезапно смог написать trace(txt, …args);  без того, чтобы редактор подсветил это красным.

Компилим swf - ура! Работает.

Только куда trace выводится? Я пока не понял. Не нашел.

UPDATE

Евгений Потапенко: по трейсам - нужно импортировать logger language (ctr+L - “logger”)
и сообщения выводить c помощью trace statement, (не глобальной функцией trace). trace и ctrl+space даст в списке trace statement.
так же доступны debug, error, warn стейтменты.
сообщения выводятся внизу в панеле “messages”.
кликнув на сообщении можно перейти в точку где сообщение было послано.

Автокомплит

Создаем переменную типа MovieClip - отлично, а к примеру TextField - хренушки.

realaxy_06_notextfield

Причем в списке автокомплита значатся только классы из пакета flash.display. А как подключить остальные? Никакой import flash.text; редактор написать не дает, светит краcным. Но ведь библиотеки где-то надо прописать? Точно так же я не смог добавить листенер, причем hasEventListener в списке автокомплита есть, а addEventListener нет.

Беготня по окнам свойств проекта, класса и модуля не дала результата, там и так упомянут playerglobal.swc включающий в себя все пакеты flash, но что толку?

Что это глюк или это, я тупо не знаю. Обычно в таких случаях я читаю справку. Но здесь ее нет. Совсем. Вопрос пока повис в воздухе.

UPDATE

В комментах Евгений Потапенко подсказал: чтобы тип переменных или класс стал доступен в проекте его надо импортировать с помощью Сtrl+R. В появившемся диалоговом окне пишем имя переменной или класса, после этого она (он) становится доступной. См. иллюстрацию.

textfield_addition

Сам автокомплит работает… м-м-м иначе, чем во FlashDevelop, где я успеваю написать pr а он уже высвечивает подсказку private, остается только нажать Enter. То есть я пишу, а редактор FlashDevelop дает подсказку сразу. В Realaxy при наборе текста надо нажать Ctrl-пробел или Ctrl+Shift+пробел, и только тогда он показывает окно с подсказкой автокомплита.

Во FlashDevelop если я создал переменную var mc : MovieClip; и потом пишу mc = new , то сразу после new дается подсказка MovieClip, остается нажать Enter. Очевидно, не так ли? Realaxy в такой же ситуации рисует мне красный знак вопроса  mc = new ?. Спрашивается, почему? Ведь вроде бы ясно что я хочу создать новый мувиклип, и первое предположение для автокомплита очевидно - MovieClip.

Realaxy может легко создать метод, или всю конструкцию for (var i:int…  сразу целиком.  Но автокомплит в мелочах пока далек от совершенства.

Realaxy пока ведет себя нестабильно. То все работает как в скринкастах, то, минуту спустя,  редактор начинает дурить… строптивый у него характер, как у необъезженной лошади. Довольно часто можно увидеть это:

realaxy_08_error

Причем после возникновения ошибки и перезагрузки - проект слетает. Окно с кодом открывается пустым, а сам редактор иногда впадает в кому. Пока оказалось проще всего удалить папку с проектом и начать сначала, чем разобраться в том, как это исправить. И примерно с десятого запуска редактора проект генерится пустым, без модуля. То есть в структуре проекта есть только библиотека, а самого package нет. Я пробовал создавать вручную проект и его начинку, но оно не компилится, выдает ошибки.

Вот такая получилась история. Пока работа с Realaxy не является “работой”. Это пока скорее изучение нового подхода, демонстрация новой концепции, можно поиграться, потрогать. А местами это похоже на загадку. Но интересно.

Я пока не берусь делать никаких выводов, поскольку многое из того, что у меня не сработало, могло не сработать просто по причине не знания мною правильных подходов к работе именно в этой среде (сказывается отсутствие справки даже в самом минимальном виде). Все представленное выше это скорее некая непосредственная реакция меня, как пользователя на происходящее. Для создателей это повод задуматься о том, что пытаются делать в редакторе люди привыкшие к других способам работы и подумать о том не пойти ли им на встречу. А они эти пользователи, как правило пытаются делать совсем не то и не так как задумал разработчик.

23
Апр

Realaxy. Делюсь впечатлениями от презентации на Creative Future 2010

realaxy

Не зря говорят, что лучше один раз увидеть, чем тысячу раз услышать. И я увидел (и услышал) презентацию Ивана Дембицкого и Евгения Потапенко на мероприятии Creative Future 2010 об их детище - редакторе Realaxy. Я думаю,что у этого продукта есть все шансы стать хитом.

Внешне, это обыкновенный редактор кода, однако за довольно привычным интерфейсом скрыты возможности выходящие за рамки привычных представлений о редакторе кода для Action script 3.

Этот продукт построен на базе jetbrains mps. Это система  мета программирования, позволяющая расширять язык программирования по своему усмотрению. Мета программирование… м-м-м? Звучит, мягко говоря  не слишком ясно. Не бойтесь, я постараюсь объяснить… по крайней мере в той степени в которой это доступно моему пониманию.

Во всяком случае, в первую очередь Realaxy это очень, ну просто очень удобный редактор кода. С автокомплитом, с подсказками и автоматической генерацией кода, с подсветкой всего чего только можно. Все это можно внимательно изучить в скринкастах. Я не буду тут слишком углубляться в эти  детали. Я остановлюсь на том, что привлекло мое внимание.

Первое, что удивило  - наличие разбиения документа на секции в совершенно ультимативном порядке. То есть: вы создаете класс, и в документе сразу, жестко размечены секции: <<static fields>>,<static methods>>, <<methods>> и т.п. они обозначены специальными текстовыми тегами. И это означает, что cоответствующие переменные и методы могут быть размещены только там, где обозначен раздел для них. Т.е. вас заставляют делать правильный код, не позволяют мешать все в кучу. Эта идея, на мой взгляд весьма толковая, особенно для таких начинающих деятелей от дизайна,  как я, жестко задавать шаблон документа. И тут настоящий воин должен задаться вопросом какого хрена, а что это простите за формат документа такой, который может, что-то не позволить? Как тупой текстовый документ может не позволить мне что-то?…

А вот в том то и дело, что редактор Realaxy хработает с данными не в виде обыкновенного текстового файла as. Да, дорогие мои девелоперы, это XML (он конечно тоже текст, но все-таки это явно не action script). Получается, что разработка проекта , будучи начатой в этой среде, довольно жестко к ней привязывается.

Такой подход дает довольно интересные возможности.

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

Безусловно, в любой момент вы можете экспортировать из редактора обыкновенный action script код для использования в других приложениях, но при этом вы получите некоторое количество кода сгенерированного автоматически с о всякими волшебными автоматическими именами типа “bs_23434″.

Еще одной необычная, по крайней мере для меня, возможность - вы можете переопределять синтаксис языка, или  в терминологии этой среды - создавать расширения. Фактически Realaxy позволяет создавать нечто вроде надстройки над используемым языком. Для ясности приведу пример: кто-то из слушателей заметил, что это подобно тому, как если бы вместо ключевого слова function в редакторе показывалась бы условная иконка, наподобие смайлика, а область видимости ptivate или public тоже обозначалась условным значком… То есть у вас есть возможность переопределять конструкции языка для вашего удобства, для лучшей удобочитаемости кода. По существу это и есть основная идея мета программирования - возможность расширения языка, вот тут подробнее, но простите, на английском. Эта, на первый взгляд, неочевидная возможность позволяет улучшить удобочитаемость кода и сократить время разработки за счет уменьшения избыточной писанины (я думаю вы в курсе насчет некоторой избыточности синтаксиса action script). Планируется создать вокруг продукта некое сообщество пишущее эти расширения, с форумами, обсуждениями и т.п. Говорят что, что омериканцы проявляют нешуточный интерес к этим возможностям Realaxy.

(Еще раз подчеркну, я объясняю все так, как я понял, поэтому могу где-то ошибаться. Желающие могут обратиться к первоисточнику: тут в комментариях на хабре сами авторы дают пояснения по вышеописанным пунктам)

И еще пунктирно, что запомнилось:

  • В Realaxy есть богатые возможности рефакторинга, которые на этой платформе можно с легкость выращивать пачками любых размеров и цветов…
  • Код компилируется стандартным компилером flex3.

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

Я надеюсь, что ходе своего развития Realaxy не перейдет ту черту за которой начинается пародия на заботу о нуждах пользователя, по типу редактирования текста в ms powerpoint, когда редактор настолько умен, что способен довести до белого каления любого пользователя, которому нужно нечто более сложное, чем типовой шаблон. Я имею ввиду мудацкое поведение пауэрпойнта при атоматическом форматировании текста, которое определяется какими-то неочевидными закономерностями. Или такой необходимый Puntoswitcher, нагло пытающийся переводить код action script на русский язык, штука нужная и умная, но иногда хочется взять и у…ть ее чем-нибудь тяжелым… Простите, отвлекся.

Релиз Realaxy планируется в августе или сентябре (”…Какого года?” - ядовитый вопрос из зала, я лично, очень надеюсь, что 2010).

Иван сказал, что продукт будет платный, стоимость около ста баксов. Возможно когда-нибудь он станет бесплатным.

Подводя итог могу сказать, что было довольно интересно посмотреть живьем скринкаст “людей из Черногории”, редактор получился интересный, хочу себе такой.

P.S.

Несколько слов о собственно мероприятии Creative Future 2010. Организовано все весьма толково, народу было много, вернее ОЧЕНЬ МНОГО. В перерывах раздавали бесплатные кофе-соки-воды и прочие бутерброды и даже пиво с чипсами после 19.00. Самая главная презентация была посвящена новым возможностям CS5. Я честно говоря, читал о них еще недели две назад, а про флеш5 еще с месяца два тому назад… но одно дело читать, а другое живая демонстрация релизного продукта.

Понравилось как грузится 64-битный фотошоп на эппловском ноуте под виндами - 3 секунды. Презентеры явно наслаждались эффектом - нажали кнопку, и сосчитали “раз, два, три” и он открылся. Я вот не могу пожаловаться на свой core i7 c 64-битными win7, но у меня четвертый явно не три секунды грузится…

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

Celadon theme by the Themes Boutique