• Три правила проектирования интерфейсов с высокоскоростным пользовательским взаимодействием

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

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

      Правила организации высокоскоростного взаимодействия пользователя с приложением можно сформулировать следующим образом:

      1. Вычисления не должны блокировать взаимодействие с интерфейсом и его рендеринг — пользователь всегда должен иметь возможность указать на фокус своих интересов.
      2. Страница объекта, к которому обратился пользователь, должна отображаться мгновенно, не дожидаясь загрузки данных, в которых нуждается объект.
      3. Запросы в сеть не должны уходить одной большой группой, не должны отправляться сразу; должны откладываться на небольшое время, складываться и приоритезироваться в случае необходимости.


      Изложенная в этой заметке информация — это мой практический опыт проектирования и разработки интерфейса моего приложения для поиска и прослушивания музыки seesu.me. Приложения, в котором гармонично комбинируются огромные пласты данных из разрозненных сервисов, таких как last.fm, вконтакте, ex.fm, hypem.com, soundcloud.com, discogs.com, youtube.com


      Читать дальше →
    • Список оптимизаций рендеринга DOM, реализуемых на уровне Javascript фреймворка

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

        Предлагаю ознакомиться со способами, реализованными мной в приложении на системном уровне:

        • Использование CSS и переключение классов вместо перестроения DOM дерева
        • Повсемнестное кеширование выборок элементов ($('div.active_part span.highlighter')), атомарные операции по изменению (вместо всеобщей перерисовки, вместо переделывания больших участков DOM дерева)
        • Минимизации чтений DOM во время записи изменений состояний
        • Кеширование размеров и расположения элементов (это спасает от излишнего вычисления при считывании этих значений при наличии других изменений: чтение во время изменения множества частей дерева крайне негативно сказывается на производительности)
        • Аккуратное, не затягивающееся накопление изменений, необходимых произвести в DOM
        • Прикрепление частей изменяющихся коллекций единовременно (когда, например, в середину списка вставляется 3 новых элемента; createDocumentFragment) в конкретное место (after, before) вместо открепления всей коллекции от DOM и повторного прикрепления (и вместо того, чтобы перерисовывать весь список)
        • Прогрессивный асинхронный рендеринг: картина прорисовывается сразу с небольшим количеством деталей, затем деталей появляется всё больше
        • Клонирование нодов (как часть шаблонизации)
        • Кеширование и использование кеша результатов парсинга DOM шаблонов


        image image
        изображения из части с заголовком «Прикрепление частей изменяющихся коллекций единовременно...»
        Читать дальше →
      • Онлайн версия Seesu с вконтактовским Open API и поиском mp3 по soundcloud

          Сису — это очередное, небольшое приложение для удобнейшего поиска и прослушивания музыки. Комбинация last.fm, вконтакте, а также с недавних пор soundcloud. Написано на html/css/js.

          Со времени последнего поста на хабре о сису я не только запустил сайт проекта, но и благодаря вконтактовскому APIонлайн версию, которая работает не только на десктопе, но и на мобильных: проверены Android, iPhone, iPad и Opera Mini (в ней работает только soundcloud). Причём на айфонах работает в многозадачном режиме (в том числе на iPhone 3g, в котором в принципе нет многозадачности). Помимо онлайн версии существует виджет для оперы, расширение для хрома и виджет для apple dashboard.

          seesu
          Читать дальше →
        • Seesu (last.fm + vkontakte.ru виджет) в файрфоксе

            image
            Новая версия (1.7) виджета Seesu для поиска и прослушивания музыки может запускаться не только в опере, но и в файрфоксе. Для этого надо поставить расширение ZoooS Widget Runner. Последние изменения в виджете были произведены именно для поддержки этого расширения, хотя оно и сыровато.
            Читать дальше →
          • Удобный поиск по last.fm, проигрывание лучших треков и загрузка музыки с вконтакте в виджете Seesu

              seesu logoНовая (1.2) версия Seesu (зеркало), виджета для прослушивания музыки на основе last.fm и вконтакте.ру, приносит тонну баг фиксов, исправление проблемы инициализации флеша (если тот не во вьюпорте), лучшую поддержку ошибок серверов, улучшения в интерфейсе, рефакторинг кода и с ним лучшую скорость работы, а также

              — сробблинг (поддерживает «прослушивает сейчас» и общую отправку)
              — быстрый удобный поиск (саджестовый + полный), навигация по нему с клавиатуры
              — флеш в айфрейме (поэтому теперь не нужно добавлять виджет в белый список — флеш просто играет музыку)
              — уменьшен размер виджета с 225 кб до 70
              — поддержку Оперы 10.50

              seesu fast search

              С тех пор как была представлена версия 0.25 (или что-то около того) появилось и развилось много альтернатив
              Читать дальше →
            • Браузеры — автомобили

                До 17 марта Microsoft, в сответствии с директивой Еврокомиссии, должна была предложить пользователям Windows в странах ЕС специальное окно выбора браузеров (и предложила ). Так это выглядит — www.browserchoice.eu. Для нас, в отличие от ЕС, это событие выглядит скорее любопытным, чем практически полезным. Хочу приурочить в этому событию пост «А что было бы, если бы браузеры были автомобилями», в котором обыграть плюсы и минусы пятёрки ведущих браузеров, сподвигли описания каждого из них в «экране выбора» — именно по этим описаниям пользователи из ЕС теперь будут выбирать чем ходить в Интернет. Конечно каждый кулик хвалит своё болото. Но в 1000-й раз говорить о преимуществах и недостатках «в лоб» — скучно :)

                Итак, что если браузеры были бы автомобилями? (Где соврал, чего недоговорил, кто прав, кто виноват?). У кого лучше подсвеска, кого не ведёт на дороге, за чей руль лучше не садится?
                Читать дальше →
              • API вконтакте совсем скоро станет доступно не только для флеш приложений

                  Возможно вам всё равно, но мне как разработчику оперовиджета для вконтакте и last.fm — нет:
                  В течение недели API ВКонтакте станет открыт для разработчиков JS. Вы сможете создавать приложения ВКонтакте на JS (HTML, PHP etc.), и все Ваши наработки и навыки работы с API станут весьма востребованы.
                  vkontakte.ru/topic-1_22091956#n2

                  В общем, землю — крестьянам, api — веб-технологам!
                  Осталось дождаться беспарольной авторизации (oauth)
                • Javascript производительность? А как насчёт производительности перерисовки страниц?

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

                  Удивительно, что так мало внимания уделяется другим, более соответствующим аспектам производительности современных страниц, либо вообще не уделяется. Например, как быстро работают браузеры с динамично меняющимся стилем страницы (CSS)?

                  На Velocity 2009 Линдси Симон из компании Google говорил именно об этом. И на слайдах из презентации есть пара итересных графиков.
                  opera css change perfomance
                  Выяснилось, что Оперовский движок очень быстро работает с динамично меняющимся контентом страницы, а это именно то, что используется в интернете повсеместно. Что, если в будущем производительность браузера будет измеряться более комплексно, в отличии от простого JavaScript теста?

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

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

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

                    Первая муз. группа у которой есть твиттер @padlabearoutfit?

                    «Печальные и смешные тексты. Цепляет раз и навсегда.
                    Даже если по описанию вам покажется, что это всё лажа, то все равно скачайте и послушайте. Убедитесь сами или разубедитесь.» community.livejournal.com/i_am_rare/744020.html



                    ««Пэдла Бер» родился и вырос в г. Ленинграде, в конце восьмидесятых, в интеллигентной семье. Музыкой начал увлекаться с шести лет, с интересом слушая записи А. Вертинского, Б. Окуджавы и, так называемых, «джаз» и «рок» ансамблей.» www.afisha.ru/blogcomments/3921

                    Скачать Padla Bear Outfit — hipster

                    Вот так вот твиттер и свободное распространение альбомов вполне привычно для современных артистов. Вы ещё считаете, что кому-то нужен продюссер?
                  • P2P прямо в браузере

                      Новая версия p2p плагина Littleshoot делает возможным загружать торренты прямом в вашем браузере. Отлично работает на Маках и Виндоус; в IE, Лисе, Хроме и Сафари. А также поддерживает протокол Gnutella и интеграцию с Youtube.

                      Создатели проекта имеют опыт в разработке p2p проектах, а именно таких как Poisoned, Kazaa, XFactor, Pando, BitTorrent Inc., и Gizmo Project

                      Первый настоящий p2p плагин для браузеров (построен на NPAPI и ActiveX) поддерживает битторрент, гнутеллу (действительно децентрализованный протокол) и собственный Littleshoot p2p протокол.

                      www.littleshoot.org/beta (виа торрентфрик)

                      Глядишь и до реализации высказанной не так давно идеи проигрывания загружающегося видео и аудио прямо из p2p сетей непосредственно в браузере не так далеко.
                    • Проект сервиса для публикаций, с печатью их «по требованию»

                        image

                        Проект, идея


                        Сервис, сконцентрированный на пользовательских публикациях, их печати и поощрении авторов.

                        Цель публикации

                        1. Хочу поделиться идеями — «воруйте» на здоровье.
                        2. Поиск, но скорее не инвестора, а — команды, людей. Людей, которые не очень много умеют, но которые хотят много чему научится, в частности проектированию, программированию, реализации. Людей, которые составят мне компанию в самообразовании. Не важно что вы знаете сейчас, важно что вы хотите этим заниматься. Команду способную на большие свершения. Людей-альтруистов, понимающего, что копирование — основа функционирования культуры. ну и всё такое прочее. А хочу я научится практическому проектированию удобных вещей, программированию, рисованию (сам я отлично умею html/css).
                        Читать дальше →
                      • Нердкор

                          Я как носитель своего аватара обязан вести просветительскую деятельность



                          «Двойку получил — маму огорчил!»
                        • Пародийный проект «Тюрьмы — пиратам»

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

                            Строить тюрьмы нужно уже сейчас. Твой вклад очень важен!



                            Этот проект действительно стоит вложений
                            Читать дальше →
                          • Google присоединился к антимонопольной жалобе против Майкрософта

                              Гугл опубликовал следующий пост:

                              В прошлом месяце Европейская комиссия опубликовала постановление, в ответ на жалобу о том, что Майкрософт навязывает свой браузер Internet Explorer с операционной системой Windows, и нём было сказано, что такое навязывание «вредит конкуренции между веб браузерами, подрывает инновации и на корню подрезает выбор пользователей». Позже Митчел Бэйкер из Мозилы опубликовала комментарии: «Ослабление (фактически приближающаяся к полному истреблению) конкуренции, ослабление выбора пользователей и инноваций в том как люди получают доступ к интернету — это то, как компании Майкрософт ведёт бизнес»

                              Мы подписываемся, что бы стать третьей стороной в процессе Европейской комиссии.
                              Читать дальше →
                            • Джаракан

                              • Перевод
                              Уже нескольких месяцев маленькая команда разработчиков и тестеров работает над созданием нового движка ECMAScript/JavaScript для Оперы. Когда текущий движок ECMAScript — Футарк был впервые предоставлен публике, он был самым быстрым на рынке. Футарк был разработан в основном для быстрого выполнения кода. Традиционно это правильный компромисс разных платформ под которыми работает Опера.  

                              Веб — это постоянно изменяющаяся среда и завтрашние продвинутые веб приложения требуют быстрого выполнения скриптов, поэтому Опера снова принимает участие в соревновании по разработке самого быстрого скриптового движка.  

                              Название Джаракан как и предыдущие названия движков даётся — это форма письменности. (Футарк — скандинавский алфавит; Джаракан, также известен как чаракан — слоговая письменность для яванского языка)

                              Усилия по улучшению сфокусированы по трём основных направлениям
                              Читать дальше →
                            • Новая сборка Оперы 10 (1285)

                                Простая подписка на онлайн rss читалки


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

                                Изменения в работе с веб почтой


                                Предыдущая сборка включала возможность открытия, выбранного пользователем провайдера веб почты, при нажатие на ссылку mailto. Список провайдеров на тот момент состоял из Gmail, Yahoo! Mail и Windows Live Mail… В общем теперь решено не ставить в список провайдеров, которые официально не поддерживаются (хотя в Опере по прежнему работают над тем, что бы эти почты работали в браузере нормально)…

                                В списке теперь Opera Web Mail, Fastmail и Яяяяндекс!
                                image
                                Читать дальше →
                              • Встреча сочувствующих

                                  image

                                  В Москве 11 ферваля в Пушкинском сквере в 17:00 состоится пикет против новых поправок в 4ю часть ГК. Но это будет не просто пикет, и даже не митинг в привычном смысле этого слова. Это будет встреча людей.

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

                                  Словом сказать это будет мирное мероприятие — приходите и просто так, не боясь получить дубиной по голове от милиционера.
                                • Мозилла присоединилась к антимонопольному делу против Майкрософт

                                    Европейская комиссия позволила Мозилле присоединится к антимонопольному делу против компании Майкрософт.

                                    Около месяца назад комиссия признала, что компания Майкрософт нарушает свободную конкуренцию на рынке браузеров.

                                    Митчел Бейкер (Mitchell Baker, председатель Мозиллы) отметила, что нет ни малейшего сомнения, в том, что компания Майкрософт подрывает сводобную конкуренцию, затрудняет инновации и разумеется уменьшает возможность пользователей выбирать.

                                    Мозилла принята в дело, что называется как «третье заинтересованное лицо», и это позволяет компании приводить аргументы европейским инспекторам, открывает доступ к частному постановлению, отправленному компании Майкрософт около месяца назад и участвовать в слушанье лицом к лицу, если о таком запросит ответчик.
                                    Читать дальше →