bizwood.ru

Apr. 8th, 2011 03:59 am
ermouth: (Default)
[personal profile] ermouth

Сегодня в правительстве представлял местным предпринимателям и чиновникам бета-версию нашего нового проекта – над которым я без продыху работал последние два месяца по 8-10 часов в день.

Мы запустили в тестовом режиме (ограниченная функциональность без возможности регистрации пока) торговую площадку леспрома Северо-запада – bizwood.ru

Фоточки вот, пока превьюшками:

20110407_0563

 

20110407_0594

20110407_0448

Я невероятно устал за эти два месяца – мы ведь ещё параллельно два журнала подготовили – но очень доволен ) У меня впервые в жизни было такой силы вдохновение.

Подробности немного позже.

Date: 2011-04-08 12:25 am (UTC)
From: [identity profile] morfizm.livejournal.com
Поздравляю!

First impression bugs:
1. Нет кнопки "искать". Далеко не все люди умеют жать Enter.
2. Вводишь новое слово в поиске, нажимаешь Enter, меняется URL, но ничего не происходит, пока поиск не завершён. Я считаю, что нужно очищать список результатов и/или печатать сообщение "поиск исполняется, пожалуйста, подождите...".
3. Нельзя искать простые вещи, например, "о нас", "контакт", "связаться" и пр. "Ничего не нашлось". Сейчас имеется тренд, что люди в поиск вбивают слова, связанные с навигацией по сайту, а не только с поиском товаров.
4. В IE кнопка "back" не возвращает к предыдущим результатам поиска, хоть URL и меняется.
5. Имеется "Деревянный дом, лот g95c14my". Его можно найти в списке по слову "сечение". А по слову "дом" его найти нельзя.
6. Когда отображён список, ты кликаешь item, получаешь развёрнутый description. Там очень сложно что-то выделить, чтобы скопировать, т.к. после выделения - отпускаешь мышку - и item сразу сворачивается.
7. В левом нижнем углу треугольничек "errors on page" (ниже прикладываю копию ошибок). Вообще, по-моему ещё рано выбрасывать IE из материцы тестирования. Много людей пользуются.
8. Попробуй поискать "g95c14my". Ты увидишь упомянутый выше дом, сразу с деталями. Потом кликни "Заглавная". Потом кликни "Круглые лесоматериалы". Открывается опять тот же дом. Иногда с редиректом на лесоматериалы через несколько секунд, а иногда остаётся на доме. (При навигации надо очищать буфер, который ты заполнил предыдущими результатами поиска).
9. Открой "bhzu7ec8". Ты увидишь "Блокхаус, лот bhzu7ec8", "лот bhzu7ec8" подчёркнуты. Кликни на них. Происходят сразу два действия: открывается какая-то табличка с информацией (как если бы ты кликнул "свернуть", и открывается новое окно с переходом на ту же страницу.
9.1. Вообще, по-моему, линк "свернуть" ошибочно связан со всей формой целиком, а не только со словом "свернуть".
10. Переход по прямой ссылке (http://bizwood.ru/#!bhzu7ec8) сначала рендерит главную страницу, не понятно, зачем, а потом уже нужную.
11. Рендер главной страницы не плавный. Всё ёкается далеко влево (съезжая краем за зону видимости), а потом выравнивается.

===============
Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; chromeframe/10.0.648.204; chromeframe; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
Timestamp: Fri, 8 Apr 2011 00:17:01 UTC

Message: 'console' is undefined
Line: 210
Char: 5
Code: 0
URI: http://bizwood.ru/bizwood.js

Message: Object doesn't support this property or method
Line: 432
Char: 8
Code: 0
URI: http://bizwood.ru/bizwood.js

Message: Object doesn't support this property or method
Line: 432
Char: 8
Code: 0
URI: http://bizwood.ru/bizwood.js

Date: 2011-04-08 12:30 am (UTC)
From: [identity profile] ermouth.livejournal.com
спасибо, большинство этих багов уже зафайлены )

вообще, ИЕ это просто проклятье (

Date: 2011-04-08 01:13 am (UTC)
From: [identity profile] ermouth.livejournal.com
пункт 4 (с кнопкой Назад) и выпадающие ошибки скрипта исправлены. в ИЕ кстати ошибка, не у меня (

некорректно заимплеменчен hoisting -- работает не в соответствии со стандартом в моём случае.

Date: 2011-04-08 01:29 am (UTC)
From: [identity profile] morfizm.livejournal.com
Вижу. Отличный turn around, особенно для - сколько там у вас сейчас - 4 часа ночи? :)

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

Date: 2011-04-08 01:33 am (UTC)
From: [identity profile] ermouth.livejournal.com
полшестого. я просто после мероприятия этого сходил в офис, потом съездил вкусно покушал, а потом завалился спать )

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

Date: 2011-04-09 02:47 am (UTC)
From: [identity profile] ermouth.livejournal.com
п.2 исправлено )

