Monthly Archive for March, 2009

Почему 99% флэш сайтов плохи

Разозлили вы меня, черт побери.

Так все же, почему 99% flash сайтов плохи? Почему вообще не нужно использовать flash? Столько уже написано по этому поводу, в том числе и на Хабре.

Юмористическая часть.

N процентов населения считает, что в сайтах главное юзабилити и контент. M процентов населения считает, что во flash сайтах главное креативность, анимация и вообще wow фактор. M + N >= 100. Первые видя флэш креативный супер-пупер-флэш-сайт ставят ему минус, потому что юзабилити страдает. Вторые видя флэш-сайт-с-упором-на-юзабилити ставят ему минус, потому что wow фактор как-то отсутствует. Получается, что объединение мнений этих двух аудиторий, которые вместе покрывают 100% флэш сайтов, дает понять, что все flash сайты ужасны. 100%. 1 процент отнимаем на погрешность на всякий случай.

Смешно? Да, если не просто прочитать предыдущий абзац, а прочитать внимательно и заметить, что идет сравнение мандаринов со слонами и складываются, вообще говоря, величины не соразмерные.

Серьезная часть.

Серьезно (серьезная же часть все-таки), в подобных статьях (во всех, что я читал за свою долгую жизнь) авторы пытаются доказать, что flash — это плохо, приводя примеры плохого его использования. Ну не забавно ли? При этом не приводятся плохие примеры использования того же HTML с картинками и AJAX. Flash, HTML+CSS+картинки, AJAX — это все технологии. Вася может сделать сайт с использованием последней версии флэша, может сверстать все в HTML, может использовать модный AJAX. ВСЕ ЭТО ТЕХНОЛОГИИ. У каждой есть плюсы, минусы, сильные и слабые стороны. При этом Вася может сделать совершенно лажовый HTML сайт, или до слез идиотский flash сайт, и на худой конец смешно тупой сайт с использованием AJAX. Стоит ли ожидать, что кто-то пойдет писать, что HTML — это плохо, AJAX — это просто ужас, а flash — это вселенское зло? (насчет последнего, скорее да чем нет) Вот, ядерная энергия — это хорошо или плохо? С одной стороны электричество, на котором работает мой стильный MacBook Pro, с другой стороны разрушающая мощь показавшая себя в Чернобыле и в Японии дважды…

При этом статьи все поголовно называются “Flash is 99% bad” и разнообразные переводы с сохранением смысла. А ведь флэш совсем не 99% bad. В подобных статьях часто делаются правдоподобные выводы из ложных предпосылок, что из курса математической логики можно делать сколько угодно и безнаказанно.

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

Flash — это технология со своими плюсами и минусами. Если говорить только о сайтах, то эти самые сайты можно рассматривать с множества точек зрения. Возвращаясь к юмористической части, Петя смотрит на сайты с точки зрения юзабилити и удобства нахождения информации, а Вася смотрит на сайты с точки зрения креативности и wow фактора. Один и тот же сайт для одного скорее всего будет хорошим, а для другого плохим. Возвращаясь к статьям, опять же, в основном не приводится информации с какой точки зрения мы смотрим на тот же флэш. Сайт ужасен с точки зрения юзабилити, но рвет мозг от wow фактора — так он плохой или хороший? Смотря с какой точки зрения рассуждать.

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

Грустная часть

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

Допустим, я делаю сайт. Мне нужно понять что это за сайт: некий информационный портал, социальная сеть или, скажем, промо сайт. На информационном портале сейчас использование флэш элементов, а тем более полностью делать его на флэше, не желательно. И это понятно из поставленной задачи. С социальной сетью уже можно поиграться в сторону интересной визуализации, игр и т.д. на флэше. Промо сайт скорее всего точно флэш. Большой такой увесистый флэш.

А дальше интереснее, тут люди начинают делать порталы на флэше, а народ, который (внимание) смотрит на это дело с точки зрения юзабилити и доступности информации, кричит, что сайт неудобный и вообще флэш — УГ. Какая-то же часть населения заходит на этот сайт и говорит, что мол о клево все сделано класс, респект и т.д. На самом же деле, флэш не совсем для информационных порталов. По крайней мере народ к этому не привык, а разработчики еще не научились эмулировать все то, к чему привык народ за 10тилетие общения с HTML сайтами.

А то, что многочисленная армия недоучек клепает уродские тупые и неудобные флэш сайты, только подливает масла в огонь. Ведь флэш не виноват, что поделки криворуких дизайнеров говорят за все комьюнити в целом. Не говорите, что вы никогда не видели мегаотстойный HTML сайт… тогда почему HTML вы не называете плохим?

