diff options
author | Valentin Popov <valentin@popov.link> | 2022-08-02 11:43:45 +0300 |
---|---|---|
committer | Valentin Popov <valentin@popov.link> | 2022-08-02 11:43:45 +0300 |
commit | ff92c125d478426c3f97d2532879651c44f124b7 (patch) | |
tree | fcf60cc24367effa1dc729d6b5cb76df209a28ff /content | |
parent | 38e48011bcedffb897cab53c350f1fbe50b58389 (diff) | |
download | popov.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.md | 6 | ||||
-rw-r--r-- | content/blog/electron-reload.md | 66 | ||||
-rw-r--r-- | content/blog/installing-moodle-to-fedora.md | 23 |
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 +``` |