Нарвался тут на днях на проблему: добавляю полноценный динамический график в админку Magento, всё, казалось бы, хорошо, и вдруг
Cannot read property "type" of undefined
Самое забавное, что в тестовом скрипте, работающем с Magento через Mage::app('admin'), код отлично отрабатывает, а в админке отваливается.
В итоге нашёл баг репорт от 21 января 2011 года.
Вкратце: функция Array.prototype.reduce в Prototype конфликтует с Google Chart API. Грязный хак решающий проблему:
<script type="text/javascript"> Array.prototype.reduce = undefined; </script>
UPD: на дашборде и странице конфигурации, как выяснилось, баг не наблюдается
Где-то 2 раза в месяц нашему замечательному саппорту приходится отвечать на один и тот же вопрос: «Как добавить кнопки „Like“ и „Facebook Connect“ в мобильную тему магазина?» (ВКонтакте, Твиттер, Пинтерест, etc).
Легко! Точно так же, как и для полноценной десктопной версии: берёте соответствующий модуль для вашей CMS, устанавливаете, обновляете шаблоны соответствующей темы. Ну, или читаете документацию и реализуете сами.
Новая модная фича готова. Profit?
А вот и нет. Предлагаю вернуться в самое начало. Нужно добавить какой-то социальный плагин в мобильную тему.
Главный вопрос, который стоит задать — это не «как сделать?», а «для чего?»
Oсновной принцип работы большинства подобных виджетов — пользователь, имеющий аккаунт в соц. сети, совершает некое действие и получает уникальный для него ответ от выбранного сервиса. Ключевые слова здесь — «пользователь» и «уникальный».
Для того, чтобы плагин имел возможность общаться с сервисом требуется одно обязательное условие — пользователь должен быть авторизован на сайте провайдере сервиса. Попробуйте выйти из Фэйсбука и лайкнуть любою страницу. Что получилось? Фэйсбук попросил залогиниться. Аналогично ведут себя и остальные социальные гиганты.
Действительно, от чьего имени отправлять запрос? С какого аккаунта прикажете получать информацию для регистрации в магазине? На чью стену слать комментарии?
В случае с десктопными версиями всё понятно — большинство пользователей сидят в социалках через браузер. Как ни крути, а авторизационная сессия доступна практически всегда. Да и авторизоваться, имея под руками большой монитор и полноценную клавиатуру, значительно легче.
А что же в случае с мобильной платформой? Люди используют приложения.
Основной точкой входа является уже вовсе не браузер. Приложение адаптировано под малые экраны, умеют работать с железом девайса, хранят сессию в собственном изолированном хранилище. Так с какой же стати отказываться от удобного инструмента и возвращаться к старой концепции «браузер — окно в интернет»?
Итак. Сайт мы открываем в окне мобильного браузера, социальную сеть — в приложении. В итоге при использовании социального плагина пользователя автоматически перебросит на сайт социалки и попросит авторизоваться (пусть даже и на мобильной версии). Попробуйте, это на самом деле та ещё задачка, особенно со сложным паролем. А если учесть ещё и всякие проверки на вход с незнакомого устройства, то уже ни о каком «просто нажми одну кнопку» говорить не приходится. А паранойя, ведь, берёт своё — после авторизации надо в отдельной вкладке снова открыть Фэйсбук (мы же после лайка вернулись таки на первоначальный сайт, не забыли) и разлогиниться. Сколько получается шагов? Три? Пять? Десять? Само собой, банально скопировать ссылку и вставить её в приложении значительно проще.
Так что там говорили про упрощения и расширения для мобильных пользователей?
Социальные виджеты в мобильных темах бессмысленны.
P.S.: темой влияния социальных плагинов на время загрузки страницы займёмся как-нибудь в следующий раз
Здравый смысл продолжает сдавать позиции под напором прогресса и маркетинга. Всё чаще и чаще приходят письма вида:
Здравствуйте Василий,
Мы предоставляем услуги запрошенные в прошлом письме. Для активации необходимого функционала направьте, пожалуйста, запрос на адрес [email protected]
Спасибо что обратились в нашу фирму «Рога и копыта». Всего Вам наилучшего!
Пожалуйста, заполните нашу анкету контроля качества службы поддержки http://www.roga-n-kopita.com/support/generic-survey/
С уважением,
Зицпредседатель Фунт
Служба работы с клиентами
Рога и копыта
584.327.1559
Черноморское отделение
Арбатовской конторы
ПО ЗАГОТОВКЕ
РОГОВ И КОПЫТhttp://www.roga-n-kopita.com/
Адрес в интеренете: http://www.roga-n-kopita.com/
Клиентский отдел: http://www.rng.com/
Телефон: (123) 234-345-456 (бесплатно для региона Энск)
(234) 345-4567
(345) 456-567-678 (город Эмск, черноморский регион)Факс: (654) 987-3126 или (856) 204-9045
Из всего письма ценность для клиента имеет всего одна строчка, всё остальное — просто информационный мусор, дублирующий раздел контактов на сайте.
С точки зрения корпоративных правил всё замечательно. Рекомендации методички «5 простых способов превратить деловые письма в инструмент маркетинга» выполнены. Можно ставить галочку напротив пункта «работа с клиентами» и идти получать премию.
Представляю, как какой-нибудь клерк, высунув язык, потея от напряжения строчит каллиграфическим почерком длинную подпись. Факсимиле, конечно, изобрели давным давно, но что-то не верится.
И для сравнения письма прошлых веков.
Очередная попытка воспитать Бабу-Ягу младшего тестировщика в своём коллективе в самом разгаре. В процессе появился такой вот список под названием «сам виноват».
Поленились сделать нормальное описание? Готовьтесь получить в баг-репорте список не только своих «насекомых», но и подробный отчёт о недостатках системы в целом.
Сказали: «Ориентируйся на старое ТЗ»? Весь, даже самый незначительный и уже неактуальный, функционал должен быть реализован. Что-то упущено? Придётся добавить.
Все понадеялись, что новый сотрудник самостоятельно вникнет в детали системы по предоставленной документации? Ну, вы же и сами в состоянии проверить работу при всех возможных входящих данных и настройках, правда?
Все баги превращаете в «фичи»? Ждите старых знакомых в следующем репорте.
«Пользователь никогда такого не сделает, не стоит тратить время». Вы никогда не общались с парнями из поддержки, да? Ну, и не удивляйтесь, если в следующий раз список тестов уменьшится до минимально очевидного.
Всё просто. Так что если что-то не заладилось — сам, как уже говорилось, виноват.
Главное не забывать, что опыт — дело наживное. Молодёжь очень быстро всему научится и будет составлять памятки по работе с ленивыми программистами. А пока, будем наставлять и подсказывать.
Значение и происхождение фразы я расписал в «Что значит „дьявол кроется в деталях“?»
«Дьявол кроется в деталях» — довольно расхожая фраза. Самое лучшее резюме при разборе провального предприятия или в попытке переубедить оппонента. Но люди, как ни забавно, трактуют это выражение абсолютно по-разному:
— Бог, любовь, чувства — не надо пытаться понять что это. Как только начнёшь пытаться анализировать, разбирать на составные части, пытаться вычленить суть и подвергнуть всё ананализу — чудо исчезнет. Просто прими. Дьявол кроется в деталях.
— Одной из отличительных черт человека является его способность к абстрактному мышлению. Навыки делать обобщения. Первобытному человеку было достаточно знать, что под деревом можно укрыться от дождя. Место, где растёт много деревьев — лес. Какой лес — не важно. Позже пришло понимание, что лес может быть разным. И появились берёза, дуб, осина, вяз и орешник. У деревьев появились отличия. Но эти детали были совершенно излишними в самом начале. Есть задача и минимально необходимая абстрактная база для её решения. Дьявол кроется в деталях.
По сути, всего лишь взгляд на одну и ту же проблему с разных точек зрения. На деле же, противоборствующие до сих пор идеологии.
Глубоко копать не будем, пусть логики-рационалисты сами решают что было раньше — яйцо или курица. Когда-нибудь им это обязательно удастся.
А хранителей чудес прямиком отправим к «Психологии влияния» Роберта Чалдини:
Я пришел на эту встречу, посвящённую медитации, и привел с собой заинтересованного друга. По мере того как лекторы объясняли основные принципы, мой друг становился все более беспокойным. По окончании лекции мой друг поднял руку и мягко, но уверенно опроверг изложенные принципы. Менее чем за две минуты он перечислил множество противоречий и неточностей. Воздействие этого выступления на лекторов было угнетающим. После смущенного молчания они попытались дать ответ и, в конце концов, признали, что мысли моего друга «интересные, но требуют более подробного рассмотрения». В конце лекции вербовщиков буквально осадила толпа слушателей, желающих заплатить 75 долларов за курс обучения технике. Озадаченный, я попытался объяснить реакцию аудитории ее неспособностью понять логику доказательств моего коллеги. К моему удивлению, оказалось, что эти люди достаточно хорошо поняли суть высказанных критических замечаний. Именно неопровержимость доводов моего друга заставила их немедленно записаться на курсы. Это были люди с реальными проблемами; и они отчаянно хотели разрешить свои проблемы. Мой друг показал, что теория, на которую они так надеялись, ложная. Паника! Что-то надо было сделать немедленно, прежде чем логика возьмет свое и снова оставит их без надежды. Необходимо было быстро возвести стены, чтобы укрыться за ними от доводов рассудка. И не имеет значения, что крепость, которая строится, похожа на карточный домик. «Скорее в укромное место, чтобы скрыться от логичных мыслей! Вот, возьмите эти деньги. Фюйть, спасен как раз вовремя. Больше не надо думать об этих проблемах».
Вот такое длинное и пространное введение, частично иллюстрирующее дальнейшее. К сожалению, в последнее время появляется ещё одна трактовка: неспособность людей сосредоточиться на одной теме.
Ну-ка, как часто вы что-то обсуждаете, приводите какой-то пример и собеседник тут же цепляется за него, начинает сыпать историями из жизни и, в итоге, просто теряет нить первоначального разговора? Сколько сил приходится тратить на то, чтобы вернуть человека к основному направлению?
Что делать с такими людьми? Каждый раз напоминать первоначальную мысль? Брать линейку и за каждое отклонение от темы бить по рукам? Или просто поддаться на провокацию и вернуться к разговору позже? И да, я считаю что подобное поведение — это просто провокация. Неосознанная, самопроизвольная, но провокация. Подобная проблема уже давно существует в интернете — «троллей» не любит никто. Но в сети к подобному поведению уже привыкли и частично научились если не противостоять, то, хотя бы, игнорировать. В реальной же жизни такой бессознательный «троллизм» доставляет уйму проблем и съедает необоснованно много времени.
Дьявол кроется в деталях. Так что давайте будем собраны, последовательны и не позволим мелочам завладеть нашим вниманием раньше, чем того потребует ситуация.
Говорят, считается что в наше время начинать любую статью с таких общих слов как «в наше время», «считается» и «говорят» — это худшее начало для любой продающей статьи. К счастью, это ни разу не маркетинговая статья, а всего лишь первый пост в блоге, так что буду пользоваться ситуацией.
Не знаю как другим, но мне никогда не удавалось застать журнал в самом зародыше. Время, когда общее направление ещё не выбрано или просто не устоялось, вероятно, самое интересное и непредсказуемое для читателя (для меня, по крайней мере, было бы именно так). Пролистать же кого-то из давно пишущих до первых записей я не осилил — всё время отвлекался на старые статьи и в итоге бросил это неблагодарное занятие. Поэтому чёткого понимания того что и как сейчас писать у меня нет. Но это же и не важно, так ведь?
Введение имеет большое значение для новых книг, газет и рекламы — всего того, что зависит от первого впечатления. А вводная статья в блоге — это не более чем «Привет, мир, вот и я, давай дружить! Приходите позже, будет интересно!». Так что, приходите, будет интересно.
На самом деле предыдущее предложение здесь только из-за того, что я не придумал как бы половче закончить мысль и пойти дальше. В действительности, я пишу для себя и весь блог — не более чем место субъективных заметок на вольную тему. Само собой, статьи на тему электронной коммерции, веб-разработки, PHP, Magento и Prestashop так же будут — не могу же я обойти стороной работу, но совсем не хочется создавать чисто технический блог. Посмотрим, как оно в дальнейшем получится.
Ну вот, официальная часть закончена, всем спасибо, напитки и сувениры раздаваться не будут.