пятница, 29 июня 2018 г.

Zend_Tool подключение кастомных провайдеров

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



По умолчанию в zf уже встроены ряд операций, но их модно расширять кастомным провайдером.



1. Пишем кастомный провайдер (-ы) и манифест



class PS_Tool_RouteProvider extends Zend_Tool_Framework_Provider_Abstract

{

      ......

}





class PS_Tool_Manifest implements Zend_Tool_Framework_Manifest_Interface

{

 

    public function  getProviders()

    {

        return array(         
            new PS_Tool_RouteProvider         
        );

    }

 

 

}



2. Создаем конфиг для утилиты zf



zf --setup config-file


 3. Открываем создавшийся (скорее всего в домашней папке файл .zf.ini)


 4. Добавляем пути к библиотеке с провайдером в include_path


 php.include_path = "C:\xampp\php\pear;C:\xampp\htdocs\shared;C:\xampp\htdocs\diclon\application\library;"


 5. Подключаем кастомный провайдер (добавляем строку в .zf.ini)


basicloader.classes.0 = PS_Tool_RouteProvider
basicloader.classes.1 = PS_Tool_Manifest

Всё, можно использовать.




четверг, 4 января 2018 г.

Формы в Laravel

 Многие фреймворки имеют встроенную поддержку генерации форм. В Laravel так было изначально, но затем формы выделили в отдельный компонент laravelcollective/html. В самом Laravel осталось буквально несколько элементов: защита от CSRF и поддержка дополнительных методов HTTP в HTML-формах.

Для установки этого компонента выполните эту команду:


$ composer require "laravelcollective/html"

суббота, 6 мая 2017 г.

Полезные настройки для vim

 Вставляем в ~/.vimrc


set tabstop=4

syntax on " Syntax highlighting

set showmatch " Shows matching brackets

set ruler " Always shows location in file (line#)

set smarttab " Autotabs for certain code

set shiftwidth=4


понедельник, 1 мая 2017 г.

Фаулер о добавлении новой функциональности

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

Мартин Фаулер

понедельник, 13 июня 2016 г.

GIT fatal: inflateInit: out of memory

На одном из серверов при попытке пушнуть взятый под git код возникла ошибка

Delta compression using up to 24 threads.
fatal: inflateInit: out of memory (no message)


Помогло сокращение трэдов упаковки git config --global pack.threads 1

вторник, 4 августа 2015 г.

Преждевременная оптимизация

 "Преждевременная оптимизация — корень всех зол". 


Дональд Кнут

статья «Structured Programming with go to Statements» в сборнике «Computing Surveys» (Vol. 6, № 4, декабрь 1974, стр. 268)

вторник, 17 декабря 2013 г.

PMBOK 9 Knowledge Areas to 5 Process Group Mapping

Project Management Process Groups
Knowledge Areas Initiating Process Group Planning Process Group Executing Process Group Monitoring & Controlling Process Group Closing Process Group
4. Project Integration Management 4.1 Develop Project Charter 4.2 Develop Project Management Plan 4.3 Direct and Manage Project Execution 4.4 Monitor and Control Project Work
4.5 Perform Integrated Change Control
4.6 Close Project or Phase
5. Project Scope Management 5.1 Collect Requirements
5.2 Define Scope
5.3 Define WBS
5.4 Verify Scope
5.5 Control Scope
6. Project Time Management 6.1 Define Activities
6.2 Sequence Activities
6.3 Estimate Activity Resources
6.4 Estimate Activity Durations
6.5 Develop Schedule
6.6 Control Schedule
7. Project Cost Management 7.1 Estimate costs
7.2 Determine Budget
7.3 Control Costs
8. Project Quality Management 8.1 Plan Quality 8.2 Perform Quality Assurance 8.3 Perform Quality Control
9. Project Human Resource Management 9.1 Develop Human Resource Plan 9.2 Acquire Project Team
9.3 Develop Project team
9.4 Manage Project team
10. Project Communications Management 10.1 Identify Stakeholders 10.2 Plan Communications 10.3 Distribute Information
10.4 Manage Stakeholder Expectations
10.5 Report Performance
11. Project Risk Management 11.1 Plan Risk Management
11.2 Identify Risks
11.3 Perform Qualitative Risk Analysis
11.4 Perform Quantitative Risk Analysis
11.5 Plan Risk Responses
11.6 Monitor and Control Risks
12. Project Procurement Management 12.1 Plan Procurements 12.2 Conduct Procurements 12.3 Administer Procurements 12.4 Close Procurements
Read more from PMBOK, Process Groups

четверг, 26 сентября 2013 г.

среда, 25 сентября 2013 г.

Эрик Эванс о разнице диалектов

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

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

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

Linux: генерация рандомной строки для пароля

 cat /dev/urandom | tr -dc '[:alnum:]' | fold -w ${1:-20} | head -n 1