2020年11月18日水曜日

Ubuntu20.04でPycraft mod for MinetestとPythonを使用してレンガ造りの家を作成する

Pycraft mod for MinetestとPythonを使用してレンガ造りの家を作成するには、以下の手順を実行します。

〇Pycraft mod for MinetestとPythonで作成したレンガ造りの家

作成方法

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

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

# 家の幅
house_xs = 10
# 家の高さ
house_ys = 5
# 家の奥行き
house_zs = 5

# ローカルサーバに接続
mc = minecraft.Minecraft.create("127.0.0.1")
# プレイヤーの位置を取得
pos = mc.player.getPos()
print(pos)
pos.z += 5
# 床
for dx in range(house_xs+2):
    for dz in range(house_zs+2):
      mc.setBlock( pos.x+dx, pos.y, pos.z+dz, block.BRICK_BLOCK)

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( pos.x+dx, pos.y+dy+1, pos.z+dz, block.BRICK_BLOCK )
            else:
                mc.setBlock( pos.x+dx, pos.y+dy+1, pos.z+dz, block.AIR )

# ドアの穴
for dx in range(2):
    for dy in range(house_ys-1):
        mc.setBlock( pos.x+dx+2, pos.y+dy+1, pos.z, block.AIR )

# 窓
mc.setBlock( pos.x+6, pos.y+2, pos.z, block.GLASS )
mc.setBlock( pos.x+7, pos.y+2, pos.z, block.GLASS )
mc.setBlock( pos.x+6, pos.y+3, pos.z, block.GLASS )
mc.setBlock( pos.x+7, pos.y+3, pos.z, block.GLASS )


