Ruslan Brest, rb.labtodo.com
Backend web-developer: CodeIgniter, PHP, MySQL, OpenCart, PrestaShop, MaxSite CMS

Web development

Инструменты совместной работы: что использовать для обсуждений и сбора информации

У меня очередной виток переосмыслений.

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

В скайпе обсуждения быстро теряются (и тегами или закладками интересующие места не пометишь), а при бурном обсуждении темы перемешиваются и обсуждать сложно. У вас же тоже наверняка бывало: пока один пишет ответ, другой собеседник успевает затронуть пару связанных вопросов. И тут надо или начинать цитировать, или говорить обо всём подряд. Разделить разговоры некак. И потом при желании сохранить историю разговора приходится выкусывать и облагораживать куски разговоров. Иначе получается фигня, которую и потом никто перечитывать и пользоваться этим логом не будет. Сохраняй, не сохраняй - результат один. Может разве что археологам когда-нибудь будет интересно.

По email мы как-то тоже не очень сейчас треды обсуждений ведём. Там в основном саппорт. А все обсуждения в скайп сами собой мигрировали. Хотя как раз email - один из самых достойных инструментов. Но с накоплением этой информации проблема - этим кто-то должен заниматься, перенося полезную часть переписки в вики, тудушки, багтрекер или куда там ещё.

Issues в битбакете или гитхабе и другие багтрекеры - тоже что-то не то для обсуждений и собирательства идей. В общем-то всё вроде доступно - и обсуждать, и собирать, и решать, и переносить, и назначать. И теги там есть - задачи фильтрации и категоризации с навигацией вполне решаются. Где теги, где категории, где milestones или ещё что подобное. Багтрекеры наряду с email для меня - очень ценные инструменты.

Но вот как-то не клеится у нас их активное использование. То ли сами инструменты так себе по удобству, то ли ещё что.

Надо что? Далее...

CKeditor в Opencart 2.0 заменили на Summernote

13 августа 2014 г. Ruslan Brest Web development » E-commerce » OpenCart2

В Opencart 2.0 в админ-части заменили WYSIWYG редактор: CKeditor убрали, вместо него теперь используется Summernote.

http://hackerwins.github.io/summernote/

Новая система модулей OCMOD - Opencart Modification System

Начало появляться описание формата и отличий новой системы расширений OCMOD от использовавшейся ранее разработки: широко известного VQMOD, автором которой является Qphoria.

Суть системы расширений осталась та же самая, но XML форматы VQMOD и OCMOD отличаются, поэтому модули придётся переписывать. OCMOD - упрощённая версия VQMOD. В админке также добавлены удобства для загрузки новых OCMOD-расширений (Extensions / Extension Installer).

Например, основные отличия OCMOD от VQMOD: имеются операторы Replace, Before, After, Regex, Offset, Limit, отсутствуют ignoreif, log.

Отличается и работа offset.