Date: 2011-04-09 11:21 am (UTC)
From: [identity profile] morfizm.livejournal.com
Круто! Посмотрел, так намного лучше :)

Date: 2011-04-08 12:29 am (UTC)
From: [identity profile] morfizm.livejournal.com
Из понравившегося - как всегда, аккуратный, минималистский дизайн. Мало лишнего, легковесные страницы. Мало кликов, чтобы дойти до информации. Удобный разворот деталей. Быстро работает. (Удивительно быстро для российских сайтов в целом).

Date: 2011-04-08 12:38 am (UTC)
From: [identity profile] ermouth.livejournal.com
спасибо.

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

ну и плюс в ближайшем будущем это всё будет индексироваться -- хоть это и аякс. всё затачивалось под вот это http://code.google.com/intl/ru-RU/web/ajaxcrawling/docs/specification.html

Date: 2011-04-08 12:40 am (UTC)
From: [identity profile] morfizm.livejournal.com
O, cool! Я как раз писал тебе коммент про индексирование, но, я смотрю, ты просто ещё не сделал его. Интересный спек, почитаю. Жду поста с internals :)

Date: 2011-04-08 01:42 am (UTC)
From: [identity profile] morfizm.livejournal.com
По поводу "кэшироваться локально" - идея для небольших сайтов (в которых товаров, в принципе, не очень много, скажем, мегабайт в zip'е): пользователь открывает страницу и javascript параллельным потоком начинает по кусочкам скачивать zip. Когда всё скачалось, склеивает, распаковывает и переключается полностью на локальный кэш. С апдейтами будет гемор, но если апдейты редкие, то большинство времени всё будет "летать", кроме первых нескольких секунд - и, возможно первого запроса, если пользователь успеет его сделать :)

Date: 2011-04-08 02:03 am (UTC)
From: [identity profile] ermouth.livejournal.com
не, не так совсем.

у меня поиск идёт в два запроса, а не в один.

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

потом клиент разбирает ответ и запрашивает у сервера уже развёрнутое описание айтемов. причём только тех, которые в текущей сессии ещё не запрашивались -- уже полученные берутся из кэша.

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

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

Date: 2011-04-08 02:40 am (UTC)
From: [identity profile] morfizm.livejournal.com
Мы по-моему, про разные вещи говорим. Моя мысль была делать массированный read-ahead - т.е. что если информации не так много, то клиент может (в бэкграунде, не зависимо от действий пользователя) закачать всё в кэш. Т.е. в твоём дизайне это будет запросить полный список хэштэгов, а потом выкачать всё, что ещё не закэшировано. Можно оптимизировать, использовав сжатие. Просто для небольших магазинчиков заархивированной инфы с гулькин нос (никак не больше мегабайта-двух), а benefit огромен: после того, как всё скачалось, вообще никакого взаимодействия с сервером больше не нужно. Кроме, разве что, очень редких обновлений.

Насчёт двух проходного поиска - надо подумать.

У идеи есть один мега-недостаток - это минимум два round-trip'а на каждый "живой" запрос (когда кэш ещё пуст). Два round-trip'а это два round-trip'а. Конкуренты, делающие один round-trip побьют. Ну и для клиентов с медленным соединением это может hurt their experience.

Во всём остальном идея весьма соблазнительная. Надо ещё подумать. Например, очевидно, что нагрузка на сервер будет меньше. Суммарного трафика будет меньше. Хэши, если их очень компактно пересылать, могут уместиться в один TCP пакет, что есть very, very good.

Кстати, очевидно, ты можешь оптимизировать запросы по категориям, чтобы укладываться в один round-trip: если ты заведёшь id категорий ("категория" это прямой линк на список, с главной страницы), и у каждого "документа" будешь держать список id-шников, к которым он принадлежит, то в этом случае ты можешь, когда юзер кликает на категорию, вместе со строкой запроса пересылать серверу список хэшей, которые у тебя уже есть в кэше на эту категорию. Сервер пусть вернёт сразу все детали, но только для тех items, которых у тебя ещё нет.

Date: 2011-04-08 08:41 am (UTC)
From: [identity profile] ermouth.livejournal.com
а, ну так я уже так делал (про выкачивание всей базы) -- zoo29.ru

хэши пересылаются очень компактно -- примерно 30+9*n байт

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

автокомплит будет (это к следующему комменту)

Date: 2011-04-08 08:48 am (UTC)
From: [identity profile] morfizm.livejournal.com
zoo29.ru - офигенно! Здорово! *Очень быстро* Первые впечатления, наверное, получше, чем от bizwood.ru

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

Я не уверен, что ты понял последнее предложение. Отсылать на сервер не надо 10 тысяч. Отсылать надо только те хеши, которые входят в категорию. Если max по категории - пару сотен, то только пару сотен надо отправить. Это чтобы опитмизировать клики, которые не поиск по введённым словам, а клики на название категорий в меню.

Date: 2011-04-08 08:59 am (UTC)
From: [identity profile] ermouth.livejournal.com
про зоо29 -- да, там всё быстро, и как раз магазин без регистрации -- но оно не индексируется. ну правда и цели такой не стояло.

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

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

Date: 2011-04-08 09:05 am (UTC)
From: [identity profile] morfizm.livejournal.com
Про задержку - вау! Вот это да! :)
А как ты определил факт феномена? (Жаловались, что поиск не работает?)

