Перейти до основного вмісту

Публікації

Встановлення Node.js

Для роботи з багатьма фронт-енд фреймворками має бути встановлений Node.js та менеджер пакетів npm. Node.js — це кросплатформне середовище виконання JavaScript із відкритим вихідним кодом, яке виконує JS-код за межами веб-браузера. Node.js дозволяє розробникам використовувати JavaScript для написання інструментів командного рядка та для сценаріїв на стороні сервера — запуск сценаріїв на стороні сервера для створення динамічного вмісту веб-сторінки, перш ніж сторінка буде відправлена у веб-браузер користувача. npm (Node Package Manager) — менеджер пакетів за замовчуванням для Node.js. Він складається з клієнта командного рядка, який також називається npm, і онлайнової бази даних загальнодоступних і платних приватних пакетів. npm включає також npx (Node Package Execute) . npx дозволяє просто виконувати встановлені пакети. На сайті https://nodejs.org/uk/download/ потрібно завантажити одну із останніх версій. Як правило, пропонується інсталяція двох версій: останньої та LST. Для ко...

Знайомство з фреймворком Quarkus

Quarkus Quarkus - реактивний java-фреймворк, який підтримує GraalVM. Розглянемо створення стартового застосунку на Quarkus в операційній системі Ubuntu (для інших версій Linux команди будуть такими ж, для Windows можуть бути невеликі відмінності). Підготовка На машині має бути встановлений Maven. Перевірити це можна за допомогою команди: mvn --version Встановити Maven можна, використавши наступну команду: sudo apt install maven Створення стартового проєкту В потрібній директорії запустити в командному рядку код: mvn io.quarkus.platform:quarkus-maven-plugin:2.11.2.Final:create \ -DprojectGroupId=org.acme \ -DprojectArtifactId=getting-started \ -Dextensions="resteasy-reactive" cd getting-started Буде створений стартовий проєкт. Цеq проєкт можна відкрити за домогою улюбленого IDE. Не рахуючи тестів, у цьому проєкті є лише один java-клас: package org.acme; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs...

Патерн Builder в Java

Проблема У нас є клас, який містить велику кількість полів. Частина із цих полів є обов'язковими, а частина ні. Потрібно створити "інструменти" для створення екземплярів цього класу. Приклад. У нас є клас Користувач (User), який містить 3 обов'язкових поля: Ім'я, Прізвище, ЕлектроннаПошта та ряд неов'язкових. public class User { private String firstName; private String lastName; private String email; private String middleName;//optional private int age;//optional private String address;//optional private String comment;//optional private String phone;//optional //... } Розглянемо можливі рішення Використання перевантажених конструкторів В Java є можливість створити ряд конструкторів із різним набором параметрів. public class User { private String firstName; private String lastName; private String email; private String middleName;//optional private int age;//optional private String address;//...

Базові команди для галудження в git

Створення нової гілки Припустимо, що у нас вже створений git-проєкт і ми знаходимося в гілці master . Про сторення git-проєктів більше можна почитати тут . Створити нову гілку з назвою test можна за допомогою наступної команди: git branch test Отже, тепер у нас є 2 гілки. Подивитися список гілок можна за допомогою команди git branch Ми отримаємо список гілок, а також буде відмічено поточну гілку. Якщо потрібно вивести інформацію про останній комміт в кожній із гілок, то можна зробити так: git branch -v Ще один спосіб створення нової гілки - це створення за допомогою команди checkout з параметром -b. При цьому створюється нова гілка та відбувається перехід до неї: git checkout -b new-test Перехід до іншої гілки Перехід до іншої гілки можна зробити за допогою команди git checkout test Відповідно повернутися назад: git checkout master Відмінності між гілками В процесі розробки комміти можуть додаватися до кожної з гілок (зрозуміло, що гілок може бути більше). Часто пот...

Mongod

Mongod – основний демон-процес (deamon process) в системі MongoDB. Основні параметри команди. Виведення довідкового матеріалу: mongod --help або mongod -h Версія mongod: mongod --version Зміна директорії, де зберігаються файли з даними: mongod --dbpath directory_path По замовчуванню всі дані зберігаються в папці /data/db. За допомогою цього параметра команди mongod можна задати інше місце. Directory path визначає нову папку. Зміна номера порта mongod --port port_number По замовчуванню процес запускається на порту з номером 27017. Запуском команди із цим параметром можна визначити інший порт. Включення обов’язкової автентифікації: mongod –auth Встановлення допустимих IP адрес. mongod --bind_ip localhost,111.111.111.111 Включення підтримки  IPv6 mongod –-ipv6 По замовчуванню підтримка адресації ipv6 відключена. Цей параметр дозволяє включити її. Запуск сервера: mongo Зупинка: use admin db.shutdownServer() exit

The Twelve-Factor App

12-факторні застосунки 12-факторні застосунки - це методологія розробки web-застосунків. Застосовується для різних мов програмування. Власне, самі 12 факторів : I. Кодова база Одна кодова база, що відслідковується в системі контролю версій та має багато розгортань II. Залежності Явно оголошуйте та ізолюйте залежності III. Конфігурація Зберігайте конфігурацію в середовищі виконання IV. Сторонні служби Вважайте сторонні служби (backing services) підключеними ресурсами V. Збірка, реліз, виконання Суворо відокремлюйте етапи збірки та виконання VI. Процеси Запускайте застосунок як один або декілька процесів без збереження внутрішньго стану (stateless) VII. Прив’язка портів Експортуйте сервіси за допомогою прив’язки портів (port binding) VIII. Конкурентність Масштабуйте застосунок за допомогою процесів IX. Утилізовуваність Підвищуйте надійність за допомогою швидкого запуску і коректного вимкнення X. Dev/prod паритет Прагніть максимальної ідентичності development, staging...

Оператор CNOT в квантовому програмуванні

CNOT Оператор (вентиль, гейт) CNOT приймає 2 входи і 2 виходи. Цей вентиль називають контрольованим запереченням (Controlled NOT). CNOT інвертує другий (керований) кубіт тільки, якщо на перший (керуючий) кубіт подано 1: До Після Керуючий кубіт Керований кубіт Керуючий кубіт Керований кубіт 0 0 0 0 0 1 0 1 1 0 1 1 1 1 1 0 Робота оператора схожа на оператор XOR, якщо не враховувати перший біт на виході: XOR Вхід 1 Вхід 2 Виіхід 0 0 0 0 1 1 1 0 1 1 1 0 Приклад реалізації в Strange Program program = new Program(8); Step step0=new Step(); Step step1=new Step(); step0.addGate(new X(3)); step0.addGate(new X(4)); step0.addGate(new X(6)); step0.addGate(new X(7)); step1.addGate(new Cnot(0,1)); step1.addGate(new Cnot(2,3)); step1.addGate(new Cnot(4,5)); step1.addGate(new Cnot(6,7)); program.addStep(step0); program.addStep(step1); QuantumExecutionEnvironment qee = new SimpleQuantumExecutionEnvironment(); Result result = qee.run...