Модули могут состоять из одного файла (должен иметь расширение .ocmod.xml) или нескольких, упакованных в архив с расширением .ocmod.zip. В архиве могут находиться XML, SQL и PHP файлы:

  • upload/*
  • install.sql
  • install.php
  • install.xml

Все файлы из папки `upload` будут скопированы в папку, куда установлен Opencart.

В install.sql можно добавить все необходимые SQL-запросы (create, drop, insert, update), которые должны быть исполнены при установке модуля. Каждый запрос должен заканчиваться символом ;.

Если модуль требует каких-то дополнительных действий для установки, PHP код надо разместить в файле `install.php`.

Остальные подробности можно будет узнать позже -- либо по мере появления новой документации по адресу https://github.com/opencart/opencart/wiki/Modification-System, либо путём изучения появляющихся модулей.

См. также:

  • Override Engine + VQmod for OpenCart 2.0 (J.Neuhoff). Это решение позволяет получить как новую систему Override Engine (OE), так и поддержку всех старых vQmod расширений (OE хорош именно для модулей, а вот для изменения шаблонов способ vQmod пока наиболее подходящий; плюс совместимость). Всё доступно свободно для скачивания и эксперименто. Предлагали Даниэлю. Кстати, автор vQmod (Qphoria) тоже высказался в топике за встраивание этого варианта OE+vQmod в Opencart 2.0. Он сказал: "Согласен. Я хочу, чтобы OE включили в ядро Opencart, а vQmod остался внешним расширением, каким он всегда был. OE или правильная система хуков -- это что-то, что ядро должно предлагать из коробки, тогда как vQmod был создан лишь как костыль, исправляющий отсутствие чего-то подобного в ядре. vQmod до сих пор имеет огромный смысл в Opencart, но я не вижу смысла в добавлении урезанного его варианта вместо того, чтобы сделать правильную систему."
  • SafePatch -- альтернатива vQmod

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

Знакомим `phpcs` (PHP CodeSniffer) и Sublime Text со стандартом оформления кода FuelPHP

UPD: При ближайшем рассмотрении оказалось, что отличий от PSR2 больше, чем табы вместо пробелов. Чтобы сделать автоматическую проверку, надо ещё многое переделать, а где-то и дописать. Так что я поспешил: с опубликованным вариантом проверять синтаксис PHP CodeSniffer'ом на соответствие правилам пока что неудобно.


Самый простой способ - поставить в редакторе/IDE правила автоформатирования PSR-2 и заменить использование пробелов в отступах на табуляцию (этим стандарты оформления кода, принятые в FuelPHP, отличаются от PSR-2). Заодно можно включить отображение пробелов и табуляций.

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

Для автоматизации проверки кода существуют разные инструменты: примеры (и важность с удобством применения этого непосредственно в редакторах/IDE) есть в статье http://philsturgeon.co.uk/blog/2013/08/php-static-analysis-in-sublime-text.

Обычно они дают возможность запустить проверку, либо настроить её и показ ошибки при сохранениях файла. Последнее очень удобно, т.к. помогает исправлять обнаруженные ошибки по ходу дела и без дополнительных усилий. Ниже - рецепт по автоматизации для ST3 (а может и ST2, если плагин совместим).

Знакомим phpcs и ST3 со стандатами оформления кода FuelPHP

  • sudo apt-get install php-codesniffer
    • phpcs -i - показать список установленных стандартов. Нужен psr2 (PSR-2)
    • Если его нет - обновляем полностью CodeSniffer (просто скопировать оттуда папку с PSR2/1 стандартом недостаточно)

    • Это, конечно, грубовато - обновлять напрямую, в обход apt-get , но он считает, что установлена самая свежая версия и более правильного способа я сейчас не знаю.

      cd ~/Downloads
      wget https://github.com/squizlabs/PHP_CodeSniffer/archive/master.zip
      unzip PHP_CodeSniffer-master.zip
      cd PHP_CodeSniffer-master
      sudo cp -r --parents -t /usr/share/php/PHP/ CodeSniffer CodeSniffer.php scripts
      cd scripts
      sudo mv /usr/bin/phpcs /usr/bin/phpcs.ORIGINAL
      sudo cp -t /usr/bin/ phpcs
    • в PSR-2 используются пробелы вместо табуляций и phpcs на них ругается. Сделаем свой стандарт "FuelPHP", основанный на PSR2. Рядом с папкой PSR2 создаём FuelPHP, в которой достаточно одного файла FuelPHP/ruleset.xml :

    • <?xml version="1.0"?>
      <ruleset name="FuelPHP">
       <description>The FuelPHP coding standard.</description>
       <!-- Include the whole PSR-2 standard -->
       <rule ref="PSR2">
       <!-- Redefine 2.4 Indenting -->
       <!-- Code MUST use an indent of tabs, and MUST NOT use 4 spaces for indenting. -->
       <exclude name="Generic.WhiteSpace.DisallowTabIndent"/>
       </rule>
       <rule ref="Generic.WhiteSpace.DisallowSpaceIndent"/>
      </ruleset>

      Проверяем: phpcs -i

      The installed coding standards are Zend, FuelPHP, PHPCS, PSR2, PSR1, Squiz,
      MySource and PEAR
  • install ST3 plugin "Sublime Phpcs" http://www.soulbroken.co.uk/code/sublimephpcs/
  • check config, see HOWTO: http://philsturgeon.co.uk/blog/2013/08/php-static-analysis-in-sublime-text
    • только мы вместо "psr2" теперь напишем свой "FuelPHP" в юзеркониге:

    • Содержимое /home/rb/.config/sublime-text-3/Packages/User/phpcs.sublime-settings :

      {
          "show_debug": true,
          "phpcs_executable_path": "/usr/bin/phpcs",
          "phpcs_additional_args": {
              "--standard": "FuelPHP",
              "-n": ""
          },
      }

Автоматическая проверка в ST3 тепрь работает.

Также можно использовать отдельно: phpcs --standard=fuelphp home.php .

Opencart, GNU GPL и модули

Opencart использует лицензию GNU GPL v3. Это одна из наиболее жёстких лицензий, накладывающая ограничения на закрытие исходного кода как производных программ, так и расширений (модулей, плагинов).

Ниже несколько цитат из GNU GPL FAQ, касающихся лицензирования и условий распространения модулей и расширений GPL-программ.

Далее...

[FWD] Сравнение производительности четырёх JS-библиотек

Сравнение производительности четырёх JS-библиотек: native Javascript, Google Closure, jQuery, ExtJS.

Результаты там наглядные и поразительные. jQuery оказывается заметным тормозом.

См. также:

Далее...

Создатель PrestaShop: встреча во Львове 26 июля 2013 года

Создатель PrestaShop Бруно Левек 26-го июля 2013 года прилетает в Украину, где проведет во Львове встречу с разработчиками, представителями веб-студий, фрилансерами.

Формат встречи — закрытый семинар. Участие абсолютно бесплатное, но чтобы получить приглашение, вам нужно пройти предварительную регистрацию и заполнить простую форму.

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

PhantomJS - утилита для тестирования дизайна на разных экранах

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

Базируется на движке WebKit. Технически - это обычный броузер, но без интерфейса пользователя. Результаты рендеринга страницы и Javascript можно записать в виде картинки.

Testing your responsive design with PhantomJS.

Там описана установка из репозиториев для Ubuntu и MacOSX и пример использования -- результаты в виде скриншотов тоже можно разглядеть. Я с инструментом не работал, так что вряд ли смогу что-то добавить к тому, что написано в указанной статье.

Что нас ждёт в Opencart 2.0

Конца разработке Opencart 2.0 пока ещё не видно, но сейчас уже можно выделить основные нововведения и готовиться к изменениям.

Что нас ждёт в новой версии Опенкарт?

  • HTML5,
  • адаптивный дизайн (Twitter Bootstrap),
  • наведение красоты и использование шрифтов с иконками (Font Awesome) вместо мелкой графики,
  • добавление полей в форму регистрации из админки (не видел, не знаю, о чём речь),
  • а также "встроенный vqmod": новые пункты меню "Extension installer" и "Modifications" в меню расширений.

Также 10 июня было сказано, что Paypal и Amazon заплатили за внесение каких-то новых фишек, но на гитхаб это пока не выложено. Делается какой-то другой компанией и будет объединено позже.

UPD: это оказались:

Далее...