<? Петров ?>

Хранение и загрузка данных в png

Август 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. если вы взяли изображения из соседних по теме постов и ничего не получилось, то все дело в разных форматах паковки данных в изображение.

Нижний Новгород 2010. Рок-лето

Июль 26, 2010

Метнулся не два дня в Нижний, по городу погулять и заодно музыку послушать, 24 июля прошел фестиваль Роклето-2010. Комментарии есть по поводу всего, поэтому опущу под кат. Ах да, картинок нет, т.к. фотографировал не я; включаем фантазию!

Содержание

Читать далее

fileshare

Июль 22, 2010

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

Суть скрипта простая – быстро и удобно рассшаривать файлы с домашнего сервера по веб, при необходимости запаковывая их в архив, и раздавая по короткой ссылке.

Выглядит так:

$ share add -name myarchive file1 file2 ..
download url: http://yourhost.com/542b2

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

Ссылка на хауту – http://wiki.github.com/can3p/share/

К слову, разворачивать все это достаточно просто, через месяц после возни со всем этим, поднять на другой машине удалось минут за 10, а если действовать по написаному, то еще быстрее.

Якоб Нильсен «Web-дизайн. Удобство использования Web-сайтов»

Июль 21, 2010

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

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

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

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

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

TextField _height и _width в Actionscript 2

Июнь 1, 2010

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

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

field.htmlText = somNewText;

!!field._height; //update  dimensions

Ищу работу

Май 4, 2010

Летом прощаюсь со своим предыдущим местом работы и начинаю неторопливо искать новое место, идеально начать работать с августа.

Если вам, вашим знакомым или знакомым ваших знакомых нужен технолог, который знает, как верстать хорошо для всего зоопарка браузеров, писать много js-кода, а также знает actionscript 2 & 3 и способен разобраться в большой существующей кодовой базе, и у вас есть интересный проект, который будет полезен людям, то мой e-mail – dpetroff@gmail.com. Остальные контакты здесь.

Территориально нахожусь в Москве, рассмотрю варианты переезда в любую точку замного шара.

Usability в open source IM-клиентах

Апрель 28, 2010

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

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

Для примера можно рассмотреть с точки зрения простоты использования три open source клиента обмена мгновенными сообщениями, каждый из которых поддерживает множество протоколов и даже, возможно, аудио-видео чаты: kopete, pidgin, empathy.

Исходно спросим себя, что же захочет сделать в программе пользователь? Например так:

  1. Поговорить с человеком из контакт-листа
  2. Найти человека, которого нет в контакт-листе и добавить его туда
  3. Поговорить с человеком, не добавляя его в контакт лист
  4. Отправить файл контакту
  5. Посмотреть информацию о контакте, с которым разговаривает или о контакте из списка
  6. Включить/выключить текстовые и звуковые оповещения
  7. Смайлики поменять, как же без этого.
  8. Поменять внешний вид окна чата – шрифты, сам способ отображения, если такое возможно
  9. Поменять внешний вид списка контактов – включить/выключить отображение аватаров, статус, показать или скрыть контакты не в сети

Читать далее

Прокрутка в текстовых полях во Flash

Апрель 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.

Горизонтальное css-меню

Апрель 27, 2010

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

Работа была произведена, меню работает в ie6-8, FF 2.0+, opera 9.6+, safari 4 и chrome 4 (две последние версии указаны такими просто потому, что под рукой не было более ранних версию браузеров для проверки).

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

И да, поиск в интернете показал, что это чуть ли не единственная реализация, которая стабильно правильно работает в IE8! Продолжительные аплодисменты, переходящие в бурные овации. Читать далее

Битва титанов

Апрель 20, 2010

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

Заинтересовали следующие вопросы:
- Что же это за могущество людей, у которых в армии несколько десятков человек?
- Почему в царстве мертвых видно Луну?
- Почему в царство мертвых можно просто прийти?
….

Вообще, пришел к выводу, что если на актеров-героев надеть скафандры и отправить на Марс бороться с нечистью, то получилось бы примерно так же.

Читать далее