Pull to refresh
0
0
Send message

Базовый css-шаблон

Reading time1 min
Views4.1K
Вечером знакомый попросил быстро сделать ему основу для его блога. Даже не сверстать макет, а сделать именно основу.

Так как я сижу без работы и становится скучно, решил безвозмездно посодействовать. Что получилось, смотрите под ниже.
Читать дальше →

Кастомизация input type=”file” с помощью CSS

Reading time2 min
Views64K
Есть несколько способов кастомизации (изменения внешнего вида) инпутов такого типа. Все они обладают своими плюсами и минусами, но, на мой взгляд, предложенный мною вариант, выигрывает даже со своими минусами, коих всего один.
Читать дальше →

Монетизация веб-сервисов: бизнес модели

Reading time4 min
Views5.5K
Мы потратили несколько часов, исследуя онлайн-сервисы из списка Webware 100 Top Web Apps 2008 и изучая их бизнес модели. Следующая диаграмма показывает результаты исследования — 34% сервисов используют рекламную модель, 12% различные схемы подписки, 8% продают виртуальные товары (чаще всего в виде данных для скачивания), такая же доля сервисов предлагает сопутствующие продукты (обычно большие компании-разработчики предлагают бесплатный вариант продукта для привлечения к их платформе) и еще 8% сервисов используют схему «оплата за использование».
Читать дальше →

Атомарная группировка, или Ни шагу назад!

Reading time8 min
Views16K

0. Присказка


В некотором царстве, в некотором государстве жил-был программист. Звали его, как полагается, Иван. Был он настоящим спецом, обладал всеми Тремя Великими Добродетелями Программиста, то есть был ленив, спесив и нетерпелив. Случилась в том царстве печаль великая: кризис. И выгнали Ваню с работы без выходного пособия. Горевал Ваня долго, а потом собрался с духом и разослал резюме по всему белу свету. Долго ли, коротко ли, вызвали Ваню на собеседование. Требований к соискателю было много, но главное — требовалось хорошо владеть регулярными выражениями. До собеседования — почти месяц, готовься — не хочу. Будучи человеком серьёзным, готовиться Иван решил обстоятельно. 3 недели и 3 дня он лежал на печи, почитывал Хабр и думал, как же неслыханно обстоятельно он будет готовиться. До собеседования остался 1 день. Ванюша мысленно обругал работодателей, которые назначают собеседование так скоро, что совсем подготовиться не успеваешь, слез с печи, сдал пивные бутылки и на вырученные деньги купил книжку по регексам. Читал он её до полного изнеможения, пока не отключился. Утром мы найдём сонную физиономию Ванюши лежащей, как на подушке, на этой самой книжке под Хабракатом.
Читать дальше →

Юнит-тестирование в PHP

Reading time13 min
Views189K
Язык PHP очень легок для изучения. Это, а так же обилие литературы «Освой _что_угодно_ за 24 часа» породило большое количество, мягко говоря, некачественного кода. Как следствие, рано или поздно любой программист, который выходит за рамки создания гостевой книги или сайта-визитки сталкивается с вопросом: «а если я здесь немножко добавлю, все остальное не ляжет?» Дать ответ на этот вопрос и на многие другие может юнит-тестирование.

В самом начале хочется оговориться — здесь речь не будет идти о TDD и методологиях разработки ПО. В данной статье я попробую показать начинающему PHP-разработчику основы использования модульного тестирования на базе фреймворка PHPUnit
Начнем?..

Практический HTML: учимся любить формы

Reading time4 min
Views8.2K
Примечание: ниже находится перевод тезисов доклада «Learning to Love Forms» с конференции «WebVisions 2007» (автор Aaron Gustafson). Докладчик рассказывает о верстке форм, используя корректный и эффективный XHTML/CSS-код.

  • Формы — это необходимое зло. Людям свойственно усложнять формы, хотя они могут быть представлены весьма просто.
  • Рассматривайте верстку форм как создание обычного XHTML-кода. Но будьте готовы к несоответствиям со стороны браузеров и применению хаков.
  • Разбивайте сложные формы на несколько простых частей.
  • Старайтесь обеспечивать максимальную семантическую ценность кода.
  • Не усложняйте дизайн форм.


XHTML & CSS приемы



  1. Элемент FORM создает форму.
  2. Единственным обязательным его атрибутом является ACTION, и он всегда должен быть URI.
  3. По умолчанию METHOD выставляется в GET.
  4. Атрибут NAME устарел, используйте вместо него ID.
  5. Элемент FIELDSET используется для группировки связанных полей формы. Может быть вложенным.

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

Принципы usability для CMS

Reading time4 min
Views2.1K
Ни разу не слышал, чтобы наши (читай: совковые) вендоры коробочных CMS заказывали usability тестирование своих продуктов. Напрашивается два основных вывода:
  1. Usability этих систем и так на высоте! В каждой компании есть свои usability специалисты, которые принимают участие в разработке на всех стадиях развития продукта – организуют тестирования, дают рекомендации, экспертную оценку и т.д. В таком случае это UDD – User-Driven Development.
  2. Usability этих систем по-взрослому сосет. Программеры делают функционал. Дизайнеры делают дизайн. Маркетинг делает продажи. Программер думает об эклипсе. Дизайнер думает о фотошопе. Маркетолог думает о пауерпоинте. Ну а конечный пользователь периодически задумывается обо всех трех сразу – об их интеллекте, сексуальной ориентации и месте произрастания их передних конечностей. Это методология AUDD – Anti-User-Driven Development или Angry User Driven Development.
Если вам известны компании, которые работают по первой схеме, то дайте знать. На ребят, делающих все по второй схеме, я насмотрелся вдоволь, поэтому считаю полезной для всеобщего ознакомления публикацию «11 usability principles for CMS products» за авторством James Robertson. Далее позволю себе привести вольный пересказ списка из одиннадцати принципов CMS usability, которые выделяет Джеймс, с моими комментариями.
Читать дальше →

ShortXSLT: упрощенный синтаксис для XSLT с операторами вставки, if, else и т. д.

Reading time2 min
Views2.6K
Библиотека Dklab_ShortXSLT — это система для поддержки упрощенного синтаксиса XSLT для встроенных в PHP классов XSLTProcessor и DOMDocument. Фактически, это компилятор с диалекта XSLT в стандартный XSLT, запускаемый «на лету» и «прозрачно» для вызывающего кода (естественно, имеется возможность кэширования, чтобы компиляция запускалась только в до следующего изменения шаблона). Там, где вы используете XSLT в PHP-скриптах, вы можете подключить ShortXSLT, написав несколько дополнительных строчек кода.

Стандартный синтаксис XSLT весьма громоздок, что оказывается неудобным при его использовании в Web-программировании. Библиотека позволяет облегчить эту проблему.

Поддерживаются сокращенные версии для следующих конструкций: вставка значения вне тэгов, вставка языковой константы, вставка sprintf-like константы, if-then-elseif, foreach.

Пример на ShortXSLT:
...
<xsl:template match="/">
  {if /some/node = 1}
    {#hello}, world! {#my_name_is(/my/name)}.
  {elseif /other/node = /some/node}
    <p>You have {/money} dollars.</p>
  {else}
    {foreach /nodes/*}
      Node {.}<br/>
    {/foreach}
  {/if}
</xsl:template>
...

Читать дальше →
12 ...
7

Information

Rating
Does not participate
Registered
Activity