aboutsummaryrefslogtreecommitdiff
path: root/content
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2022-08-02 11:43:45 +0300
committerValentin Popov <valentin@popov.link>2022-08-02 11:43:45 +0300
commitff92c125d478426c3f97d2532879651c44f124b7 (patch)
treefcf60cc24367effa1dc729d6b5cb76df209a28ff /content
parent38e48011bcedffb897cab53c350f1fbe50b58389 (diff)
downloadpopov.link-ff92c125d478426c3f97d2532879651c44f124b7.tar.xz
popov.link-ff92c125d478426c3f97d2532879651c44f124b7.zip
Synchronizing the site and the new theme
Signed-off-by: Valentin Popov <valentin@popov.link>
Diffstat (limited to 'content')
-rw-r--r--content/blog/_index.md6
-rw-r--r--content/blog/electron-reload.md66
-rw-r--r--content/blog/installing-moodle-to-fedora.md23
3 files changed, 95 insertions, 0 deletions
diff --git a/content/blog/_index.md b/content/blog/_index.md
new file mode 100644
index 0000000..9205dca
--- /dev/null
+++ b/content/blog/_index.md
@@ -0,0 +1,6 @@
++++
+page_template = "post.html"
+sort_by = "date"
+template = "blog.html"
+title = "Blog posts"
++++
diff --git a/content/blog/electron-reload.md b/content/blog/electron-reload.md
new file mode 100644
index 0000000..3a5f8af
--- /dev/null
+++ b/content/blog/electron-reload.md
@@ -0,0 +1,66 @@
++++
+title = "Горячая перезагрузка ElectronJS приложения"
+date = 2019-08-15
++++
+
+## Main процесс
+
+Для перезагрузки основного процесса можно использовать готовый пакет [electron-reload]. Или перезагружать приложение средствами пакета [electron-webpack].
+
+Если сборщик кода отличный от WebPack или нет возможности использовать вышеуказанные пакеты, можно обойтись инструментом [nodemon]. Команда запуска будет
+выглядеть следующим образом:
+
+```bash
+nodemon --watch ./assets/main.js --exec 'electron .'
+```
+
+Приложение будет автоматически перезапускаться при модификациях указанного файла.
+
+## Renderer процесс
+
+Для обновления renderer процесса, перезагружать полностью приложение нет необходимости. Достаточно обновить страницу. Самый простой способ, горячие
+клавиши: `Ctrl` + `F5`. Так как рендер процесс по своей сути является обычным окном браузера, можно настроить [HMR] технологию. Конечно, если используются
+соответствующие инструменты.
+
+Мне симпатичен способ использования пакета [electron-reload]. В алгоритме пакета лежит простое слежение за каталогом файлов и обновление активных окон
+приложения.
+
+Но мною была найдена досадная [проблема], не позволяющая использовать версии `1.5.0` и `1.4.1` со сборщиком WebPack, который используется в проекте.
+
+Решение было продублировать основной функционал пакета в проекте:
+
+```javascript
+import { app } from 'electron';
+import chokidar from 'chokidar';
+
+const browserWindows = [];
+
+app.on('browser-window-created', (event, window) => {
+ browserWindows.push(window);
+
+ window.on('closed', () => {
+ const index = browserWindows.indexOf(window);
+ browserWindows.splice(index, 1);
+ });
+});
+
+if (process.env.NODE_ENV !== 'production') {
+ const watcher = chokidar.watch(__dirname, { ignored: [/node_modules|[/\\]\./] });
+
+ watcher.on('change', () => {
+ browserWindows.forEach(window => {
+ window.webContents.reloadIgnoringCache();
+ });
+ });
+}
+```
+
+[HMR]: https://webpack.js.org/concepts/hot-module-replacement/
+
+[electron-reload]: https://www.npmjs.com/package/electron-reload
+
+[electron-webpack]: https://www.npmjs.com/package/electron-webpack
+
+[nodemon]: https://www.npmjs.com/package/nodemon
+
+[проблема]: https://github.com/yan-foto/electron-reload/issues/66
diff --git a/content/blog/installing-moodle-to-fedora.md b/content/blog/installing-moodle-to-fedora.md
new file mode 100644
index 0000000..8f0769c
--- /dev/null
+++ b/content/blog/installing-moodle-to-fedora.md
@@ -0,0 +1,23 @@
++++
+title = "Установка Moodle в Fedora"
+date = 2018-07-23
++++
+
+Во время установки Moodle, сталкиваешься со следующими проблемами:
+
+- Веб-интерфейс не продолжает установку после настройки базы данных;
+- Если установить через консольный интерфейс, проявляются артефакты;
+- Нет доступа к сети, появляется ошибка `unexpected cURL error`.
+
+Главная причина, это
+[SELinux](https://en.wikipedia.org/wiki/Security-Enhanced_Linux).
+Решение, это настроить правила доступа:
+
+```bash
+# Доступ к сторонним каталогам и сети
+/usr/sbin/setsebool -P httpd_can_network_connect true
+/usr/sbin/setsebool -P httpd_enable_homedirs true
+# Смена контекста безопасности
+/usr/bin/chcon -R -h -t httpd_sys_content_t /path/to/moodle
+/usr/bin/chcon -R -h -t httpd_sys_script_rw_t /path/to/moodle_data
+```