Date: 2011-04-08 12:07 pm (UTC)
From: [identity profile] ermouth.livejournal.com
я показываю человеку магазин, он наколачивает в поиск что-то и потом несколько раз кликает по кнопочке с лупой -- не заметив, что всё уже нашлось. показываю другому -- та-же песня.

поэтому я сделал моргание.

Date: 2011-04-08 02:49 am (UTC)
From: [identity profile] morfizm.livejournal.com
Кстати, ещё одна идея: первый запрос (на хэши) можно делать ещё до того, как пользователь нажал "enter". Просто спрашивать раз в секунду-две, пока он вводит поисковые слова. Трафик небольшой, а у тебя уже хэши будут наготове. Ну и можно хранить на будущее таблицу хэшей для всех префиксов. Скажем, я ввожу слово "доска резная", и пока я его набираю, ты делаешь запросы на "д", "до", ... "доска", "доска р", ... "доска резная". Конечно, хэши на "д" и "до" можно будет выкинуть, но вот хэши на "доска" могут пригодиться. Например, резных досок не нашлось, и я уберу слово "резная", чтобы вообще понять, есть ли там доски. Останется просто "доска". А для неё хэши уже скачены.

Date: 2011-04-08 05:19 am (UTC)
From: [identity profile] morfizm.livejournal.com
Почитал спецификацию, хорошо сделали, одобряю :)

Date: 2011-04-08 12:38 am (UTC)
From: [identity profile] morfizm.livejournal.com
Ещё маленький кусочек feedback'а.
Я сначала хотел тебя похвалить, что ты смог сделать нормальное индексирование для поисковиков не смотря на то, что сайт на JavaScript, потому что Оцилиндровка site:bizwood.ru выдаёт хорошую страницу (http://bizwood.ru/#!j8a8ak8g). Но потом передумал хвалить.

Скажем, по слову "Дом" выдаётся та же страница с оцилиндровкой.
По слову "Брус" выдаётся вообще евровагонка: "http://bizwood.ru/#!4x6tbphe евровагонка"

Это непростая задача - правильно проиндексировать.
Можно, например, вначале починить баги, чтобы make sure, что URL *всегда* соответствует отображаемому контенту, а потом сделать статическую страницу со ссылками, которая не очень заметна с главной страницы, но позволяет поисковику enumerate them all.

Date: 2011-04-08 12:41 am (UTC)
From: [identity profile] ermouth.livejournal.com
ответил выше, поисковики нормально заиндексируют вот-вот, я ещё не заимплементил гугловский стандарт -- но всё затачивалось под него.

Date: 2011-04-08 04:13 am (UTC)
From: [identity profile] andrey-larin.livejournal.com
Ну ты ваще, атец!

Date: 2011-04-08 12:02 pm (UTC)
From: [identity profile] ermouth.livejournal.com
ты поразительно мил на юзерпике, бггг

Date: 2011-04-08 05:07 am (UTC)
From: [identity profile] romashka-b.livejournal.com
в сайтах я ничего не понимаю, но замечу, что ты выглядишь очень импозатно)

