Pull to refresh
180
0
spmbt @spmbt

Пользователь

Send message

Юзабилити-тестирование на коленке

Reading time4 min
Views3.4K
Я вообще довольно давно интересуюсь темой юзабилити и проектированием интерфейсов, сценариями, персонажами. Но я не занимаюсь этим профессионально. До этого момента я довольствовался только знанием того, как это делается «по-взрослому», и убеждением в том, что «по-хорошему» проекты надо развивать через UI-тестирование (test first ;). Но, как обычно, дальше разговоров и грустных вздохов не заходило.
А началось все с того, что в очередной раз обсуждая проект, фичи и дальнейшие планы, я взял и ляпнул: «Поехали в институт и проверим на студентах».

Читать дальше →

Тест на скорость ServerSide

Reading time11 min
Views2.2K
В последнее время стали очень популярны тесты производительности JavaScript движков, но в основном они касаются Client Side JavaScript. Меня заинтересовал вопрос: как обстоят дела с Server Side? Но тестировать только Google V8 и SpiderMonkey было бы неинтересно. Ясно, что результаты будут схожи с Client Side — движки-то те же. Поэтому нужно было добавить к тестам что-то, что недоступно в браузере, однако достаточно распространено, а также постараться использовать специфичные для серверных задач тесты. Этим недостающим объектом для тестов виделся компилятор JScript из .Net Framework. Однако предварительные результаты тестов стали сюрпризом для меня, и я решил добавить четвертого игрока из той же команды.

Но обо всем по порядку

Как выбрать помещение для интернет-магазина в реале

Reading time7 min
Views34K
Маркетинг магазина в реале начинается с выбора места. Есть два пути решения задачи: так называемый «жоп-филинг», то есть интуитивное принятие решения и продуманный просчёт.

Общая задача такая:
  • Есть интернет-магазин, нужна точка в реале;
  • Место должно способствовать наибольшей прибыли точки как отдельного розничного магазина;
  • И хорошо работать как пункт самовывоза интернет-магазина.
Читать дальше →

Hg Init: Часть 1. Переобучение для пользователей Subversion

Reading time9 min
Views124K
Hg Init: Учебное пособие по Mercurial.


Mercurial — это современная распределенная система контроля версий с открытым кодом. Эта система — заманчивая замена для более ранних систем вроде Subversion. В этом простом учебном пособии в шести частях Джоэль Спольски (Joel Spolsky) рассказывает о ключевых принципах Mercurial.

Если вы использовали Subversion, то Mercurial будет непонятным. Эта часть рассказывает о главных отличиях при работе с Mercurial. Если вы никогда не использовали Subversion, то можете просто пропустить эту часть.

Часть 1. Переобучение для пользователей Subversion


В каком же я был смятении, когда программисты в моей компании решили сменить Subversion на Mercurial!

Для начала, я начал приводить всевозможные тупые причины, по которым нам не надо ничего менять. «Мы должны хранить репозиторий на центральном сервере, так безопаснее», — сказал я. Знаете что? Я был неправ. При работе с Mercurial у каждого разработчика на жестком диске хранится полная копия репозитория. Это, на самом деле, безопаснее. В любом случае, почти в каждой команде, использующей Mercurial, центральный репозиторий тоже существует. И вы можете делать резервное копирование этого репозитория со всей необходимой одержимостью. А еще можете устроить трехступенчатую защиту с Сайлонами, Штурмовиками и прелестными лабрадудлами или что там требует ваш IT-отдел.

Читать дальше →

Колоночная верстка

Reading time5 min
Views16K
Существует много способов по верстке колоночных макетов. Уже не один нос разбит в течении холиваров, разожженных по поводу использования тех или иных методов. Казалось бы, что все должно быть предельно ясно и понятно, но все-равно возникает много трудностей. Я хочу и свою лепту вложить во всеобщее благое дело, и потому потратил относительно немного времени на эксперименты, которые привели меня к созданию еще одного метода, в котором есть следующие плюсы и минусы:

