Pull to refresh
50
0
Глеб Арестов @arestov

User

Send message

Linkkraft: делаю offline-first браузер, который организует открытые вкладки и персональные заметки

Reading time4 min
Views7.3K

Расскажу про браузер/персональная базу знаний, который делаю. А также про источники вдохновления (например, хабр в 2009) и альтернативные решения проблем.

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

Читать далее
Total votes 44: ↑44 and ↓0+44
Comments68

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

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

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

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

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


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


Читать дальше →
Total votes 55: ↑50 and ↓5+45
Comments27

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

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

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

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


image image
изображения из части с заголовком «Прикрепление частей изменяющихся коллекций единовременно...»
Читать дальше →
Total votes 68: ↑66 and ↓2+64
Comments31

Онлайн версия Seesu с вконтактовским Open API и поиском mp3 по soundcloud

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

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

seesu
Читать дальше →
Total votes 41: ↑37 and ↓4+33
Comments38

Seesu (last.fm + vkontakte.ru виджет) в файрфоксе

Reading time1 min
Views1.6K
image
Новая версия (1.7) виджета Seesu для поиска и прослушивания музыки может запускаться не только в опере, но и в файрфоксе. Для этого надо поставить расширение ZoooS Widget Runner. Последние изменения в виджете были произведены именно для поддержки этого расширения, хотя оно и сыровато.
Читать дальше →
Total votes 40: ↑30 and ↓10+20
Comments12

Удобный поиск по last.fm, проигрывание лучших треков и загрузка музыки с вконтакте в виджете Seesu

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

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

seesu fast search

С тех пор как была представлена версия 0.25 (или что-то около того) появилось и развилось много альтернатив
Читать дальше →
Total votes 48: ↑41 and ↓7+34
Comments25

Браузеры — автомобили

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

Итак, что если браузеры были бы автомобилями? (Где соврал, чего недоговорил, кто прав, кто виноват?). У кого лучше подсвеска, кого не ведёт на дороге, за чей руль лучше не садится?
Читать дальше →
Total votes 234: ↑160 and ↓74+86
Comments154

API вконтакте совсем скоро станет доступно не только для флеш приложений

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

В общем, землю — крестьянам, api — веб-технологам!
Осталось дождаться беспарольной авторизации (oauth)
Total votes 135: ↑97 and ↓38+59
Comments113

Javascript производительность? А как насчёт производительности перерисовки страниц?

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

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

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

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

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

В контексте комплексного тестирования JavaScript и памяти Джаракан, похоже, увеличит показатели искусственных JavaScript тестов, но, возможно, за счет использования большего количества памяти.
Total votes 38: ↑31 and ↓7+24
Comments28

Твиттер, музыка и непослушные медведи

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

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



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

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

Вот так вот твиттер и свободное распространение альбомов вполне привычно для современных артистов. Вы ещё считаете, что кому-то нужен продюссер?
Total votes 30: ↑11 and ↓19-8
Comments9

P2P прямо в браузере

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

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

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

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

Глядишь и до реализации высказанной не так давно идеи проигрывания загружающегося видео и аудио прямо из p2p сетей непосредственно в браузере не так далеко.
Total votes 9: ↑6 and ↓3+3
Comments13

Проект сервиса для публикаций, с печатью их «по требованию»

Reading time2 min
Views537
image

Проект, идея


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

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

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

Нердкор

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



«Двойку получил — маму огорчил!»
Total votes 60: ↑29 and ↓31-2
Comments17

Пародийный проект «Тюрьмы — пиратам»

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

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



Этот проект действительно стоит вложений
Читать дальше →
Total votes 27: ↑13 and ↓14-1
Comments13

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

Reading time2 min
Views1.9K
Гугл опубликовал следующий пост:

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

Мы подписываемся, что бы стать третьей стороной в процессе Европейской комиссии.
Читать дальше →
Total votes 54: ↑43 and ↓11+32
Comments183

Джаракан

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

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

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

Усилия по улучшению сфокусированы по трём основных направлениям
Читать дальше →
Total votes 55: ↑48 and ↓7+41
Comments23

Новая сборка Оперы 10 (1285)

Reading time1 min
Views701

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


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

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


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

В списке теперь Opera Web Mail, Fastmail и Яяяяндекс!
image
Читать дальше →
Total votes 28: ↑21 and ↓7+14
Comments25

Встреча сочувствующих

Reading time1 min
Views447
image

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

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

Словом сказать это будет мирное мероприятие — приходите и просто так, не боясь получить дубиной по голове от милиционера.
Total votes 96: ↑78 and ↓18+60
Comments92

Information

Rating
Does not participate
Date of birth
Registered
Activity