Date: 2011-04-08 12:02 pm (UTC)
From: [identity profile] ermouth.livejournal.com
и очень уставшим ( спасибо, Ромашечка!

Date: 2011-04-08 05:22 am (UTC)
From: [identity profile] morfizm.livejournal.com
Вообще, кстати, офигеть, как у вас там всё помпезно. Я долго думал, что мне это напоминает. Сейчас оформилась мысль: если скрестить заседание гос.думы с заседанием суда, то получится вот точно такой же междусобойчик. Я рад, что тебе удалось улыбнуться! =) (вторая фотка)

Date: 2011-04-08 12:01 pm (UTC)
From: [identity profile] ermouth.livejournal.com
там скорее на гримасу похоже )

ну, я бы не сказал что прямо уж совсем помпезно, но да, есть немного )

Date: 2011-04-08 07:06 am (UTC)
From: [identity profile] trubachev.livejournal.com
Ого!
Реально крутой проект. Респектос!

Date: 2011-04-08 12:00 pm (UTC)
From: [identity profile] ermouth.livejournal.com
спасип! и это, не вздумай бросить снимать -- мы с ромашкой вчера договорились, что сразу пришлём к тебе киллера о_О

Date: 2011-04-08 03:54 pm (UTC)
From: [identity profile] trubachev.livejournal.com
Я тут один проект проверну. Пока не буду говорить, чтоб не сглазить. И там видно буде

Date: 2011-04-08 07:13 am (UTC)
From: [identity profile] trescoed.livejournal.com
Симпатишно, только я не понял зачем эти стрелочки справа от "тип", "компания", "сечение" и т.д.?

Date: 2011-04-08 11:50 am (UTC)
From: [identity profile] ktototam-lj.livejournal.com
Направление сортировки.

Date: 2011-04-08 11:55 am (UTC)
From: [identity profile] trescoed.livejournal.com
Спрашивается, зачем восемь стрелочек если они выполняют одну и ту же функцию?

Date: 2011-04-08 11:58 am (UTC)
From: [identity profile] ermouth.livejournal.com
там вообще то разные столбцы. и по каждому возможна сортировка. и направление сортировки надо указывать именно в столбце.

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

и стрелочки эти -- стандарт де-факто уже больше 10 лет.

так что вопрос из серии "зачем подчеркивать все ссылки, если они выполняют одну и ту-же функцию".

Date: 2011-04-08 12:12 pm (UTC)
From: [identity profile] ktototam-lj.livejournal.com
А вот большая стрелочка справа сортирует по цене, насколько я понимаю. Может имеет смысл это помечать? Скажем столбик "цена" не вдавливать, но выделять направление сортировки. Так же как это делается при выборе столбца.

Date: 2011-04-08 12:14 pm (UTC)
From: [identity profile] ermouth.livejournal.com
нет, она сортирует по медалькам -- это типа релевантность (скорее, популярность). медальки можно будет покупать -- как в мамбе -- чтобы на какое-то время оказаться наверху выдачи.

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

Date: 2011-04-08 12:25 pm (UTC)
From: [identity profile] ktototam-lj.livejournal.com
Ага, нашел в домиках медальки, теперь понятнее.

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

Date: 2011-04-08 12:27 pm (UTC)
From: [identity profile] ermouth.livejournal.com
это первый кандидат на исправление. за выхи уже всё станет ок.

Date: 2011-04-08 10:11 am (UTC)
From: [identity profile] gintaras.livejournal.com
Поздравляю!

Date: 2011-04-08 11:59 am (UTC)
From: [identity profile] ermouth.livejournal.com
спасибо!

Date: 2011-04-08 11:56 am (UTC)
From: [identity profile] ktototam-lj.livejournal.com
Мне вот почему-то хочется главную страницу чуууточку повеселее.

Date: 2011-04-08 11:59 am (UTC)
From: [identity profile] ermouth.livejournal.com
да, там будут картинки и баннер для незарегистрированных пользователей. лоск наводить будем чуть позже )))

Date: 2011-04-09 02:14 pm (UTC)
From: [identity profile] bezuma.livejournal.com
поздравляю!

п.с. на последнем фото ты просто прелесть )

Date: 2011-04-12 12:50 pm (UTC)
From: [identity profile] rogarik.livejournal.com
Thumbs UP!

Кстати из Израиля сайт не поднимается.

Date: 2011-04-12 12:52 pm (UTC)
From: [identity profile] ermouth.livejournal.com
да, я вижу. написал в саппорт хостера.

Profile

ermouth: (Default)
ermouth

November 2021

S M T W T F S
 123456
78910111213
14151617181920
21 222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 25th, 2025 06:58 pm
Powered by Dreamwidth Studios