Плюсы
  • Есть прижимающийся к полу футер
  • Колонки меню растягиваются по 100% высоте
  • Колонок может быть сколько душе угодно
  • Колонки могут быть как лево- так и правосторонними, а также совмещенными, например 2 справа и 1 слева
  • Ширина как резиновая, так и фиксированная
  • Критический минимум хаков
  • Не используется Javascript
  • Не используются бекграундовые изображения для создания эффекта колонки
  • Никаких таблиц
  • Одинаковый результат в ie5.5, ie6, ie7, ie8, ff3.5, o10, chrome4 (Если у вас не работает в каком-то браузере — отпишитесь, пожалуйста, в комментах. Исправим и приведем к универсальному виду)

Минусы
  • Есть несколько «лишних» блоков. (Я бы и сам рад от них избавиться)
  • Есть несколько абсолютно-позиционируемых блоков
Читать дальше →

Архитектура YASS. Часть 2: выборка по CSS-селектору

Reading time5 min
Views1.1K
Статья о модульной загрузке была первой ласточкой в ряду заметок, в которых я собираюсь шаг за шагом рассказать, на каких принципах построена YASS, и каковы были результаты тестирования на максимальную производительность каждой части этой библиотеки. Но обо всем по порядку.

Постановка задачи



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

В качестве иллюстрации спецификации можно привести следующие примеры:

//вернет элемент с идентификатором my_id
querySelectorAll('#my_id')
//вернет все элементы с классом external
querySelectorAll('.external')
//вернет все абзацы на странице
querySelectorAll('p')


Однако уже тут можно отметить один момент: очень часто нам нужно выбрать просто элемент по его идентификатору или найти все элементы с определенным классом. Эти операции встречаются достаточно часто во всех JavaScript-библиотеках, поэтому они должны выполняться максимально быстро. Запускать весь механизм анализа входной строки селектора просто в том случае, когда нам нужно вернуть один-единственный элемент, заданный с помощью идентификатора, крайне неосмотрительно. Здесь мы можем воспользоваться принципом ленивого программирования: «не делай того, чего можно не делать», — и достаточно сильно ускорить работу для простейших случаев.
Читать дальше →

Уровни владения HTML, CSS и Javascript: Часть 2. CSS

Reading time4 min
Views10K
Вашему внимание представляется вторая часть серии небольших заметок об уровнях владения HTML, CSS и Javascript. Сегодя речь пойдет о CSS. Эта часть является перевод отрывка «Levels of CSS knowledge», статьи, которую 11 января 2006 года на своем блоге опубликовал Эмиль Стенстром, где автор пытается идентифицировать и охарактеризовать основные группы людей, использующих CSS, а так же понять способы влияния на эти группы со стороны движения за веб‑стандарты.

Читать дальше →

Веб-типографика сегодня. Часть I

Reading time7 min
Views28K
Часть IЧасть IIЧасть IIIЧасть IVЧасть V — Часть VI

Часть I



Как-то ко мне обратился знакомый дизайнер с просьбой разобраться в странной по его мнению ситуации. Клиент просил «сделать так же, как у Apple», но с использованием собственных способов расположения блоков, изображений, цветовой гаммы и текста. В общем, дизайн в итоге получался совершенно непохожий на apple.com, но этого, собственно, и добивался клиент. И вроде бы у дизайнера получилось, но… Клиенту по-прежнему не нравилось, он всё равно требовал переделать макет. По его ощущения «что-то было ну совсем не так». А что именно — тот объяснить был не в силах. Вот и возник вопрос у моего коллеги по поводу того, как угодить капризам клиента и понять его чаяния. Оказалось всё не так просто, но вполне объяснимо. Я и раньше сталкивался с данной проблемой. Поэтому решил попробовать изложить свои мысли по этому поводу.

Итак, какова ситуация в области современной веб-типографики и какими способами следует решать возникающие проблемы?
Читать дальше →

apache+nginx+gzip_static+yuicompressor

Reading time6 min
Views15K
В этой статье я опишу принципиальные различия Apache и Nginx, архитектуру фронтэнд-бэкэнд, установку Apache в качестве бэкэнда и Nginx в качестве фронтэнда. А также опишу технологию, позволяющую ускорить работу веб-сервера: gzip_static+yuicompressor.
Читать дальше →

