Август 26, 2010
Источник: http://blog.nihilogic.dk/2008/05/compression-using-canvas-and-png.html
Решил повторить технику, посмотреть, насколько это сложно в реализации. Изначально предполагалось, что это может быть способ для кроссдоменного обмена данными, но авторы спецификации оказались умнее меня и все это предусмотрели. Далее интересен вопрос сжатия – у меня получилось, что в любом случае размер получающейся картинки был больше, чем сжатого gzip-ом файла, но тем не менее значительно меньше, чем размер непакованного файла. Если загонять в картинку архив, то на выходе получаем файл большего размера, чем архив.
Например:
163855 jquery.js
45997 jquery.js.gz
63490 jquery.png
46326 jquery.gz.png
Таким образом, это может быть полезно, если нет возможности управлять сжатием скриптов на сервере и при жестких ограничениях (как здесь). Еще так можно хранить пользовательские данные, если нет желания/возможности делать регистрацию – попутно с действиями пользователя генерим картинку, которую он может сохранить и, загрузив, продолжить с того места, где закончил, благо загрузка файлов через File API к ошибкам безопасности не приводит.
Смотреть:
Компрессор на питоне: http://gist.github.com/550578
Декодер на js: http://test.dpetroff.ru/png_loader/ (проверяем наличие jQuery объектов в DOM)
Декодер на js с загрузкой через File API: http://test.dpetroff.ru/png_loader/index2.html (картинку можно взять из предыдущего примера)
P.S. если вы взяли изображения из соседних по теме постов и ничего не получилось, то все дело в разных форматах паковки данных в изображение.
Июль 26, 2010
Метнулся не два дня в Нижний, по городу погулять и заодно музыку послушать, 24 июля прошел фестиваль Роклето-2010. Комментарии есть по поводу всего, поэтому опущу под кат. Ах да, картинок нет, т.к. фотографировал не я; включаем фантазию!
Читать далее
Июль 22, 2010
Спустя месяц после написания скрипта, решил, что надо уже развернуть его на домашнем сервере и заодно написать руководство по его установке.
Суть скрипта простая – быстро и удобно рассшаривать файлы с домашнего сервера по веб, при необходимости запаковывая их в архив, и раздавая по короткой ссылке.
Выглядит так:
$ share add -name myarchive file1 file2 ..
download url: http://yourhost.com/542b2
Никаких защит и прочего нет, т.к. нет потребности, внутри код вероятно тоже достаточно ужасен, тем не менее работа выполняется, что от него и требовалось.
Ссылка на хауту – http://wiki.github.com/can3p/share/
К слову, разворачивать все это достаточно просто, через месяц после возни со всем этим, поднять на другой машине удалось минут за 10, а если действовать по написаному, то еще быстрее.
Июль 21, 2010
Закончил читать этот труд, хочется поделиться впечатлениями. Прежде всего – очень здорово, что есть такой человек как Нильсен, который терроризирует окружающий мир своими представлениями о прекрасном, тем более когда они подтверждены некоторой статистикой. Хорошо потому, что это заставляет окружающий мир дизайна эволюционировать быстрее.
Книга как раз про то: выбраны несколько сайтов, набрана группа подопытных пользователей, им были выданы задачи, которые касались использования выбранных для исследования сайтов, далее отмечались все ошибки пользователей, которые происходили в тот или иной момент времени. Но комментарии были сгруппированы не по задачам, а по конкретным моментам дизайна, таким как оформление текста, выбор используемых технологий и т.д.
В целом резюме для книги такое: книгу хорошо прочитать, если у вас еще нет четких представлений, что такое хорошо, а что такое плохо в веб-дизайне, особенно большая польза будет для дизайнеров, которые изобретают макеты, руководствуясь только своей интуицией.
Для всех остальных достаточным вполне может оказаться пролистать книгу в магазине и прочитать заключение, главная мысль которого в том, что цель дизайна заключается не в создании красоты, а в том, чтобы сделать сервис, который будет легким для восприятия, простым в использовании и эффективным в работе, который будет быстро предоставлять необходимую информацию пользователю, и не будет предоставлять информацию, которая пользователю не нужна. Делайте сайт для людей, и все будет хорошо.
Для дальнейшего просвещения можно посоветовать почитать про проектирование веб-интерфейсов, которое опять же америку не откроет, но позволит полнее осознать тот арсенал, который сейчас распространен и доступен.
Июнь 1, 2010
Наблюдаю интересный эффект.
Если изменить текст или его форматирование в компоненте, то физические размеры изменяются не сразу, а после первого обращения, результатом которого будет старое значение.
Выходом будет опрос поля заранее, чтобы потом работать уже с новыми значениями.
field.htmlText = somNewText;
!!field._height; //update dimensions
Май 4, 2010
Летом прощаюсь со своим предыдущим местом работы и начинаю неторопливо искать новое место, идеально начать работать с августа.
Если вам, вашим знакомым или знакомым ваших знакомых нужен технолог, который знает, как верстать хорошо для всего зоопарка браузеров, писать много js-кода, а также знает actionscript 2 & 3 и способен разобраться в большой существующей кодовой базе, и у вас есть интересный проект, который будет полезен людям, то мой e-mail – dpetroff@gmail.com. Остальные контакты здесь.
Территориально нахожусь в Москве, рассмотрю варианты переезда в любую точку замного шара.
Апрель 28, 2010
Секрет хорошего дизайна заключается в том, чтобы дать пользователю набор простых методов для выполнения задач, свести к минимуму возможность ошибки и скрыть от него те функции, которые ему в подавляющем большинстве случаев не потребуются.
Чаще всего этот тезис вызывает паралич мозга у программистов, которые меряют продукт с точки зрения функционала, и, после три тысячи пятисотой сборки, они уже не видят трудности с доступом к функции, для которой нужно всего лишь войти в настройки, выбрать третью вкладку, оттуда вызвать диалог, в котором надо запустить поиск, щелкнуть правой кнопкой мыши, чтобы вызвать контекстное меню и выбрать пункт в третьем подменю второго подпункта. Трудность, однако, есть. Также не всегда очевиден тезис, что не все, что в принципе настраиваемо, должно быть настраиваемо. Почему? Потому что каждая дополнительная опция загромождает интерфейс, делая его менее понятным и более сложным в освоении при том, что осознанно менять значение по умолчанию будет один пользователь из тысячи.
Для примера можно рассмотреть с точки зрения простоты использования три open source клиента обмена мгновенными сообщениями, каждый из которых поддерживает множество протоколов и даже, возможно, аудио-видео чаты: kopete, pidgin, empathy.
Исходно спросим себя, что же захочет сделать в программе пользователь? Например так:
- Поговорить с человеком из контакт-листа
- Найти человека, которого нет в контакт-листе и добавить его туда
- Поговорить с человеком, не добавляя его в контакт лист
- Отправить файл контакту
- Посмотреть информацию о контакте, с которым разговаривает или о контакте из списка
- Включить/выключить текстовые и звуковые оповещения
- Смайлики поменять, как же без этого.
- Поменять внешний вид окна чата – шрифты, сам способ отображения, если такое возможно
- Поменять внешний вид списка контактов – включить/выключить отображение аватаров, статус, показать или скрыть контакты не в сети
Читать далее
Апрель 27, 2010
Если забивать текст в объект типа textField во флеше, то порой проявляется эффект, когда при выделении текст начинает прокручиваться, при этом визуально пространства тексту хватает. Решением является отказ в постоянном использовании свойства autoSize и добавления небольшого зазора по высоте вручную.
var padding = 2;
textField.autoSize = true;
textField.html = true;
textField.htmlText = yourText;
var th = textField._height;
textField.autoSize = false;
textField._height = th + padding
Код для AS2.
Апрель 27, 2010
Для сайта fistashki.org потребовалось доработать меню для обеспечивания корректной работы выпадающих подменю. При этом пункты, над которыми наводилась мышь, должны были подсвечиваться зеленым цветом, в том числе и пункт меню, соответствующий текущей странице, который в обычном состоянии должен был быть черным. Кроме того, в раскрывающемся списке ширина пунктов должна определяться по ширине самого длинного пункта меню.
Работа была произведена, меню работает в ie6-8, FF 2.0+, opera 9.6+, safari 4 и chrome 4 (две последние версии указаны такими просто потому, что под рукой не было более ранних версию браузеров для проверки).
Изначально хотел описать создание меню по шагам с остановками на всех встреченных багах, но прошел месяц, и могу только наметить общие технические приемы, которые были применены.
И да, поиск в интернете показал, что это чуть ли не единственная реализация, которая стабильно правильно работает в IE8! Продолжительные аплодисменты, переходящие в бурные овации. Читать далее
Апрель 20, 2010
Набор сюжетных штампов, Персей с лицом американского морского пехотинца и хорошие спецэффекты – что еще нужно для хорошего кино?
Заинтересовали следующие вопросы:
- Что же это за могущество людей, у которых в армии несколько десятков человек?
- Почему в царстве мертвых видно Луну?
- Почему в царство мертвых можно просто прийти?
….
Вообще, пришел к выводу, что если на актеров-героев надеть скафандры и отправить на Марс бороться с нечистью, то получилось бы примерно так же.
Читать далее