понедельник, 3 июля 2017 г.

Viktor Fitness - Continuos Integration.

I hope my project Viktor Fitness will get a real life and it will be used by people. It will be developed by people for people. And I am still looking for a job in different IT directions. So I am covering the DevOps direction. I am preparing the project for team development.  Continuos integration is a part of project development team. Different development tools enhance reliability, quality of projects and speed of big teams. It is a cool feature flow when client or QA engineer are able to test a state of a project before it moves to a production server.

четверг, 29 июня 2017 г.

Drupal 8 Test Task for DAXX

Hello. My name is Viktor. I am still looking for a job. Do not hesitate if you can help me. This this project was done for a company for a Drupal developer position. I decided to publish my results after I had not passed the test task. The main reason why is because. It is the base that will be used for another Drupal test tasks. It is a pity when you are required to make a task that corresponds a senior developer for from 2 to 4 hours. The real picture is that only preparation demands at least 4 hours. In a test context You can ask me to change something in the project or add some functionality into. Check My LinkedIn Profile

воскресенье, 25 июня 2017 г.

Viktor Fitness Project Release v0.0.3

Hello. It is Viktor with the project Viktor Fitness. I am still looking for a job. Do not hesitate if you can and want to help me. Follow on me by social services. The current release number is v0.0.3. I will report the done staff.

New features, changes.

  • Data filtering by date period functionality was added..
  • Typescript-Sequelize library was integrated. Database is declared by declarative style using decorators.
  • e2e protractor tests were integrated. Almost all functionality have been covered by tests.
  • Restoring process that loaded data from CSV was deleted.
  • Restore/Dump user CLI commands were fixed.
  • Viktor's initial data was added.
  • Cli command - sync-force-schemas was created.

воскресенье, 28 февраля 2016 г.

best configuration.

http://digitaloceanvps.blogspot.com/2014/04/best-configuration-for-512mb-1gb-ram.html

среда, 3 февраля 2016 г.

Защита паролем директорий сайта, который работает на nginx(HTTP Base Authentication).

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

понедельник, 25 января 2016 г.

Установка заплаток безопасности для Magento на примере SUPEE-6788

Доброго дня. Раскажу про свой первый опыт установки заплатки Supee-6788 на существующий проект Magento 1.9.0.1

Заплатка Мадженто - это такой скрипт, который содержит в себе diffs изменения и выполняет определённые действия перед применением изменений и после. Скрипт проверяет зависимости к другим заплаткам, проверяет возможность применения diffs, применяет diffs, оставляет пометки в окружении Magento про выполнение скрипта.

пятница, 25 декабря 2015 г.

Magento: Design Patterns(Шаблоны проектирования)

Шаблоны проектирования очень спорная, но полезная вещь, которая помогает общественным языком описать унифицированые вещи. Перевод данной статьи рассказывает об инструментах Magento, которые используются для посторения ядра и сторонних расширений.

Factory(Фабрика):
Исполнение концепции фабрики, которая решает проблемы создания объектов без точного указания класса объекта, который будет создан.


$product = Mage::getModel('catalog/product');


Singleton(Одиночка):
Предотвращает повторное создание объекта с тем же классом. При повторном использовании, шаблон ссылается на уже созданный объект.

$category = Mage::getSingleton('catalog/session');


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

Mage::register('key',$value); //stores
$currentCategory = Mage::registry('key'); //retrives


Prototype:
It determines the type of object to create. In Magento it can be Simple, Configurable, Grouped, Bundle, Downloadable or Virtual types.

Mage:getModel('catalog/product')->getTypeInstance();


Observer(Наблюдатель):
В основном используется, как распределённая система обработки событий. Существует субъект который инициирует событие, субъекты подписанные на данное событие получают оповещение. Субъекты ожидающие событие - observers(наблюдатели).
Инициация события объектом.

Mage::dispatchEvent('event_name', array('key'=>$value));


Регистрация субъектов на событие, где указана обработка данного события.
<config>
    <global>
        <events>
            <event_name>
                <observers>
                    <unique_name>
                        <class>Class_Name</class>
                        <method>methodName</method>
                    </unique_name>
                </observers>
            </event_name>
        </events>
    </global>
</config>

Object Pool(Пул объектов):
Используется для перереиспользования ресурсоемких объектов.

$id = Mage::objects()->save($object);
$object = Mage::objects($id);


Iterator(Итератор):

Используется для перебора элементов коллекции.

Mage::getModel('catalog/product')->getCollection();


Lazy Loading(Ленивая инициализация):
Инициализация по востребованию.

$collection_of_products = Mage::getModel('catalog/product')
->getCollection();


Decorator(Декоратор):
Используется для изменения поведения во время исполнения.

<script type="text/javascript">decorateTable('product_comparison');</script>


Helper(Помошник):
Множественные методы доступные для использования в других объектах. К примеру, возможно, использовать методы помошника ядра везде в приложении.

Mage::helper('core');


Service Locator(Регистратор сервисов):
Регистрирует различные сервисы, также позволяет их переопределять(модели, ресурсы, фабрики, ...).

Mage::getModel('catalog/product') and $installer->getTable('customer/address_entity');