# 窓2
mc.setBlock( pos.x+6, pos.y+2, pos.z+house_zs+1, block.GLASS )
mc.setBlock( pos.x+7, pos.y+2, pos.z+house_zs+1, block.GLASS )
mc.setBlock( pos.x+8, pos.y+2, pos.z+house_zs+1, block.GLASS )
mc.setBlock( pos.x+6, pos.y+3, pos.z+house_zs+1, block.GLASS )
mc.setBlock( pos.x+7, pos.y+3, pos.z+house_zs+1, block.GLASS )
mc.setBlock( pos.x+8, pos.y+3, pos.z+house_zs+1, 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( pos.x+dx+dy, pos.y+dy+house_ys, pos.z+dz+dy, block.REDSTONE_BLOCK)

# 明かり
mc.setBlock( pos.x+10, pos.y+1, pos.z+house_zs, block.SEA_LANTERN)

# 本棚
mc.setBlock( pos.x+10, pos.y+1, pos.z+house_zs-2, block.BOOKSHELF)
mc.setBlock( pos.x+10, pos.y+2, pos.z+house_zs-2, block.BOOKSHELF)

関連情報

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

2020年11月17日火曜日

CentOS8.2にJupyter Labをインストールする(pipenv版)

Jupyter Labでインタラクティブなコンピューティング環境を提供する事ができます。

〇Jupyter Labの画面

インストール手順

1.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. Jupyterのインストール
mkdir -p ~/jupyter

cd ~/jupyter

pipenv --python 3

pipenv install

pipenv install jupyterlab

pipenv install matplotlib

pipenv install pandas

mkdir -p ~/.jupyter

cat << EOF > ~/.jupyter/jupyter_notebook_config.py
c.JupyterApp.allow_remote_access = True
c.JupyterApp.ip = '0.0.0.0'
c.JupyterApp.open_browser = False
c.JupyterApp.port = 8080
c.JupyterApp.token = 'jupyter'
EOF

3. selinux設定
cat << EOF > ./my-jupyterlab.te
module my-jupyterlab 1.0;

require {
        type init_t;
        type unconfined_exec_t;
        type user_home_t;
        type ephemeral_port_t;
        class tcp_socket { name_connect };
        class dir { create write read setattr rename };
        class file { append execute execute_no_trans ioctl map open read setattr create write relabelfrom rename };
        class lnk_file { getattr read };

}

#============= init_t ==============
allow init_t unconfined_exec_t:file { create execute open read };
allow init_t ephemeral_port_t:tcp_socket { name_connect };
allow init_t user_home_t:dir { create write read setattr rename };
allow init_t user_home_t:file { append execute execute_no_trans ioctl open read setattr map create write relabelfrom rename };
allow init_t user_home_t:lnk_file { getattr read };
EOF

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

4. Jupyter Labをサービスとして登録
※ユーザやパスなどは適宜変更してください。
cat << EOF | sudo tee /etc/systemd/system/jupyter.service
[Unit]
Description=Jupyter
[Service]
Type=simple
ExecStart=/home/centos/jupyter/.venv/bin/jupyter-lab
User=centos
Group=centos
WorkingDirectory=/home/centos/jupyter
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable jupyter

sudo systemctl start jupyter

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

sudo firewall-cmd --reload

6. ブラウザで以下のアドレスにアクセスします。
http://<サーバ名またはIPアドレス>:8080/?token=jupyter

関連情報

・Jupyterに関する他の情報は<a href="https://serverarekore.blogspot.com/search/label/Jupyter">こちら</a>を参照してください。

Minetestに雷の効果が表示されるLightning mod for minetestをインストールする

MinetestにLightning mod for minetestをインストールすると雷の効果が時折表示されます。

インストール方法

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

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

unzip master.zip

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

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

関連情報

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

・Lightning mod for minetestのgithubリポジトリ
https://github.com/minetest-mods/lightning

2020年11月16日月曜日

Minetestに家具に関するキューブを追加するts_furnitureをインストールする

Minetestにts_furnitureをインストールするとテーブルや椅子など家具に関するキューブを追加する事ができます。

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

インストール方法

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

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

unzip master.zip

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

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

関連情報

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

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

2020年11月15日日曜日

Ubuntu20.04でPycraft mod for MinetestとPythonを使用して鳥居を作成する

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

〇Pycraft mod for MinetestとPythonで作成した鳥居

作成方法

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

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

# 鳥居の幅(上)
torii_width = 9
# 鳥居の高さ
torii_height = 7
# 柱の幅
gate_width = 4

# ローカルサーバに接続
mc = minecraft.Minecraft.create("127.0.0.1")
# プレイヤーの位置を取得
pos = mc.player.getPos()
# 位置を表示
print(pos)
# 鳥居の設置
for dy in range(torii_height):
  mc.setBlock( pos.x-gate_width/2, pos.y+dy, pos.z-1, block.REDSTONE_ORE)
  mc.setBlock( pos.x+gate_width/2, pos.y+dy, pos.z-1, block.REDSTONE_ORE)

for dx in range(torii_width):
  mc.setBlock( pos.x-4+dx, pos.y+torii_height, pos.z-1, block.REDSTONE_ORE)
      
for dx in range(torii_width-2):
  mc.setBlock( pos.x-3+dx, pos.y+torii_height-2, pos.z-1, block.REDSTONE_ORE)

関連情報

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

2020年11月14日土曜日

CentOS8.2に動画編集アプリのOpenShotをインストールする

OpenShotは動画編集アプリケーションです。

〇OpenShotの画面

〇インストール方法
以下のコマンドを実行します。
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.openshot.OpenShot

〇OpenShotの実行方法
以下のコマンドを実行します。
flatpak run org.openshot.OpenShot

関連情報

OpenShot Video Editorのまとめ

・OpenShot Video Editorのプロジェクトサイト
https://www.openshot.org/ja/

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

Ubuntu20.04でPycraft mod for MinetestとPythonを使用して市松模様の床を作成する

Pycraft mod for MinetestとPythonを使用して市松模様の床を作成するには、以下の手順を実行します。

〇Pycraft mod for MinetestとPythonで作成した市松模様の床

作成方法

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

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

# 床の幅
floor_xs = 100
# 床の奥行き
floor_zs = 100
# 床のブロック1
floor_block1 = block.CARPET_WHITE
# 床のブロック2
floor_block2 = block.CARPET_BLACK

# ローカルサーバに接続
mc = minecraft.Minecraft.create("127.0.0.1")
# プレイヤーの位置を取得
pos = mc.player.getPos()
# 位置を表示
print(pos)
# X軸の繰り返し
for dx in range(floor_xs):
    # Z軸の繰り返し
    for dz in range(floor_zs):
        # ブロックを配置
        if (dx+dz)%2 == 0:
            mc.setBlock( pos.x+dx-floor_xs/2, pos.y-1, pos.z+dz-floor_zs/2, floor_block1)
        else:
            mc.setBlock( pos.x+dx-floor_xs/2, pos.y-1, pos.z+dz-floor_zs/2, floor_block2)

関連情報

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