Коротко об истории объектно-ориентированного программирования

Reading time6 min
Views30K
Эта статья была написана под влиянием впечатлений, полученных автором в ходе одной дискуссии на Хабре, и представляет небольшую серию переводов материалов из свободных источников об истории объектно-ориентированного программирования, основным из которых является Википедия, плюс абсолютно предвзятые выводы автора из прочитанного материала.

Если вам интересно узнать, какой язык в действительности был первым ООП-языком на свете, могут ли Java и C# называться чистыми ООП-языками, а также проникнуться некоторыми другими деталями, приглашаю вас под кат…

Читать дальше →

Рецепт быстрого приготовления расширений под популярные браузеры

Reading time2 min
Views1.2K
0147 (1)

Возникла задача написание простенького расширения под все (по возможности) популярные браузеры. Деятельность расширения заключается во внедрении javascript`а в тело документа.
Читать дальше →

Стоит ли гоняться за тремя копейками, когда под ногами лежит рубль?

Reading time3 min
Views2K
image
Я часто задаю вопрос, что лучше, много маленьких проектов по три рубля, или один большой за 30? Что лучше, 30 дешевых работников, или 3 высококвалифицированные специалиста? Спорить можно долго, но правильный ответ находится не в самом вопросе, а за его пределами.

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

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

Читать дальше →

Css-баллун без графики

Reading time3 min
Views13K


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

Читать дальше →

Статический анализ исходного кода на примере WinMerge

Reading time6 min
Views3.2K
Сегодня я хочу посвятить пост тематике, почему инструменты анализа исходного кода полезны вне зависимости от уровня знаний и опыта программиста. А польза такого анализа будет продемонстрирована на примере инструмента, который известен всем программистам — WinMerge.

Читать дальше →

Пошаговая установка Node.js на Windows без виртуалок

Reading time3 min
Views60K


Эта статья предназначена для тех, кого бесят мильён левых служб и драйверов, которые ставят любые виртуалки. Тем, кто будут ставить доп. пакеты Node.js
Все остальные могут скачать скомпилированный Node.js node-js.prcn.co.cc
Или же установить Node.js из-под виртуалки nodejs.ru/25

Прошу под кат
Читать дальше →

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

Reading time3 min
Views13K
В интернет-индустрии большинство людей знают разницу между Firefox и Internet Explorer. Мы также в курсе, что такое FTW и чем отличаются ASP, PHP и RoR. Ну или по крайней мере знаем, что разница есть.

Если ты встретишь стартапщика, который не слышал про Digg, Google Apps или фримиум, ты будешь удивлён. Правильно?

Но это лишь мы, маленькое подмножество дигерати, у которых есть время отслеживать почти всё новое по нашей индустрии. Остальной мир? Абсолютно несведущ в этом плане, и это нормально. Проблема возникает, когда вы пытаетесь предугадать потребности ваших пользователей. Есть вероятность, что они вообще вас не поймут. Несколько примеров.
Читать дальше →

Настоящее скругление углов картинок на клиенте

Reading time3 min
Views27K
О скруглении углов в html-верстке сказано уже столько, что я пойму тех кто прочитав заголовок иронично улыбнется и подумает «опять 25, ну сколько можно...». Поэтому я постараюсь кратко изложить суть, и сразу предупрежу, что этот метод вы едва ли могли видеть раньше.
Читать дальше →

Расширяем Хабр

Reading time1 min
Views809
Однажды, устав играть в Counter-Strike 1.6, решил, что можно убить оставшееся время более продуктивно (особенно в условиях мирового финансового кризиса). На память мне пришла притча, приписываемая Лао-Цзы, мораль которой сводилась к тому, что из сложного можно получить простое, даже не прибегая к рисовой водке. Проще говоря, сделал два маленьких улучшения для правой панельки на странице топиков:



Чтобы установить расширения, надо иметь Firefox с установленным GreaseMonkey.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity