2021年1月31日日曜日

CentOS 8-StreamにKanboardとPostgreSQL13をインストールする

Kanboardはタスク管理をおこなうPHP製のソフトウェアです。

○Kanboardの画面
ブラウザでhttp://<ホスト名またはアドレス/kanboard/ にアクセスします。
デフォルト管理者はadmin/adminでログインします。

インストール手順

以下のコマンドを実行します。
1. firewallでhttpの80番ポートを開けます
sudo firewall-cmd --add-service=http --permanent

sudo firewall-cmd --reload

2. PostgreSQL13をインストール
wget https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

sudo rpm -Uvh pgdg-redhat-repo-latest.noarch.rpm

sudo dnf -qy module disable postgresql

sudo dnf -y update

sudo dnf -y install postgresql13-server postgresql13-devel postgresql13-contrib

sudo systemctl enable postgresql-13

sudo /usr/pgsql-13/bin/postgresql-13-setup initdb

echo "listen_addresses='*'" | sudo tee -a /var/lib/pgsql/13/data/postgresql.conf

sudo sed -i 's/host.*all.*all.*127.0.0.1/#host    all             all             127.0.0.1/g' /var/lib/pgsql/13/data/pg_hba.conf

sudo sed -i 's|^host.*all.*all.*::1/128|#host    all             all             ::1/128|g' /var/lib/pgsql/13/data/pg_hba.conf

echo "host    all         all         127.0.0.1/32          password" | sudo tee -a /var/lib/pgsql/13/data/pg_hba.conf

echo "host    all         all         ::1/128          password" | sudo tee -a /var/lib/pgsql/13/data/pg_hba.conf

echo "host    all         all         192.168.1.0/24          password" | sudo tee -a /var/lib/pgsql/13/data/pg_hba.conf
※ネットワークアドレスは適宜変更してください

sudo systemctl start postgresql-13.service

sudo su - postgres << EOF
psql -c "
alter user postgres with password 'postgres';
create user kanboard with password 'kanboard';
"
psql -c "
create database kanboard owner kanboard encoding 'UTF8' lc_collate 'ja_JP.UTF-8' lc_ctype 'ja_JP.UTF-8' template 'template0';
"
EOF
※ユーザー名・パスワードは適宜変更してください
3. ApacheとPHPのインストール
sudo dnf install -y httpd \
  php \
  php-pgsql \
  php-json \
  php-opcache \
  php-xml \
  php-dom \
  php-mbstring \
  php-gd \
  php-curl

sudo systemctl enable php-fpm

sudo systemctl enable httpd

4. SELinuxの無効化
sudo setenforce 0

sudo getenforce

sudo sed -i -e 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

5. Kanboardのインストール
wget https://github.com/kanboard/kanboard/archive/v1.2.18.zip

unzip v1.2.18.zip

sudo mv kanboard* /opt/kanboard

cp /opt/kanboard/config.default.php /opt/kanboard/config.php

sed -i -e "s#define('DB_DRIVER', 'sqlite');#define('DB_DRIVER', 'postgres');#" /opt/kanboard/config.php

sed -i -e "s#define('DB_USERNAME', 'root');#define('DB_USERNAME', 'kanboard');#" /opt/kanboard/config.php

sed -i -e "s#define('DB_PASSWORD', '');#define('DB_PASSWORD', 'kanboard');#" /opt/kanboard/config.php

sudo chown -R apache:apache /opt/kanboard

sudo ln -s /opt/kanboard/ /var/www/html/

sudo systemctl restart httpd

関連情報

・Kanboardの設定・操作方法については「Kanboardの設定・操作」を参照してください。

・Python API Client for Kanboardのついてのまとめは「Python API Client for KanboardでKanboardをコントロールする」を参照してください。

・Kanboardに関する他の情報はこちらを参照してください。

CentOS 8-StreamにVidCutterをインストールする

VidCutterはオープンソースの動画編集アプリケーションです。

〇VidCutterの画面

インストール方法

シェルから以下のコマンド実行します
sudo dnf -y install flatpak

sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

sudo flatpak -y install flathub com.ozmartians.VidCutter

関連情報

・VidCutterに関する他の記事は、こちらを参照してください。

Minetestに雲に関するアイテムを追加するCloud Items modをインストールする

MinetestにCloud Itemsをインストールすると、通常とは異なる壊すことのできる雲や、車・雲のブロックなど雲に関するアイテムがが追加されます。

〇雲のスクリーンショット

〇車のスクリーンショット

インストール方法

1. 以下のmodをインストールしておきます。
worldedit, vehicle_mash, lib_mount

2. 以下のコマンドを実行して、cloud_itemsをインストールします。
mkdir -p ~/.minetest/mods

rm -f master.zip

wget https://github.com/minetest-mods/cloud_items/archive/master.zip

unzip master.zip

mv cloud_items-master/ ~/.minetest/mods/cloud_items

3.Minetestを起動して、ワールドの設定画面でcloud_itemsとworldedit, vehicle_mash, lib_mountのmodを有効化します。

関連情報

・Minetestに関する情報はこちらを参照してください。

・cloud_itemsのgithubリポジトリ
https://github.com/minetest-mods/cloud_items

2021年1月30日土曜日

Debian 10(Buster)/Raspberry Pi OS(Raspbian Buster)にTiny Tiny RSSをインストールする

Tiny Tiny RSSはPHP製のフィードリーダーです。

〇Tiny Tiny RSSの画面

インストール方法

1. 以下のコマンドを実行してMariaDBをインストールします。
sudo apt-get update

sudo apt-get -y install mariadb-server

sudo mysql -uroot -e "SET PASSWORD = PASSWORD('root'); FLUSH PRIVILEGES;"

mysql -uroot -proot -e "CREATE DATABASE ttrss DEFAULT CHARACTER SET utf8mb4;"

mysql -uroot -proot -e "CREATE USER ttrss@localhost IDENTIFIED BY 'ttrss';"
※パスワードは適宜変更してください

mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON ttrss.* TO 'ttrss'@'localhost';"

mysql -uroot -proot -e "FLUSH PRIVILEGES;"

2. Tiny Tiny RSSをインストールします。
sudo apt-get -y install apache2 \
  php7.3 \
  libapache2-mod-php7.3 \
  php7.3-json \
  php7.3-mysql \
  php7.3-common \
  php7.3-xml \
  php7.3-intl \
  php7.3-mbstring \
  php7.3-curl \
  php7.3-gd

wget https://git.tt-rss.org/fox/tt-rss/archive/master.tar.gz

tar xvfz master.tar.gz

sudo mv tt-rss /opt/ttrss

sudo chown -R www-data:www-data /opt/ttrss

sudo sudo ln -s /opt/ttrss/ /var/www/html/

sudo systemctl restart apache2

cat << EOF | sudo tee /etc/systemd/system/ttrss.service
[Unit]
Description=ttrss_backend
After=mariadb.service

[Service]
User=www-data
ExecStart=/opt/ttrss/update_daemon2.php

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable ttrss.service

sudo systemctl start ttrss.service

3. ブラウザでhttp://<ホスト名またはアドレス>/ttrss/ にアクセスします。
Database type: MySQL
Username: ttrss
Password: ttrss
Database name: ttrss
Host name: localhost
Port: 3306

「Test configuration」ボタンをクリックします。次に「Initialize databse」ボタンをクリックします。

4. 構成ファイルが生成されるので「Save configuration」ボタンをクリックします。

5. 「loading tt-rss now」テキストリンクをクリックします。ログインフォームが表示されるのでユーザadmin、デフォルトパスワードpasswordでログインします。

関連情報

Tiny Tiny RSSのカテゴリを追加する

Tiny Tiny RSSにラベルを追加する

Tiny Tiny RSSにフィルターを追加する

Tiny Tiny RSSにフィードを追加する

Tiny Tiny RSSにユーザーを追加する

Tiny Tiny RSSのテーマを変更する

Tiny Tiny RSSの日時フォーマットを変更する

Tiny Tiny RSSで記事をデフォルトでオープンしないようにする

・Tiny Tiny RSSに関する他の情報はこちらを参照してください。

CentOS 8-StreamにKdenliveをインストールする

Kdenliveはオープンソースの動画編集アプリケーションです。

〇Kdenliveの画面

インストール方法

シェルから以下のコマンド実行します
1. snapのインストール(※既に導入済みの場合はスキップしてください)
sudo dnf -y install epel-release

sudo dnf -y install snapd

sudo systemctl enable --now snapd.socket

sudo ln -s /var/lib/snapd/snap /snap

2. kdenliveのインストール
sudo snap install kdenlive
※「error: too early for operation, device not yet seeded or device model not acknowledged」というエラーが表示された場合は、しばらく待って再実行します。

実行方法

以下のコマンドを実行します。
snap run kdenlive

関連情報

動画編集アプリKdenliveのまとめ

・Kdenliveに関する他の情報はこちらを参照してください。

・Kdenliveのgithubリポジトリ
https://github.com/KDE/kdenlive

・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

Ubuntu20.04上のMinetestにWorldEdit modをインストールする

WorldEdit modでチャットコマンドを使用して、ノードの配置などができます。

WorldEdit modパックのインストール

1. 以下のコマンドを実行します。
sudo apt-get install minetest-mod-worldedit

2. ワールドの設定画面でworldedit Modパックを有効化します。

WorldEditでブロックを配置します。

1. tキーでチャットウインドウを表示して、//p setを入力します。

2. 左クリックでパンチすると、枠に囲まれた数字の1が表示されます。

3. 別の場所で左クリックでパンチすると、枠に囲まれた数字の2が表示されます。

4. チャットウインドウで//set ノードの名前(例: //set cobble)を実行すると、マークした1と2の領域にブロックが配置されます。

関連情報

・Minetestに関する他の記事はこちらを参照してください。

・WorldEdit modのgithubリポジトリ
https://github.com/Uberi/Minetest-WorldEdit

2021年1月29日金曜日

DockerでThonnyとXfce、TigerVNCがインストールされたコンテナ(Ubuntu20.04)を作成する

Thonnyは初心者向けPython開発環境です。DockerでThonnyがインストール済みのXfceデスクトップ環境を構築し、VNCクライアントで接続することができます。

〇Thonnyの画面
TigerVNCがインストールされているので、VNCクライアントで接続することができます。VNCパスワードはubuntuです。

イメージのビルド

以下のコマンドを実行してイメージをビルドします。
docker build --no-cache -t ub2004vncxfcethonny .

Dockerfile
from ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
run apt-get update \
  && apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade \
  && apt-get install -y language-pack-ja-base language-pack-ja \
  && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
  && echo 'Asia/Tokyo' > /etc/timezone \
  && locale-gen ja_JP.UTF-8 \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale
env LANG=ja_JP.UTF-8 \
   LANGUAGE=ja_JP.UTF-8 \
   LC_ALL=ja_JP.UTF-8
run apt-get -y install \
      xubuntu-desktop \
      xfce4-terminal \
      tigervnc-standalone-server \
      expect \
      fcitx-mozc \
      fonts-ipafont-gothic \
      fonts-ipafont-mincho \
      vim \
      gvfs-bin \
      xdg-utils \
      thonny \
  && apt-get -y remove --purge light-locker \
  && apt-get -y install gnome-screensaver \
  && im-config -n fcitx \
  && apt-get clean \
  && rm -rf /var/cache/apt/archives/* \
  && rm -rf /var/lib/apt/lists/* \
  && groupadd -g 1000 ubuntu \
  && useradd -d /home/ubuntu -m -s /bin/bash -u 1000 -g 1000 ubuntu \
  && echo 'ubuntu:ubuntu' | chpasswd \
  && echo "ubuntu ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && echo 'spawn "tigervncpasswd"' >> /tmp/initpass \
  && echo 'expect "Password:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Verify:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Would you like to enter a view-only password (y/n)?"' >> /tmp/initpass \
  && echo 'send "n\\r"' >> /tmp/initpass \
  && echo 'expect eof' >> /tmp/initpass \
  && echo 'exit' >> /tmp/initpass \
  && sudo -u ubuntu -H /bin/bash -c '/usr/bin/expect /tmp/initpass' \
  && mkdir -p /home/ubuntu/.vnc \
  && chown ubuntu:ubuntu /home/ubuntu/.vnc \
  && echo '#!/bin/sh' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LANG=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LC_ALL=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export XMODIFIERS=@im=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export GTK_IM_MODULE=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'fcitx -r -d &' >> /home/ubuntu/.vnc/xstartup \
  && echo 'exec startxfce4' >> /home/ubuntu/.vnc/xstartup \
  && chmod +x /home/ubuntu/.vnc/xstartup \
  && mkdir -p /home/ubuntu/data \
  && chown -R ubuntu:ubuntu /home/ubuntu/data

expose 5901
volume ["/home/ubuntu/data"]
cmd /usr/bin/vncserver :1 -localhost no -geometry 1152x864 -alwaysshared -fg

コンテナの実行

コンテナを実行するには、以下のコマンドを実行します。
docker run -it -v `pwd`:/home/ubuntu/data -p 5901:5901 -u ubuntu --privileged ub2004vncxfcethonny

関連情報

・Thonnyのプロジェクトサイト
https://thonny.org/

Minetestにタペストリーを追加するTapestries Modをインストールする

MinetestにTapestries Modをインストールするとタペストリーが追加されます。

〇Tapestries Modのスクリーンショット

インストール方法

1. 以下のコマンドを実行して、Tapestries Modをインストールします。
mkdir -p ~/.minetest/mods

wget https://github.com/minetest-mods/castle_tapestries/archive/master.zip

unzip master.zip

mv castle_tapestries-master/ ~/.minetest/mods/castle_tapestries

2.Minetestを起動して、ワールドの設定画面でcastle_tapestriesのmodを有効化します。

関連情報

・Minetestに関する情報はこちらを参照してください。

・Tapestries Modのgithubリポジトリ
https://github.com/minetest-mods/castle_tapestries

2021年1月28日木曜日

CentOS 8-Streamにdarktableをインストールする

darktableはオープンソースの写真管理・編集ソフトウェアです。

〇darktableの画面

インストール方法

以下のコマンドを実行します。
sudo dnf -y install flatpak

sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

sudo flatpak -y install flathub org.darktable.Darktable

関連情報

・darktableのgithubリポジトリ
https://github.com/darktable-org/darktable

pythonとpysndfxでノーマライズ(音量正規化)の効果をつける

pysndfxで音楽ファイルに対して様々な音響効果をつける事ができます。

pysndfxでノーマライズの効果をつける手順

1. pysndfxをインストールしたPython環境を準備します。環境の準備については、以下を参照してください。
pythonとpysndfxで音楽ファイルに残響効果をつける

2. サンプルプログラムの作成と実行
normalizeメソッドでノーマライズ(音量正規化)の効果をつけます。ファイル名は適宜変更してください。
normalize.py
from pysndfx import AudioEffectsChain

# ノーマライズの効果をつける
fx = (
    AudioEffectsChain().normalize()
)

# 効果の処理と保存
fx("./yoursong.wav", "./normalize.wav")

以下のコマンドでスクリプトを実行します。
python normalize.py

関連情報

・pysndfx(python-audio-effects)のgithubリポジトリ
https://github.com/carlthome/python-audio-effects

・pysndfxに関する他の情報は以下のまとめページを参照してください。
python用音響効果モジュールpysndfxのまとめ

Ubuntu 20.04にCouchDBをインストールする

CouchDBはドキュメント指向のデータベースです。

〇CouchDBのWebインターフェイス
ブラウザからhttp://<サーバ名またはIPアドレス:5984/_utils/index.htmlにアクセスします。

インストール方法

以下のコマンドを実行します。
sudo apt-get -y install gnupg ca-certificates

echo "deb https://apache.bintray.com/couchdb-deb focal main" | sudo tee /etc/apt/sources.list.d/couchdb.list

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8756C4F765C9AC3CB6B85D62379CE192D401AB61
  
sudo apt-get update

sudo apt-get -y install couchdb
インストール時に以下の回答を行います。
※standaloneを選択します
※0.0.0.0を入力します
※adminのパスワードを2回入力します
sudo systemctl restart couchdb.service

関連情報

・CouchDBに関する他の記事はこちらを参照してください。

2021年1月27日水曜日

micro:bitのA/Bボタンの状態をMicroPythonを使用して取得・USBシリアルで送信する

micro:bitはMicroPythonでプログラミングする事もできます。micro:bitのA/Bボタンの状態を取得してUSBシリアルで送信して、PCで受信するには、以下の手順を実行します。

実行手順

1.pipenvのインストール
pipenvをインストール済みでない場合は、以下のコマンドでインストールします。
sudo dnf -y install python3

sudo pip3 install --upgrade pip

sudo pip3 install --upgrade setuptools

sudo pip3 install pipenv

echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.bashrc

source ~/.bashrc

2. pyserialのインストール
以下のコマンドでpyserialをインストールした仮想環境を作成します
mkdir -p ~/pyserial

cd ~/pyserial

pipenv --python 3

pipenv install pyserial

pipenv shell

3. PC側受信プログラムの保存
以下をserial_output.pyとして保存します。
import serial

try:
  ser = serial.Serial('/dev/ttyACM0',115200,timeout=None)
  while True:
    line = ser.readline()
    print(line)
finally:
  ser.close()

4. micro:bitとPCを接続して、Thonnyなどで以下のプログラムをmain.pyとして保存します。
from microbit import *

uart.init(115200)
while True:
    if button_a.is_pressed() and not button_b.is_pressed():
        display.show(Image.ARROW_W)
        uart.write("A button is pressed.\n")
    if not button_a.is_pressed() and button_b.is_pressed():
        display.show(Image.ARROW_E)
        uart.write("B button is pressed.\n")
    if button_a.is_pressed() and button_b.is_pressed():
        display.clear()
        uart.write("stop.\n")
        break
    if not button_a.is_pressed() and not button_b.is_pressed():
        display.show(Image.SMILE)
    sleep(500)
uart.init(115200)

プログラムをmicrobitに保存後、Thonnyを閉じておきます(※受信プログラムを使用せずにUSBシリアルの出力を見たい場合は、閉じないでおきます)
Micro:bitが反応しなくなった場合は「ThonnyからMicoPythonのプログラムをmicro:bitに転送する設定」の手順でMicroPythonを再インストールします。

5. PC側の受信プログラムの実行
シェルで以下を実行後、micro:bitのAボタンやBボタンを押したときのメッセージが表示されることを確認します。最後にAボタンとBボタンを同時押してmicro:bit側のプログラムを終了します。PC側のプログラムはCtrl+Cで終了します。
python serial_output.py

関連情報

・Thonnyに関する記事は、こちらを参照してください。

・Micro:bitに関する記事は、こちらを参照してください。

CentOS 8-StreamにKTurtleをインストールする

KTurtleで、スクリプトで亀を動かして図形を描き、プログラムを学習する事ができます。

〇KTurtleの画面

インストール方法

シェルから以下のコマンド実行します
sudo dnf -y install epel-release

sudo dnf -y install snapd

sudo systemctl enable --now snapd.socket

sudo ln -s /var/lib/snapd/snap /snap

sudo snap install kturtle
※「error: too early for operation, device not yet seeded or device model not acknowledged」と表示された場合は、しばらく待って再実行します。

関連情報

・KTurtleに関する他の記事は、こちらを参照してください。

Minetestに植木鉢を追加するflowerpotをインストールする

Minetestにflowerpotをインストールすると植木鉢が追加されます。植木鉢に花などを置くことができます。

〇flowerpotのスクリーンショット

インストール方法

1. 以下のコマンドを実行して、flowerpotをインストールします。
mkdir -p ~/.minetest/mods

wget https://github.com/minetest-mods/flowerpot/archive/master.zip

unzip master.zip

mv flowerpot-master/ ~/.minetest/mods/flowerpot

2.Minetestを起動して、ワールドの設定画面でflowerpotのmodを有効化します。

関連情報

・Minetestに関する情報はこちらを参照してください。

・flowerpotのgithubリポジトリ
https://github.com/minetest-mods/flowerpot

2021年1月26日火曜日

ThonnyからMicoPythonのプログラムをmicro:bitに転送する設定

Thonnyから直接MicroPythonのプログラムを転送して実行する事ができます。

設定手順

1. Thonnyを起動して、「ツール」メニューの「Options...」を選択します。

2. Thonny Optionsダイアログで「インタプリタ」タブを選択します。

3. 「Thonnyはコードの実行にどのインタプリタまたはデバイスを使用すればよいですか?」で「MicroPython (BBC micro:bit)」を選択します。

4. Portはではmbed Serial Portを選択します。

5. 「Open the dialog for installing or upgrading MicroPython on your device」ボタンをクリックします。
「Install latest MicroPython to BBC Micro:bit」ダイアログで「インストール」ボタンをクリックします。
※あらかじめmicro:bitは接続しておいてください。

関連項目

・Thonnyに関する他の記事は、こちらを参照してください。

CentOS8-StreamにRAWGraphsをインストールする

RAWGraphsでCSVなどのデータを簡単に可視化する事ができます。

○RAWGraphsの画面
ブラウザでhttp://<ホスト名またはアドレス>:4000/ を開きます。

インストール方法

以下のコマンドを実行します。
1. Python3/nodeなどのインストール
sudo dnf -y install curl git python3

sudo mkdir -p /opt/rawgraph

cd /opt/rawgraph

# install nodejs12
curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -

sudo dnf -y install nodejs

sudo npm install -g bower

2. RAWGraphのインストール
sudo git clone https://github.com/densitydesign/raw.git

cd raw

sudo bower install --allow-root

sudo cp js/analytics.sample.js js/analytics.js

# register as a service
cat << EOF | sudo tee /etc/systemd/system/rawgraph.service
[Unit]
Description=rawgraph
[Service]
Type=simple
ExecStart=/usr/bin/python3 -m http.server 4000
WorkingDirectory=/opt/rawgraph/raw
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable rawgraph

sudo systemctl start rawgraph

3. firewallの設定
sudo firewall-cmd --add-port=4000/tcp --permanent

sudo firewall-cmd --reload

関連情報

・RawGraphsに関する他の情報はこちらを参照してください。

CentOS8.2にClickHouseをインストールする

ClickHouseは高パフォーマンスの分散カラム志向データベースです。

インストール方法

以下のコマンドを実行してClickHouseをインストールします。
sudo dnf -y install yum-utils

sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG

sudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/clickhouse.repo

sudo dnf -y install clickhouse-server clickhouse-client

sudo systemctl start clickhouse-server

sudo systemctl enable clickhouse-server

サンプル実行

以下のコマンドを実行して、サンプルテーブル作成・データ投入・検索を行います。
clickhouse-client --password --query="CREATE TABLE test (test_date Date, test_id UInt16, test_message String) ENGINE = MergeTree(test_date, (test_id), 8192);"

cat << EOF > /tmp/test.csv
2019-03-01,100,hello world!
2019-03-02,200,test data
EOF
※以降「Password for user (default):」と聞かれるのでリターンキーのみ押します

cat /tmp/test.csv | clickhouse-client --password --query="INSERT INTO test FORMAT CSV"

clickhouse-client --password --query="SELECT * FROM test"

関連情報

・ClickHouseに関する他の記事はこちらを参照してください。

2021年1月25日月曜日

CentOS 8-Streamにwebminをインストールする

webminはwebブラウザからサーバを管理できるツールです。

〇webminの画面
ブラウザでhttps://<ホスト名またはIPアドレス>:10000 にアクセスします。

インストール方法

以下のコマンドを実行します。
wget https://prdownloads.sourceforge.net/webadmin/webmin-1.962-1.noarch.rpm

sudo dnf -y install webmin-1.962-1.noarch.rpm

sudo firewall-cmd --add-port=10000/tcp --permanent

sudo firewall-cmd --reload

関連情報

・Webminに関する他の記事は、こちらを参照してください。

Python WebDAV Client 3を使用してNextcloudのファイルを列挙する(pipenv版)

Python WebDAV Client 3でNextcloudに接続して、ファイルを列挙する事が出来ます。

インストール手順(pipenvの場合)

1.pipenvのインストール
pipenvをインストール済みでない場合は、以下のコマンドでインストールします。
sudo dnf -y install python3

sudo pip3 install --upgrade pip

sudo pip3 install --upgrade setuptools

sudo pip3 install pipenv

echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.bashrc

source ~/.bashrc

2. webdav-client-python-3のインストール
以下のコマンドでwebdav-client-python-3をインストールした仮想環境を作成します
mkdir -p ~/webdav-client-python-3

cd ~/webdav-client-python-3

pipenv --python 3

pipenv install webdavclient3

pipenv shell

実行手順

WebDAVクライアントを使用してWebDAV上のディレクトリの内容を列挙します。以下のサンプルプログラムを保存して、実行します。
from webdav3.client import Client

dav_user='test'
dav_password='testpassword'
dav_server='mynextcloud'
options = {
'webdav_hostname': "http://" + dav_server + "/nextcloud/remote.php/dav/files/" + dav_user + "/",
'webdav_login':    dav_user,
'webdav_password': dav_password
}
client = Client(options)
client.verify = False # To not check SSL certificates (Default = True)

files = client.list(get_info=True)
for file in files:
        if file['isdir'] == True:
                print("directory:" + file['path'])
        else:
                print("file:" + file['path'])

関連情報

・Python WebDAV Client 3
https://github.com/ezhov-evgeny/webdav-client-python-3

・Nextcloudに関する他の情報は以下のまとめページを参照してください。
Nextcloudのまとめ

CentOS8.2にArduino IDEをインストールする

Arduino IDEでArduino Unoなどの様々なボードのプログラミングをする事ができます。

〇Arduino IDEの画面

インストール方法

以下のコマンドを実行します。
1. OpenJDKのインストール
sudo dnf install -y java-11-openjdk

2. Arduino IDEのダウンロードとインストール
wget https://downloads.arduino.cc/arduino-1.8.13-linux64.tar.xz

tar -xvf arduino-1.8.13-linux64.tar.xz

sudo mv arduino-1.8.13 /opt

cd /opt/arduino-1.8.13

mv java java.bak
# バンドルされているjavaを使用しないようにする

sudo ./install.sh

sudo usermod -a -G dialout $USER

関連情報

・Arduinoに関する他の記事はこちらを参照してください。

2021年1月24日日曜日

Debian 10(Buster)/Ubuntu 20.04/CentOS8.2に3DプリンタのスライサーアプリUltimaker Cura4.8.0/4.9.0をインストールする

Ultimaker Curaで3Dデータをスライスして、3Dプリンターに出力するgcodeに変換する事ができます。

〇Ultimaker Curaの画面(Debian 10)

〇Ultimaker Curaの画面(Ubuntu 20.04)

〇Ultimaker Curaの画面(CentOS8.2)

インストール方法

以下のコマンドを実行します。
2021/04/26追記:version4.9.0は以下の手順でインストールします。
sudo mkdir -p /opt/cura

cd /opt/cura

sudo wget https://github.com/Ultimaker/Cura/releases/download/4.9.0/Ultimaker_Cura-4.9.0.AppImage

sudo chmod +x /opt/cura/Ultimaker_Cura-4.9.0.AppImage

cat << EOF | sudo tee /usr/share/applications/cura.desktop
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/opt/cura/Ultimaker_Cura-4.9.0.AppImage
Name=Ultimaker Cura
Categories=Development;
EOF

・旧version4.8.0のインストール
sudo mkdir -p /opt/cura

cd /opt/cura

sudo wget https://github.com/Ultimaker/Cura/releases/download/4.8.0/Ultimaker_Cura-4.8.0.AppImage

sudo chmod +x /opt/cura/Ultimaker_Cura-4.8.0.AppImage

cat << EOF | sudo tee /usr/share/applications/cura.desktop
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/opt/cura/Ultimaker_Cura-4.8.0.AppImage
Name=Ultimaker Cura
Categories=Development;
EOF

関連情報

・Ultimaker Curaのgithubリポジトリ
https://github.com/Ultimaker/Cura

・Ultimaker Curaに関する他の記事は、こちらを参照してください。

2021年1月23日土曜日

CentOS 8-StreamにGlimpse Editorをインストールする

Glimpse Editorはオープンソースの画像処理ツールです。

〇Glimpse Editorの画面

インストール方法

シェルから以下のコマンド実行します
sudo dnf -y install flatpak

sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

sudo flatpak -y install flathub org.glimpse_editor.Glimpse

関連情報

・Glimpse Editorに関する他の情報はこちらを参照してください。

pythonとpysndfxでハイパスフィルターの効果をつける

pysndfxで音楽ファイルに対して様々な音響効果をつける事ができます。

pysndfxでハイパスフィルターの効果をつける手順

1. pysndfxをインストールしたPython環境を準備します。環境の準備については、以下を参照してください。
pythonとpysndfxで音楽ファイルに残響効果をつける
2. サンプルプログラムの作成と実行
highpassメソッドでハイパスフィルターの効果をつけます。第一引数で周波数を指定します。指定した周波数より上を通します。ファイル名は適宜変更してください。
highpass.py
from pysndfx import AudioEffectsChain

# ハイパスフィルターの効果をつける
fx = (
    AudioEffectsChain().highpass(900, q=0.707)
)

# 効果の処理と保存
fx("./yoursong.wav", "./highpass.wav")

以下のコマンドでスクリプトを実行します。
python highpass.py

関連情報

・pysndfx(python-audio-effects)のgithubリポジトリ
https://github.com/carlthome/python-audio-effects

・pysndfxに関する他の情報は以下のまとめページを参照してください。
python用音響効果モジュールpysndfxのまとめ

Minetestに紙を追加するts_paperをインストールする

Minetestにts_paperをインストールすると紙が追加されます。紙に文章を記録する事ができ、サインすると変更する事が出来なくなります。

〇ts_paperを入れたあとのスクリーンショット

〇紙の編集画面

〇インストール方法
1. 以下のコマンドを実行して、ts_paperをインストールします。
mkdir -p ~/.minetest/mods

wget https://github.com/minetest-mods/ts_paper/archive/master.zip

unzip master.zip

mv ts_paper-master/ ~/.minetest/mods/ts_paper

2.Minetestを起動して、ワールドの設定画面でts_paperのmodを有効化します。

〇関連情報
・Minetestに関する情報はこちらを参照してください。

・ts_paperyのgithubリポジトリ
https://github.com/minetest-mods/ts_paper

2021年1月22日金曜日

CentOS 8-StreamにStellariumをインストールする

Stellariumはパソコン上で星座を表示できるプラネタリウムソフトです。

〇Stellariumの画面

インストール方法

シェルから以下のコマンド実行します
sudo dnf -y install stellarium

関連情報

・Stellariumに関する他の情報はこちらを参照してください。

pythonとpysndfxでローパスフィルターの効果をつける

pysndfxで音楽ファイルに対して様々な音響効果をつける事ができます。

pysndfxでローパスフィルターの効果をつける手順

1. pysndfxをインストールしたPython環境を準備します。環境の準備については、以下を参照してください。
pythonとpysndfxで音楽ファイルに残響効果をつける

2. サンプルプログラムの作成と実行
lowpassメソッドでローパスフィルターの効果をつけます。第一引数で周波数を指定します。指定した周波数より下を通します。ファイル名は適宜変更してください。
lowpass.py
from pysndfx import AudioEffectsChain

# ローパスフィルターの効果をつける
fx = (
    AudioEffectsChain().lowpass(500, q=0.707)
)

# 効果の処理と保存
fx("./yoursong.wav", "./lowpass.wav")

以下のコマンドでスクリプトを実行します。
python lowpass.py

関連情報

・pysndfx(python-audio-effects)のgithubリポジトリ
https://github.com/carlthome/python-audio-effects

・pysndfxに関する他の情報は以下のまとめページを参照してください。
python用音響効果モジュールpysndfxのまとめ

Minetestに黒い液体・紫の液体を追加するmodを作成する

Minetestではmodによりブロックを追加する事ができます。

〇作成したmodで追加した黒い液体・紫の液体

作成手順

1. mod用フォルダの作成
mkdir ~/.minetest/mods/liquids
mkdir ~/.minetest/mods/liquids/textures

2. 以下の画像ファイルをtexturesに配置

gray_liquid.png

purple_liquid.png

3. テキストエディタなどで、以下の内容をinit.luaとして保存
creativeモードなどに切り替え、gray liquid source/purple liquid sourceがインベントリに追加されるのを確認します。
minetest.register_node("liquids:gray_liquid_source", {
    tiles = {
        {
            name = "gray_liquid.png",
            backface_culling = false,
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 2.0,
            },
        },
        {
            name = "gray_liquid.png",
            backface_culling = true,
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 2.0,
            },
        },
    },
    description = "gray liquid source",
    drawtype = "liquid",
    waving=3,
    alpha = 200,
        paramtype = "light",
        walkable = false,
        pointable = false,
        diggable = false,
        buildable_to = true,
        is_ground_content = false,
        drop = "",
        drowning = 1,
        liquidtype = "source",
    liquid_alternative_flowing = "liquids:gray_liquid_flowing",
        liquid_alternative_source = "liquids:gray_liquid_source",
        liquid_viscosity = 1,
        post_effect_color = {a = 203, r = 10, g = 10, b = 10},
        groups = {water = 3, liquid = 3,
                cools_lava = 1},
})

minetest.register_node("liquids:gray_liquid_flowing", {
    tiles = {
        "gray_liquid.png"
    },
            special_tiles = {
                {
                        name = "gray_liquid.png",
                        backface_culling = false,
                        animation = {
                                type = "vertical_frames",
                                aspect_w = 16,
                                aspect_h = 16,
                                length = 0.8,
                        },
                },
                {
                        name = "gray_liquid.png",
                        backface_culling = true,
                        animation = {
                                type = "vertical_frames",
                                aspect_w = 16,
                                aspect_h = 16,
                                length = 0.8,
                        },
                },
        },
    description = "gray liquid flowing",
    drawtype = "flowingliquid",
    waving=3,
    paramtype = "light",
    paramtype2 = "flowingliquid",
    alpha = 200,
        walkable = false,
        pointable = false,
        diggable = false,
        buildable_to = true,
        is_ground_content = false,
        drop = "",
        drowning = 1,
        liquidtype = "flowing",
    liquid_alternative_flowing = "liquids:gray_liquid_flowing",
        liquid_alternative_source = "liquids:gray_liquid_source",
        liquid_viscosity = 1,
        post_effect_color = {a = 203, r = 10, g = 10, b = 10},
        groups = {water = 3, liquid = 3,  not_in_creative_inventory = 1,
                cools_lava = 1},
})


minetest.register_node("liquids:purple_liquid_source", {
    tiles = {
        {
            name = "purple_liquid.png",
            backface_culling = false,
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 2.0,
            },
        },
        {
            name = "purple_liquid.png",
            backface_culling = true,
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 2.0,
            },
        },
    },
    description = "purple liquid source",
    drawtype = "liquid",
    waving=3,
    alpha = 200,
        paramtype = "light",
        walkable = false,
        pointable = false,
        diggable = false,
        buildable_to = true,
        is_ground_content = false,
        drop = "",
        drowning = 1,
        liquidtype = "source",
    liquid_alternative_flowing = "liquids:purple_liquid_flowing",
        liquid_alternative_source = "liquids:purple_liquid_source",
        liquid_viscosity = 1,
        post_effect_color = {a = 203, r = 50, g = 10, b = 40},
        groups = {water = 3, liquid = 3,
                cools_lava = 1},
})

minetest.register_node("liquids:purple_liquid_flowing", {
    tiles = {
        "purple_liquid.png"
    },
            special_tiles = {
                {
                        name = "purple_liquid.png",
                        backface_culling = false,
                        animation = {
                                type = "vertical_frames",
                                aspect_w = 16,
                                aspect_h = 16,
                                length = 0.8,
                        },
                },
                {
                        name = "purple_liquid.png",
                        backface_culling = true,
                        animation = {
                                type = "vertical_frames",
                                aspect_w = 16,
                                aspect_h = 16,
                                length = 0.8,
                        },
                },
        },
    description = "purple liquid flowing",
    drawtype = "flowingliquid",
    waving=3,
    paramtype = "light",
    paramtype2 = "flowingliquid",
    alpha = 200,
        walkable = false,
        pointable = false,
        diggable = false,
        buildable_to = true,
        is_ground_content = false,
        drop = "",
        drowning = 1,
        liquidtype = "flowing",
    liquid_alternative_flowing = "liquids:purple_liquid_flowing",
        liquid_alternative_source = "liquids:purple_liquid_source",
        liquid_viscosity = 1,
        post_effect_color = {a = 203, r = 50, g = 10, b = 40},
        groups = {water = 3, liquid = 3,  not_in_creative_inventory = 1,
                cools_lava = 1},
})

4. ワールドの世界画面でliquids modを有効化して、ゲーム開始

関連情報

・Minetestに関する他の記事はこちらを参照してください。

2021年1月21日木曜日

CentOS 8-StreamにKalziumをインストールする

Kalziumで周期表や元素の融点や沸点などの情報や原子配列を学ぶことができます。

〇Kalziumの画面

インストール方法

以下のコマンドを実行します。
sudo dnf -y install flatpak

sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

sudo flatpak -y install flathub org.kde.kalzium

関連情報

・Kalziumに関する他の記事は、こちらを参照してください。

pythonとpysndfxでハイシェルフフィルターの効果をつける

pysndfxで音楽ファイルに対して様々な音響効果をつける事ができます。

pysndfxでハイシェルフフィルターの効果をつける手順

1. pysndfxをインストールしたPython環境を準備します。環境の準備については、以下を参照してください。
pythonとpysndfxで音楽ファイルに残響効果をつける

2. サンプルプログラムの作成と実行
highshelfメソッドでハイシェルフフィルターの効果をつけます。第一引数で周波数を指定します。指定した周波数より上を増幅/減衰させます。ファイル名は適宜変更してください。
highshelf.py
from pysndfx import AudioEffectsChain

# ハイシェルフフィルターの効果をつける
fx = (
    AudioEffectsChain().highshelf(gain=8.0, frequency=700, slope=0.5)
)

# 効果の処理と保存
fx("./yoursong.wav", "./highshelf.wav")

以下のコマンドでスクリプトを実行します。
python highshelf.py

関連情報

・pysndfx(python-audio-effects)のgithubリポジトリ
https://github.com/carlthome/python-audio-effects

・pysndfxに関する他の情報は以下のまとめページを参照してください。
python用音響効果モジュールpysndfxのまとめ

Ubuntu20.04上のMinetestにLucky Block modを追加する

Lucky Block modで、はてなマークのブロックが追加されます。Lucky Blockを壊すとランダムになにかが出現します。

〇Lucky Blockの外観

Lucky Block modのインストール

以下のコマンドを実行します。
sudo apt-get -y install minetest-mod-lucky-block

関連情報

Lucky Block mod for Minetestのリポジトリ
https://notabug.org/TenPlus1/lucky_block

2021年1月20日水曜日

CentOS 8-StreamにGnome Geniusをインストールする

Gnome Geniusは汎用計算機の機能を持つ他、Matlab/Mathmaticaと似た点を持つプログラミング言語です。

〇Gnome Geniusの画面

インストール方法

以下のコマンドを実行します。
sudo dnf -y install flatpak

sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

sudo flatpak -y install flathub org.gnome.Genius

関連情報

・Gnome Geniusに関する他の記事は、こちらを参照してください。

pythonとpysndfxでローシェルフフィルターの効果をつける

pysndfxで音楽ファイルに対して様々な音響効果をつける事ができます。

pysndfxでローシェルフフィルターの効果をつける手順

1. pysndfxをインストールしたPython環境を準備します。環境の準備については、以下を参照してください。
pythonとpysndfxで音楽ファイルに残響効果をつける

2. サンプルプログラムの作成と実行
lowshelfメソッドでローシェルフフィルターの効果をつけます。第一引数で周波数を指定します。指定した周波数より下を増幅/減衰させます。ファイル名は適宜変更してください。
lowshelf.py
from pysndfx import AudioEffectsChain

# ローシェルフフィルターの効果をつける
fx = (
    AudioEffectsChain().lowshelf(gain=8.0, frequency=100, slope=0.5)
)

# 効果の処理と保存
fx("./yoursong.wav", "./lowshelf.wav")

以下のコマンドでスクリプトを実行します。
python lowshelf.py

関連情報

・pysndfx(python-audio-effects)のgithubリポジトリ
https://github.com/carlthome/python-audio-effects

・pysndfxに関する他の情報は以下のまとめページを参照してください。
python用音響効果モジュールpysndfxのまとめ

CentOS8.2にActiveMQをインストールする

ApacheMQは、オープンソースのメッセージングサーバーです。

〇ActiveMQの画面
ブラウザでhttp://<ホスト名またはアドレス>:8161/ にアクセスします。ユーザ名にadmin、パスワードにもadminを入力します。

インストール方法

以下のコマンドを実行します。
1. OpenJDKのインストール
sudo dnf install -y java-11-openjdk

2. ActiveMQのダウンロード
wget  http://ftp.tsukuba.wide.ad.jp/software/apache/activemq/5.16.0/apache-activemq-5.16.0-bin.tar.gz

tar xvfz apache-activemq-5.16.0-bin.tar.gz

3. SE Linuxの設定
cat << EOF | tee  my-activemq.te
module my-activemq 1.0;

require {
        type init_t;
        type user_home_t;
        class file { append execute execute_no_trans ioctl map open read setattr create write relabelfrom rename };
}

#============= init_t ==============
allow init_t user_home_t:file { append execute execute_no_trans ioctl open read setattr map create write relabelfrom rename };
EOF

checkmodule -M -m -o my-activemq.mod my-activemq.te
semodule_package -o my-activemq.pp -m my-activemq.mod
sudo semodule -i my-activemq.pp

4. ActiveMQの設定
sudo mv apache-activemq-5.16.0 /opt/activemq

sed -i -e 's/name="host" value="127.0.0.1"/name="host" value="0.0.0.0"/'  /opt/activemq/conf/jetty.xml

cat << EOF | sudo tee /etc/systemd/system/activemq.service
[Unit]
Description=Apache ActiveMQ
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/opt/activemq/bin/activemq start
ExecStop=/opt/activemq/bin/activemq stop
KillMode=none

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable activemq.service

sudo systemctl start activemq.service

5. ポート開放
firewallの8161番ポートを開けます
sudo firewall-cmd --add-port=8161/tcp --permanent

sudo firewall-cmd --reload

関連情報

・Apache ActiveMQに関する他の記事はこちらを参照してください。

・ActiveMQのプロジェクトwebサイト
http://activemq.apache.org/

2021年1月19日火曜日

CentOS 8-Streamにスタンドアローン版のOmniDBとMariaDBをインストールする

OmniDBはオープンソースのデータベース管理ツールです。

〇スタンドアローン版OmniDBの画面

インストール方法

以下のコマンドを実行します。
1. (任意)MariaDBをインストール
※ローカルでMariaDBを試したい場合は、以下のコマンドを実行します。
sudo dnf -y install mariadb mariadb-server

sudo systemctl enable mariadb.service

sudo systemctl start mariadb.service

sudo mysql -uroot -e "SET PASSWORD = PASSWORD('root'); FLUSH PRIVILEGES;"
※パスワードは適宜変更してください

2. OmniDBのインストール
wget https://github.com/OmniDB/OmniDB/releases/download/2.17.0/omnidb-app_2.17.0-centos-amd64.rpm

sudo dnf -y install omnidb-app_2.17.0-centos-amd64.rpm

関連情報

・OmniDBのwebサイト
https://omnidb.org/en/

pythonとpysndfxでバンドリジェクトフィルター効果をつける

pysndfxで音楽ファイルに対して様々な音響効果をつける事ができます。

pysndfxでバンドリジェクトフィルター効果をつける手順

1. pysndfxをインストールしたPython環境を準備します。環境の準備については、以下を参照してください。
pythonとpysndfxで音楽ファイルに残響効果をつける

2. サンプルプログラムの作成と実行
bandrejectメソッドでバンドリジェクトフィルター効果をつけます。第一引数で周波数を指定します。ファイル名は適宜変更してください。
bandreject.py
from pysndfx import AudioEffectsChain

# バンドリジェクトフィルター効果をつける
fx = (
    AudioEffectsChain().bandreject(400, q=1.0)
)

# 効果の処理と保存
fx("./yoursong.wav", "./bandreject.wav")

以下のコマンドでスクリプトを実行します。
python bandreject.py

関連情報

・pysndfx(python-audio-effects)のgithubリポジトリ
https://github.com/carlthome/python-audio-effects

・pysndfxに関する他の情報は以下のまとめページを参照してください。
python用音響効果モジュールpysndfxのまとめ

Ubuntu 20.04上のMinetestに無限に格納できるチェストを追加すInfinite Chest modをインストールする

Infinite Chestで無限に格納できるチェストを追加する事ができます。

〇Infinite Chestの外観

〇Infinite Chestの初回利用時
スロットの名称を入力して「Go」をクリックします。

〇Infinite Chestのスロットを開いたところ

インストール方法

以下のコマンドを実行します。
sudo apt-get -y install minetest-mod-infinite-chest
インストール後、ワールドの設定画面でinfinite_chestを有効化します。

関連情報

・Infinite Chestのgithubリポジトリ
https://github.com/cornernote/minetest-infinite_chest

・Ubuntu 20.04にminetestをインストールする方法は以下を参照してください。
Ubuntu 20.04/Raspberry Pi(Raspbian Buster)にMinetestをインストールする

・Minetestに関する他の記事はこちらを参照してください。

2021年1月18日月曜日

CentOS 8-StreamにGanttProjectをインストールする

Gantt ProjectはMicrosoft Projectのようなプロジェクト管理ソフトウェアです。

〇GanttProjectの画面

インストール方法

以下のコマンドを実行します。
sudo dnf remove -y java-1.8.0-openjdk-headless

sudo dnf install -y java-11-openjdk

sudo wget https://sourceforge.net/projects/ganttproject/files/ganttproject-2.8.11/ganttproject-2.8.11-r2396.zip

sudo unzip -d /opt ganttproject-2.8.11-r2396.zip

cat << EOF | sudo tee /usr/share/applications/ganttproject.desktop
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Environment=QT_IM_MODULE=fcitx
Exec=/opt/ganttproject-2.8.11-r2396/ganttproject
Name=GanttProject
Categories=Development;
EOF

関連情報

・Gntt Projectに関する他の記事は、こちらを参照してください。

pythonとpysndfxでバンドパスフィルター効果をつける

pysndfxで音楽ファイルに対して様々な音響効果をつける事ができます。

pysndfxでバンドパスフィルター効果をつける手順

1. pysndfxをインストールしたPython環境を準備します。環境の準備については、以下を参照してください。
pythonとpysndfxで音楽ファイルに残響効果をつける

2. サンプルプログラムの作成と実行
bandpassメソッドでバンドパスフィルター効果をつけます。第一引数で周波数を指定します。ファイル名は適宜変更してください。
bandpass.py
from pysndfx import AudioEffectsChain

# バンドパスフィルター効果をつける
fx = (
    AudioEffectsChain().bandpass(400, q=1.0)
)

# 効果の処理と保存
fx("./yoursong.wav", "./bandpass.wav")

以下のコマンドでスクリプトを実行します。
python bandpass.py

関連情報

・pysndfx(python-audio-effects)のgithubリポジトリ
https://github.com/carlthome/python-audio-effects

・pysndfxに関する他の情報は以下のまとめページを参照してください。
python用音響効果モジュールpysndfxのまとめ

CentOS8.2にpgcliをインストールする

pgcliは補完機能を備えたPostgresqlのCUIです。

〇pgcliの画面

インストール方法

以下のコマンド実行します
sudo dnf -y install python3 epel-release

sudo dnf -y groupinstall "Development Tools"

sudo dnf -y install postgresql-devel python3-devel

sudo pip3 install --upgrade pip

sudo pip3 install pgcli 

実行方法

pgcli -h <ホスト名またはアドレス> -U <ユーザ名> -W <データベース名>

関連情報

pgcliに関する他の記事はこちらを参照してください。

2021年1月17日日曜日

CentOS 8-StreamにOpenSCADをインストールする

OpenSCADはプログラムで3Dモデリングを行う事ができるソフトウェアです。

〇OpenSCADの画面

インストール方法

以下のコマンドを実行します。
sudo mkdir -p /opt/openscad

cd /opt/openscad

sudo wget https://files.openscad.org/OpenSCAD-2019.05-x86_64.AppImage

sudo chmod +x OpenSCAD-2019.05-x86_64.AppImage

cat << EOF | sudo tee /usr/share/applications/openscad.desktop
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/opt/openscad/OpenSCAD-2019.05-x86_64.AppImage
Name=OpenSCAD
EOF

関連情報

・OpenSCADに関する記事はこちらを参照してください。

・そのほかの3Dプリンターを活用した記事は以下を参照してください。
OpenSCADまとめ

pythonとpysndfxでイコライザー効果をつける

pysndfxで音楽ファイルに対して様々な音響効果をつける事ができます。

pysndfxでイコライザー効果をつける手順

1. pysndfxをインストールしたPython環境を準備します。環境の準備については、以下を参照してください。
pythonとpysndfxで音楽ファイルに残響効果をつける

2. サンプルプログラムの作成と実行
equalizerメソッドでイコライザー効果をつけます。ファイル名は適宜変更してください。
equalizer.py
from pysndfx import AudioEffectsChain

# イコライザー効果をつける
fx = (
    AudioEffectsChain().equalizer(700, q=1.0, db=-10.0)
)

# 効果の処理と保存
fx("./yoursong.wav", "./equalizer.wav")

以下のコマンドでスクリプトを実行します。
pythonequalizer.py

関連情報

・pysndfx(python-audio-effects)のgithubリポジトリ
https://github.com/carlthome/python-audio-effects

・pysndfxに関する他の情報は以下のまとめページを参照してください。
python用音響効果モジュールpysndfxのまとめ

Ubuntu20.04でPycraft mod for MinetestとPythonを使用して2階建ての家を作成する

Pycraft mod for MinetestとPythonを使用して2階建ての家を作成するには、以下の手順を実行します。

〇Pycraft mod for MinetestとPythonで作成した2階建ての家

作成方法

1. Pycraft mod for Minetestのインストール
Pycraft mod for Minetestをインストールしていない場合は、以下の記事を参考にしてインストールしてください。
Ubuntu20.04でPycraft mod for MinetestとPythonを使用して指定されたブロックの床を作成する

2. プログラミング
以下のコードで、2階建ての家を作成します。Thonnyの場合は、以下のコードを保存後、緑色の再生ボタンをクリックして実行してください。
import mcpi.minecraft as minecraft
import mcpi.block as block

# 家の幅(内径)
house_xs = 6
# 家の高さ1F(内径)
house_ys = 5
# 家の奥行き(内径)
house_zs = 10

def two_storied_house(px, py, pz):

    # 床1F
    for dx in range(house_xs+2):
        for dz in range(house_zs+2):
          mc.setBlock( px+dx, py, pz+dz, block.BRICK_BLOCK)

    # 壁1F
    for dx in range(house_xs+2):
        for dz in range(house_zs+2):
            for dy in range(house_ys):
                if dx == 0 or dz == 0 or dx == house_xs+1 or dz == house_zs+1:
                    mc.setBlock( px+dx, py+dy+1, pz+dz, block.BRICK_BLOCK )
                else:
                    mc.setBlock( px+dx, py+dy+1, pz+dz, block.AIR )

    # 床2F
    for dx in range(house_xs+2):
        for dz in range(house_zs+2):
          mc.setBlock( px+dx, py+house_ys, pz+dz, block.BRICK_BLOCK)

    # 壁2F
    for dx in range(house_xs+2):
        for dz in range(house_zs+2):
            for dy in range(house_ys):
                if dx == 0 or dz == 0 or dx == house_xs+1 or dz == house_zs+1:
                    mc.setBlock( px+dx, py+dy+1+house_ys, pz+dz, block.BRICK_BLOCK )
                else:
                    mc.setBlock( px+dx, py+dy+1+house_ys, pz+dz, block.AIR )

    # ドアの穴
    for dx in range(2):
        for dy in range(house_ys-1):
            mc.setBlock( px+dx+2, py+dy+1, pz, block.AIR )

    # 1F窓
    mc.setBlock( px, py+2, pz+3, block.GLASS )
    mc.setBlock( px, py+3, pz+3, block.GLASS )
    mc.setBlock( px, py+2, pz+4, block.GLASS )
    mc.setBlock( px, py+3, pz+4, block.GLASS )
    mc.setBlock( px, py+2, pz+5, block.GLASS )
    mc.setBlock( px, py+3, pz+5, block.GLASS )

    # 1F窓2
    mc.setBlock( px+house_xs+1, py+2, pz+3, block.GLASS )
    mc.setBlock( px+house_xs+1, py+3, pz+3, block.GLASS )
    mc.setBlock( px+house_xs+1, py+2, pz+4, block.GLASS )
    mc.setBlock( px+house_xs+1, py+3, pz+4, block.GLASS )
    mc.setBlock( px+house_xs+1, py+2, pz+5, block.GLASS )
    mc.setBlock( px+house_xs+1, py+3, pz+5, block.GLASS )

    # 階段
    mc.setBlock( px+house_xs, py+1, pz+6, block.STAIRS_WOOD.id,2 )
    mc.setBlock( px+house_xs, py+2, pz+7, block.STAIRS_WOOD.id,2 )
    mc.setBlock( px+house_xs, py+3, pz+8, block.STAIRS_WOOD.id,2 )
    mc.setBlock( px+house_xs, py+4, pz+9, block.STAIRS_WOOD.id,2 )
    mc.setBlock( px+house_xs, py+5, pz+10, block.STAIRS_WOOD.id,2 )
    mc.setBlock( px+house_xs, py+5, pz+9, block.AIR )
    mc.setBlock( px+house_xs, py+5, pz+8, block.AIR )
    mc.setBlock( px+house_xs, py+5, pz+7, block.AIR )

    # 2F窓
    mc.setBlock( px, py+2+house_ys, pz+2, block.GLASS )
    mc.setBlock( px, py+3+house_ys, pz+2, block.GLASS )
    mc.setBlock( px, py+2+house_ys, pz+3, block.GLASS )
    mc.setBlock( px, py+3+house_ys, pz+3, block.GLASS )
    mc.setBlock( px, py+2+house_ys, pz+7, block.GLASS )
    mc.setBlock( px, py+3+house_ys, pz+7, block.GLASS )
    mc.setBlock( px, py+2+house_ys, pz+8, block.GLASS )
    mc.setBlock( px, py+3+house_ys, pz+8, block.GLASS )

    # 2F窓2
    mc.setBlock( px+house_xs+1, py+2+house_ys, pz+2, block.GLASS )
    mc.setBlock( px+house_xs+1, py+3+house_ys, pz+2, block.GLASS )
    mc.setBlock( px+house_xs+1, py+2+house_ys, pz+3, block.GLASS )
    mc.setBlock( px+house_xs+1, py+3+house_ys, pz+3, block.GLASS )
    mc.setBlock( px+house_xs+1, py+2+house_ys, pz+7, block.GLASS )
    mc.setBlock( px+house_xs+1, py+3+house_ys, pz+7, block.GLASS )
    mc.setBlock( px+house_xs+1, py+2+house_ys, pz+8, block.GLASS )
    mc.setBlock( px+house_xs+1, py+3+house_ys, pz+8, block.GLASS )

    # 屋根
    for dy in range(3):
        for dx in range(house_xs+2-dy*2):
            for dz in range(house_zs+2-dy*2):
                mc.setBlock( px+dx+dy, py+dy+house_ys*2, pz+dz+dy, block.REDSTONE_BLOCK)

    # 本棚
    mc.setBlock( px+1, py+1, pz+house_zs, block.BOOKSHELF)
    mc.setBlock( px+1, py+2, pz+house_zs, block.BOOKSHELF)

    # 明かり
    mc.setBlock( px+3, py+1, pz+house_zs, block.SEA_LANTERN)
    mc.setBlock( px+3, py+1+house_ys, pz+house_zs, block.SEA_LANTERN)

# ローカルサーバに接続
mc = minecraft.Minecraft.create("127.0.0.1")
# プレイヤーの位置を取得
pos = mc.player.getPos()
print(pos)
two_storied_house(pos.x, pos.y, pos.z+5)

関連情報

・Minetestに関する情報はこちらを参照してください。

2021年1月16日土曜日

CentOS 8-Streamにメモアプリケーション(Bijiben)をインストールする

メモアプリケーション(Bijiben)で付箋紙のようにメモする事ができます。

〇メモアプリケーション(Bijiben)

インストール方法

以下のコマンドを実行します。
sudo dnf -y install flatpak

sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

sudo flatpak -y install flathub org.gnome.Notes

関連情報

・メモアプリケーション(Bejiben)に関する他の記事は、こちらを参照してください。

pythonとpysndfxでコダマのように音を繰り返す効果をつける

pysndfxで音楽ファイルに対して様々な音響効果をつける事ができます。

pysndfxでコダマのように音を繰り返す効果をつける手順

1. pysndfxをインストールしたPython環境を準備します。環境の準備については、以下を参照してください。
pythonとpysndfxで音楽ファイルに残響効果をつける

2. サンプルプログラムの作成と実行
delayメソッドでコダマのように音を繰り返す効果をつけます。ファイル名は適宜変更してください。
delay.py
from pysndfx import AudioEffectsChain

# スピードを変更する
fx = (
    AudioEffectsChain().delay(gain_in=0.8,
        gain_out=0.5,
        delays=[1000,1800],
        decays=[0.3,0.25],
        parallel=False)
)

# 効果の処理と保存
fx("./yoursong.wav", "./delay.wav")

以下のコマンドでスクリプトを実行します。
python delay.py

関連情報

・pysndfx(python-audio-effects)のgithubリポジトリ
https://github.com/carlthome/python-audio-effects

・pysndfxに関する他の情報は以下のまとめページを参照してください。
python用音響効果モジュールpysndfxのまとめ

CentOS8.2にOpenBoardをインストールする

OpenBoardは学校での利用を想定したインタラクティブな黒板ソフトです。

〇OpenBoardの画面

インストール方法

以下のコマンド実行します
sudo dnf -y install flatpak

sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

sudo flatpak -y install flathub ch.openboard.OpenBoard

2021年1月15日金曜日

CentOS 8-StreamにStacerをインストールする

Stacerでシステムのモニタリングや設定を行うことができます。

〇Stacerの画面

インストール方法

以下のコマンドを実行します。
sudo mkdir -p /opt/stacer

cd /opt/stacer

sudo wget https://github.com/oguzhaninan/Stacer/releases/download/v1.1.0/Stacer-1.1.0-x64.AppImage

sudo chmod +x Stacer-1.1.0-x64.AppImage

cat << EOF | sudo tee /usr/share/applications/stacer.desktop
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/opt/stacer/Stacer-1.1.0-x64.AppImage
Name=Stacer
Categories=Accessories;
EOF

関連情報

・Stacerに関する他の記事は、こちらを参照してください。

pythonとpysndfxで音が歪んだ状態に加工する

pysndfxで音が歪んだ状態に加工する事ができます。

pysndfxで音が歪んだ状態に加工する手順

1. pysndfxをインストールしたPython環境を準備します。環境の準備については、以下を参照してください。
pythonとpysndfxで音楽ファイルに残響効果をつける

2. サンプルプログラムの作成と実行
overdriveメソッドで音が歪んだ状態に加工します。ファイル名は適宜変更してください。
overdrive.py
from pysndfx import AudioEffectsChain

# 音が歪んだ状態に加工する
fx = (
    AudioEffectsChain().overdrive(gain=20, colour=20)
)

# 効果の処理と保存
fx("./yoursong.wav", "./overdrive.wav")

以下のコマンドでスクリプトを実行します。
python overdrive.py

関連情報

・pysndfx(python-audio-effects)のgithubリポジトリ
https://github.com/carlthome/python-audio-effects

・pysndfxに関する他の情報は以下のまとめページを参照してください。
python用音響効果モジュールpysndfxのまとめ

Ubuntu 20.04上のMinetestに鉱物の種類を増やすMore Ores modをインストールする

More Ores modでミスリルやシルバーなどの鉱物の種類を増やす事ができます。

〇More Oresの画面

インストール方法

以下のコマンドを実行します。
sudo apt-get -y install minetest-mod-moreores
インストール後、ワールドの設定画面でmoreoresを有効化します。

関連情報

・More Oresのgithubリポジトリ
https://github.com/minetest-mods/moreores

・Ubuntu 20.04にminetestをインストールする方法は以下を参照してください。
Ubuntu 20.04/Raspberry Pi(Raspbian Buster)にMinetestをインストールする

・Minetestに関する他の記事はこちらを参照してください。