Заключительная часть

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

P.S.

Вот, у меня есть сайт valyard.ru — наглядный пример. Судя по отзывам и статистике, примерно половине посетителей он нравится, потому что от FLASH сайта они ожидают именно интерактивности, тяжеловесности, какого-то интереса и необычности. Второй половине посетителей он не нравится, потому что от САЙТА, они ожидают юзабильности, легковесности и информации. И я никогда не говорил, что вторые неправы, хоть это мне и не нравится.

Наезды на Flash

Почему сайты на флэше — это плохо…

Мне смешно читать такие статьи, и все равно кто автор, будь то Лебедев, да хоть сам Владимир Владимирович. И дело в том, что выводы большинство правильные и логичные, но выводы из ложной предпосылки. А как известно A –> B — это то же самое, что A | !B.

Никто не упоминает, что FLASH — это технология. Такая же технология, как и HTML+картинки, как и AJAX, как и видео на вебе. Никто же не пишет, что картинки — это плохо или что AJAX — вселенское зло, а вот меня раздражает QuickTime видео, которое крашит мне FireFox под виндой. Я сейчас пойду напишу статью почему QuickTime видео — это плохо.

Как кто использует технологию — это совершенно другое дело. Мало кто помнит, например моду на гифы с прыгающими и вращающимися зелеными черепами, которыми были забиты немногочисленные сайты. Или я видел много ужасно лагующих AJAX творений.

Совершенно понятно должно быть, что у каждой технологии есть ограничения. Многое из того, что пишет автор, как раз и есть эти самые ограничения. Автор конечно же ничего не говорит про HTML и его минусы, он под тему “Почему сайты на флэше — это плохо” помещает и флэш элементы в HTML сайтах и в то же время говорит, что вот такие промо сайты ему нравятся.

Зачем плодить идиотизм, друзья? Вместо таких глупых статей, распишите плюсы и минусы разных технологий, проанализируйте где лучше и логичнее что использовать и с какой опять же точки зрения. Потому что, я могу посмотреть на один флэш сайт с точки зрения юзабилити на компьютере из прошлого тысячелетия и сказать, что сайт есть унылое гавно. Тогда как с точки зрения креативности и wow эффекта, а даю тому же сайту 5 баллов.

Не сравнивайте яблоки со слонами и не путайте теплое с мягким, ёпт.

P.S. долго смеялся, когда пролистал комменты и среди них в самом низу увидел коммент автора следующего содержания:

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

А что ж ты, друг, пишешь заметки, из которых не понятно о чем они?

MAMP + MySQL Ruby Gem

Блог захвачен! Теперь это официально блог о Ruby!

В общем, т.к. MySQL гему нужны какие-то .h файлы, как я понял, а в стандартной поставке MAMP их нет, то чтобы его поставить, нужно немного попрыгать с бубном. Значит, попытка поставить гем через sudo gem install mysql упорно падает не смотря на перебор разнообразных комбинаций параметров со следующей ошибкой:

Building native extensions.  This could take a while…
ERROR:  Error installing mysql:
ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb install mysql
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lm… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lz… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lsocket… no
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lnsl… no
checking for mysql_query() in -lmysqlclient… no

Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/mysql-2.7/gem_make.out

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

  1. Ставим MAMP 1.7.2 dmg package.
  2. Качаем исходники MAMP 1.7.2 source code.
  3. Распаковываем архивчик.
  4. Открываем терминальное окно и идем в папку куда только что распаковали все это добро.
  5. Разтариваем архив с MySQL:
    $ tar -xzvf mysql-5.0.41.tar.gz
    $ cd mysql-5.0.41
  6. Что-то шаманим.
    $ ./configure –with-unix-socket-path=/Applications/MAMP/tmp/mysql/mysql.sock –without-server –prefix=/Applications/MAMP/Library
    $ make -j2
  7. Копируем скомпиленные библиотеки.
    $ cp libmysql/.libs/*.dylib /Applications/MAMP/Library/lib/mysql
  8. Копируем недостающие .h файлы.
    $ mkdir /Applications/MAMP/Library/include
    $ cp -R include /Applications/MAMP/Library/include/mysql
  9. И, наконец, инсталим гем.
    $ sudo env ARCHFLAGS=”-arch i386″ gem install mysql — –with-mysql-config=/Applications/MAMP/Library/bin/mysql_config

Кто не встал — я не виноват.

Web сервер под Mac одним нажатием

Когда после очередного часа попыток заставить это скомпиленное из исходников чудо работать по устаревшим инструкциям я был уже в шаге от того, чтобы забить полностью, подумал должны же быть какие-то простые решения для Mac. Помню, был пакет под Windows с Apache, PHP, MySQL, MyPHPAdmin, который ставился за минуту без проблем.

И действительно, есть MAMP. Одной проблемой хоть меньше.

Изобретать ли свой велосипед

Значит, предлагаю тему для обсуждения.

Моя область деятельности сейчас — это промо сайты и разнообразные виджеты в том числе видео.

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

В итоге, у меня есть теперь свой маленький MVC фреймворк и почти дописанный небольшой IoC фреймворк.

Читая время от времени новости от Adobe, я вижу, что связка Catalyst + Gumbo нацелена как раз на смещение равновесия в сторону флекса.

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

Прошу высказать свои соображения.

Еще кусочек инфы о Catalyst

via…

Головой об стену

Как же быстро летит время. Книга про Ruby 2008го года уже к чертям устарела… Но это еще полбеды. Настоящие проблемы начинаются, когда тебя а. отправляют на какой-то блог читать как что-то ставить, б. странные команды, которые нужно запускать совсем нигде не объяснены… что делает? для чего?

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

Значит, “установите Ruby, Rails, RubyGems… а стоп, оно же уже есть в OS X 10.5, как же я не сказал?” — а я маялся откатываясь через Time Machine, вроде ставлю 1.3.1, а стоит 1.0.1. Напишите такой шелл скрипт… Написал, запустил — не работает. Все перепроверил — не работает. Побился час головой об клавиатуру — та же фигня. Читаю дальше в книге: “пока не запускайте”… Ладно, сам идиот. “Остановите сервер”, э… а я откуда знаю как его остановить. Перерыл 50 страниц назад и увидел, что сервер запущен в терминальном окошечке, в которое надо ctrl+c нажать. “Теперь запустите скрипт” — запускаю, пишет совсем не то, что в книге. Час гугления и разбора чего это я делаю показывает, что эта штуковина вообще не должна писать что она пишет там.

В общем, напоминает университет — сидишь копируешь какой-то метод решения задачи, а сам ни в зуб ногой что происходит. Главное, что результат сходится (или подгоняется). Надо мне Unix для чайников почитать, больно все это дело смахивает на долбежку головой об стену, если не дай Бог что-то из книги сработает не так как нужно.

P.S. а уж сама идея брать и компилить из исходных текстов себе ОС и все программы под ней с зависимыми библиотеками — УЖОС! Я сейчас спать пойду и мне будут сниться кошмары.

Разбираемся с PDF

Встала задача — аплоадим PDF, показываем во флэше постранично.

Для этого на сервере нужно этот PDF отрендерить в картинки. Гуглить на эту тему, надо сказать, сложновато — при слове PDF он радостно показывает мне все известные ему PDF документы. В общем, интернет указал в сторону библиотеки ImageMagick. Штуковина прикольная и доступная для кучи языков. Установленная последняя версия на дешевом виртуальном сервере PDFки конвертить отказалась (по-моему ее там просто убивали из-за солидного расхода ресурсов). В итоге, чтобы проверить работоспособность, пришлось ставить ее на мой гламурненький MacBook Pro.

Инструкция как поставить ImageMagick на OS X.

  1. Значит, сначала нам нужно поставить MacPorts по вот этой инструкции.
  2. Для этого качаем и ставим Xcode Tools (почти гигабайт весит, однако).
  3. В инструкции написано прописать некоторые пути, я как полный нуб в *nix’ах не представляю, например, зачем вторая команда.
    export PATH=/opt/local/bin:/opt/local/sbin:$PATH
    export EDITOR=/usr/bin/pico
  4. Далее качаем и ставим сам MacPorts.
  5. Обновляем MacPorts
    sudo port selfupdate
  6. Ставим ImageMagick
    sudo port install ImageMagick
    Долго ждем. Долго.
  7. Обновляем GhostScript, у меня без этого конвертить PDF отказалось.
    sudo port install ghostscript

Теперь можно конвертить.

convert -density 300 girls.with.big.boobs.pdf pages.jpg

Конвертит PDF с интересующим содержимым в набор страниц хорошего размера. Конвертилось медленно. Не даром на моем недосервере процесс обрубался.

Куда идем мы с Пятачком…

Python, Ruby или все-таки Java?

Еще пример Алхимии

Спасибо Ярославу за еще одну ссылочку.