プログラミングとゲーム関連を書いていく。

プログラミングの小言とゲーム関連の記事を書いていきます

PulseAudio関連でエラーが出た時の対処法やdefault.paを消した場合の対処法

今回はUbuntuのお話。Ubuntuって実は軽くてWindowsいらないくらいな使い勝手なんです。

 

[pulseaudio] module.c: Failed to load module "module-native-protocol-unix" (argument: ""): initialization failed.
[pulseaudio] backend-ofono.c: Failed to register as a handsfree audio agent with ofono: org.ofono.Error.InUse: The resource is currently in use

と出た時の対処法が結構複雑だったので自分用にまとめ。

 

対処法1

apt reinstall ofono

対処法2

「/etc/pulse/default.pa」に追記

load-module module-native-protocol-tcp

上記の箇所を

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1; auth-anonymous=1 

にして

#load-module module-native-protocol-unix

上記を

load-module module-native-protocol-unix auth-anonymous=1 socket=/tmp/pulse-socket

にする。

対処法3

 「/etc/environment」に追記

PULSE_SERVER = 127.0.0.1

にする。

当然ながら「auth-anonymous=1」でセキュリティーが低くなるのでファイアーウォールはオン。

 shairport-syncのために5000ポートの許可をしておく。

 

「/etc/pulse/default.pa」がそもそもない場合(消した場合)

対処法:

isoファイルを「https://www.ubuntulinux.jp/products/JA-Localized/download」から持ってくる。

isoファイルをアーカイブマウンターで開き「/casper/filesystem.squashfs」を開く

開いたら「etc/pulse/」と開き、「default.pa」を開き内容をコピー。

母艦(PC本体)の「/etc/pulse/」を開き「default.pa」にさっきコピーした内容をコピー。

pulseaudio -k && pulseaudio -D

を実行する。

「default.pa」が読み取り専用でコピーできない場合

cd /etc/pulse && ls -l

をしてみる。

default.pa -> /etc/pulse/default.pa.BeforeVMwareToolsInstall

と書かれていた場合はVMWareから引っ張ってきたまたはVMWareで動かしているOSなので、
「/etc/pulse/」直下に「default.pa.BeforeVMwareToolsInstall」を作成。

echo>/etc/pulse/default.pa.BeforeVMwareToolsInstall

先程コピーした内容を「default.pa.BeforeVMwareToolsInstall」にコピーして

pulseaudio -k && pulseaudio -D

 する。

 

 

エラー対処時に参考にした記事

 

Arc Menu用日本語訳ファイルを作ってみました。

今回は翻訳に3時間かけたArc Menuの翻訳ファイルについてのお話。

 

github.com

 

今回は海外でそこそこ人気があるUbuntuなどのLinux用のメニューで、Windowsメニューに近いArc Menuの日本語化に挑戦してみました。

 ※以下の使い方はUbuntu 20.04での方法です。

使い方

Arc menuをgit cloneするところから始まります。

git clone https://gitlab.com/arcmenu/ArcMenu.git

 としてgit cloneをします。

ここで疑問に思うでしょうが、なぜ本家の「arcmenu-team」の方にしないのか、ですがこちらは開発者がArc Menuの開発から手を引くようで本家は開発が停止されたので、開発を引き継ぎした「AndrewZaech」様の方の「Arc Menu」を選ぶことにしました。

次に私の翻訳ファイルもgit cloneします。

git clone https://github.com/CrossDarkrix/Arc-Menu-Japanes-Translate-File.git

 として、「ja.po」をgit cloneした「ArcMenu/po」へコピペします。

次にTerminalにて

cd ArcMenu
make install

として、インストールします。

 次に「alt + F2」を押して「r」と入力します。

 

 

ToramOnlineのツール集

どうもです。今回はトーラムオンラインのステータス系ツールを色々な所で出回っている資料を参考に作ってみたのでご紹介。

github.com

 

※以下のツールはPythonというプログラミング言語で書かれています。なのでPCならPythonをインストールして、スマホならアプリを入れてお使いください。(筆者のおすすめはモバイルCというアプリやPythonista3というアプリです)

モバイル C [ C/C++ コンパイラ ]

モバイル C [ C/C++ コンパイラ ]

  • Jeong Seop Lee
  • 教育
  • 無料

apps.apple.com

Pythonista 3

Pythonista 3

  • omz:software
  • 仕事効率化
  • ¥1,220

apps.apple.com

 

とりあえず使い方の説明

 

異常耐性計算ツールの使い方

f:id:NoName-toPy7:20210411235505j:image

Pythonをインストール後、「コマンドプロンプト」か「端末(Termianl)」で

python3 Abnormal_Tolerance_Calculator.py

とするか

Pythonが扱えるアプリで「Abnormal_Tolerance_Calculator.py」を実行します。

  1. 「MEN: 」でステータスのMENの値を入力して下さい。(上記画像では255と入力)
  2. 「MEN装備(%) part〇〇」で装備(オシャレを含む)の異常耐性〇〇%という部分の数値を入力(最大8個まで)

異常耐性率が自動的に計算されて出力されます。(上記画像では「102%」と出力されています)

 

クリティカル率計算ツールの使い方

f:id:NoName-toPy7:20210411235518j:image

Pythonをインストール後、「コマンドプロンプト」か「端末(Termianl)」で

python3 Critical_Calculator.py

とするか

Pythonが扱えるアプリで「Critical_Calculator.py」を実行します。

  1.  ご使用端末の種類(iPhone(1)かAndroid(2))を入力してください。(上記画像ではiPhoneなので「1」と入力)
  2. ステータスのCRT値を入力。(振っていない場合は空白でok。上記画像では「255」としています)
  3. クリティカルUpのスキルLvを入力(振っていない場合は空白でok。上記画像では「10」としています)
  4. 装備やクリスタについているクリティカル率の合計値を入力します。(上記画像では「25」と入力)
  5. 装備やクリスタについているクリティカル率(%)の合計値を入力します。(上記画像では「25」と入力)

クリティカル率が計算されて出力されます。(上記画像では「155%」と出力されています)

 

クリティカルダメージ計算ツールの使い方

f:id:NoName-toPy7:20210411235556j:image

Pythonをインストール後、「コマンドプロンプト」か「端末(Termianl)」で

python3 Critical_Damage_Calculator.py

とするか

Pythonが扱えるアプリで「Critical_Damage_Calculator.py」を実行します。

  1. ステータスのSTR値を入力します(上記画像では「356」と入力)
  2. 装備やクリスタについているクリティカルダメージの合計値を入力します。(上記画像では「40」と入力)
  3. 装備やクリスタについているクリティカルダメージ(%)の合計値を入力します。(上記画像では「10」と入力

クリティカルダメージの合計値が計算されて出力されます。(上記画像では「283」と出力されています)

 

以上となります。

使う人がいるかはともかく自分用に作りました(笑)

トーラムオンラインは良いゲームなのでこれからも発展していくといいなぁと個人的に思っています。

まだプレイしていないという人は以下のリンクからAppleStoreに飛べますのでぜひ遊んでみてくださいね。

トーラムオンライン

トーラムオンライン

  • ASOBIMO,Inc.
  • ゲーム
  • 無料

apps.apple.com

Minecraft BE(PE)用のアドオンManifest作成ツールを作ってみた。(Pythonista3)

今回は過去に作成したコードとそれをGUIにしたお話。

github.co

スマホ版マイクラをしてたら作りたくなる自作アドオン。

しかし、「アドオンのmanifest.jsonを書くのは心が折れる。」そんな方向けに作ったのが始まりでした。

以下はスクショ

f:id:NoName-toPy7:20210411200322j:image

f:id:NoName-toPy7:20210411200358j:image

 しかし、これじゃない感が漂っていましたし、コンソール画面は苦手という方もいるかなぁと思っていました。

 (上記のスクリプトpythonがあれば動きます。下記はPythonista3専用です。)

そこでGUI版を作ってみました。

github.com

f:id:NoName-toPy7:20210411200723j:image

GUIが英語統一なのはグローバルにしてみようかなと思ったからです(笑)

GUIの説明をしていきます。

  • ResourcePack: リソースパック
  • ResourcePack(Data): リソースパックのデータパック版
  • BehavaPack: ベイヘビアーパックいわゆるデータパック
  • SkinPack: スキンパック
  • PackName: パックの名前
  • Description: パックの説明
  • Pack Version: パックのバージョン
  • min engines: データパックを動かしたいマイクラのバージョン

となっており、

「Create」を押すと作成したmanifest.jsonがその下にプレビューとして出てきます。

肝心のmanifest.json自体はスクリプトが置いてあるディレクトリにmanifest.jsonとして作成されているはずです。

後はpack_icon.pngとアドオンの内容を作ればアドオンの完成となります。

 

インストール方法

  1. StaShでgit cloneする
  2. pyファイルを実行

 

Minecraft

Minecraft

  • Mojang
  • ゲーム
  • ¥860

apps.apple.com

Pythonista3でPermissionアプリを作ってみた。

昨日に続きまたまた自作コード紹介です。

やる気がある時に更新するので一気に更新する時もあります。

github.com

さて、Linuxを触っていましたらどうしても必要になってくるパーミッション管理。

iOSアプリはあるのですが、どうにも怪しい雰囲気が漂っているものばかり...。

「なら作ってしまえばいいじゃない」となり作ったのがPyPermissions。

f:id:NoName-toPy7:20210411192043j:image

 UIは上記の画像通りです。

  • Rは読み込み。
  • Wは書き込み。
  • Xは実行。

となっていて、英字と数字出力に対応しています。

 と言っても3時間くらいで書き上げたコードです。

バグはできるだけ取り除いていますがやっつけ感が拭えないコードとなっています(笑)

 

インストール方法

  1. StaShでgit cloneする
  2. pyファイルを実行

以上です

 

元々は無料で使っていたアプリがあったんですけど、ストアを探しても見つからなくなってしまったので「ないなら自分で作ればいいじゃない。」になったんですよね。

(しかし...Pythonista3さんよ...UI自体の文字色変えたら重くなってクラッシュするのをどうにかしておくれ...。)

 

Pythonista 3

Pythonista 3

  • omz:software
  • 仕事効率化
  • ¥1,220

apps.apple.com

 

Pythonista3でpip list --outdatedしてみる。

お久しぶりです。1年以上ブログを放置していましたが今回はPythonista3で「pip list --outdated」をするお話です。

github.comGitHubに私が公開した上記のツールを利用します。

まず、「pip-configration-tool.py」を

Githubからコピーして実行します。

または下記のコードをコンソールへコピペして実行します。

 

import requests as r; exec(r.get('https://raw.githubusercontent.com/CrossDarkrix/Pythonista3_pip_Configration_Tool/main/pip-configration-tool.py').content)

スクリプトのやっていることはとても単純で、後からインストールするpipに「モジュールのインストール場所はここですよー」と教える設定ファイルを環境変数「$HOME」内の「.config/pip」に作成しているだけです。

ただし、やっていることは簡単でもここの質問を見つけるまで結構な時間を要しました。

stackoverflow.com

上記のstackoverflowには

[global]
target={Install path}

を$HOME/.config/pip/pip.configに記載すればいいと書いてあります。

本ツールはこの手間をなくすべく作成したツールです。

 

話が逸れましたが、「pip-configration-tool.py」を実行してから下記をコンソールにコピペして実行します

import requests as r; exec(r.get('https://bootstrap.pypa.io/get-pip.py').content) 

これは一般的に使われているpip、つまりStaSHでインストールされるものとは異なるpipをインストールするコードとなります。

実行しましたらPythonista3を再起動して下さい。

 

次に私が適当に作ったpipTerminalなるものを起動します。

https://github.com/CrossDarkrix/Pythonista3_pip_Configration_Tool/blob/main/pipTerminal.py

からコードをコピーしてきます。

実行すると「Pythonista3: ~# pip 」と出てきます。ここで「list」と入力するとモジュールが表示されます。

エラーが出た場合はgithubにも書きましたが、

Python Modules -> site-packages -> pipと開き、__init__.py内の__version__ = ""内のバージョンをpipTerminal.py内の「pip==○○○」の「〇〇〇」へとコピペしてみてください。

次に「list --outdated」と入力してみると何も表示されませんが、これはまだアップデートするパッケージがないためです。

アップデートするパッケージがあると一覧として表示されます。

 

実はこのpipTerminalはsys.argvへ無理矢理引数を渡しているだけです(笑)

pipTerminalのコードを見てみると

sys.argv[1:] = input('Pythonista3: ~# pip ').split(' ')

と書いてある通り「sys.argv[1:]」に「input」で渡された入力を「スペース」で区切ってリストにしてから「sys.argv[1:]」へ渡しています。

「sys.argv」はリスト形式で引数を扱っているのでこうするとinputでもコマンドを実行できるようです。

 

Pythonista 3

Pythonista 3

  • omz:software
  • 仕事効率化
  • ¥1,220

apps.apple.com

 

LibTermというiOSアプリを使ってみる

AppleStoreにはたまに香ばしいアプリが置いてあることがあります。

大半は例のごとくAppleにリジェクトを食らい消滅します。

私はいつものように珍しいアプリ等を探していたところ…

「LibTerm」なる何やら香ばしいアプリを見つけたのでご紹介( 。・ω・)ノ

LibTerm

LibTerm

  • Marcela Cid
  • ユーティリティ
  • 無料

 

LibTermとは…

LibTermは、Python 3.7およびLua 5.3を搭載したiOS用の端末です。


このアプリはOpenTermのようなものですが、この端末はあなた自身のアプリに埋め込むことができ、LuaPython 2.7をサポートします。” (GitHubの説明文をGoogle翻訳したやつ)

とまあ…OpenTermというsandbox内で動くターミナルをベースに作り、一からコードを書き直した端末系アプリのようです( 'ω')

で、実際使ってみたのですが…まあ…不具合が多いというのが第一印象。(出たばかりなのと無料アプリだからというものもありそう…。無料アプリに期待するのは間違いというのはいつものお約束ですけどねー。)後「これちょっとどうなの?()」って不具合を見つけたのでこれもご紹介。ちなみに、この手のアプリは注意すべき点として「変な通信をしてないか」を疑うべきなのですが見た感じ変な通信はしてない模様…( 'ω')

まあ…怪しさマックスですが、何はともあれ使ってみました( 'ω')

f:id:NoName-toPy7:20190301115040j:image

開いた直後はこんな感じになってます。

なお、OpenTermの様にフォントカラーを変えることはできないようになっています。

(※開発者さんに英語で直接頼めば実装してくれそうではありそう…)

早速使って行くわけですが

アプリの説明文には

コマンドを追加するには package installからインストールして下さい"

との事ですが、実はGithub上にこっそりと”自作のコマンドを追加するには設置してあるリポジトリにコミット申請してね”と書いてあるわけで…つまり、Githubアカウントを取得後にコミット申請しないと自作コマンドを”package install”でインストールするのは無理なご様子…

 

しかし、私はこの手のアプリはかなり触って来たのでとりあえず自力で無理矢理に解決してみました( 'ω')ノ

(※以下で解説するやり方は開発者の意図に反している可能性が非常に高い為今後修正される可能性が大いにあります。ご了承下さい)

 

まず、ターミナルから

python -m pip install pproxy” 等のコマンドが追加されるPythonモジュールをインストールします。

次に以下のコマンドで”package install” でインストールされるフォルダーの一個上に行きます。

“cd ../Library/“ 

“ls”コマンドで一覧を取得するとわかるのですが

「Caches」,「scripts」,「Preferences」,「stash_extensions」の4つがあると思います。

とりあえず”rm -rf scripts“ とし「scripts」の項目を削除。(※「rm -rf」とは…rmコマンドは通常フォルダーは削除できません。しかし「-rf」オプションを付けると空フォルダーじゃなくてもフォルダーだったとしても削除してくれるようになります。なお、使い方次第ではハードディスクを空っぽにできたりするので管理者権限での扱いには結構注意が必要だったり…)

次に”ln -s stash_extensions/bin/ scripts“ とし「stash_extensions」の下にある「bin」フォルダーのシンボリックリンクを削除したscriptsフォルダーの名前と同じ名前で作成します。

これで以降はpython -m pip install ○○” でインストールしたコマンド達が使えるはずです。

ただし、pproxyコマンドを使うには一工夫が必要なのでこれも説明…

とりあえずcd scripts” とコマンドを打ちscriptsに移動します。

次に”mv pproxy.py Pproxy.py” とし「pproxy.py」の名前を「Pproxy.py」にします。

何故こういう面倒なことをしないといけないのかというと、Pythonista3も同じ挙動で悩みましたがどうやら

import pproxy

等とした時、インポートする先をsite-packages3からのインポートじゃなく同一の名前のスクリプトがフォルダーにある場合それを先に読み込む不具合があるようで「pproxy.py」のままだと実行する「pproxy.py」のスクリプト自体をインポートしちゃうのでループとなりエラーが起こる様です。

これはもう、Pythonista3と同じStaShを使ってpipを動かしているのでStaSh側がなんとかしない限り治らない謂わばこの手のアプリの宿命とも言えます。

ちなみに、確認した限りでは「wsgidav」も同一の影響を受けるので、仮にwsgidavを使用したいならwsgidav.py → Wsgidav.pyとcheroot.py → Cheroot.pyの様にする必要性があります。

次に一々python -m pip” と打つのが面倒な人の為にPproxy.pyがあるフォルダーへpip.pyをコピーしちゃいましょう。

まず”env”とコマンドを入力。

ずらっと環境変数が一覧に出てきますが、

その中にある「PYTHONHOME=」の項目内にある値をコピーします(※「/var/containers/Bundle/Application/“ランダムな文字列”/LibTerm.app」と書いてあるやつです。)

次にcp -a /var/containers/Bundle/Application/“ランダムな文字列”/LibTerm.app/site-packages/pip.py ./ “

とコマンドを打ちます。するとpip.pyがコピーされ、以後「python -m pip」とせずに「pip install」が使える様になります。

そして、envコマンドを実行した時にわかると思いますが、このアプリはどうやらLibTerm.app直下に配置された「python37.zip」というzipファイルからPythonを実行しているっぽいのです。ただ、問題点はこのzipの所為で純正の「pip」が使えない点です。

LibTerm.appはアプリフォルダーなので当然、読み込みのみしかできません。したがって、純正の「pip」がpythonフォルダー直下に書き込めずにエラーを吐いてしまうのです。

ちなみに、対策を模索してみましたがこればっかりはダメでした( 'ω')

LibTerm.app以外の読み込み可能フォルダー(Libraryフォルダー等)にpython37.zipを投げ込み展開後「setenv」コマンドで無理矢理Python環境変数を書き変えれないか試しましたがアプリの再起動後、強制的に元に戻されるので無理な様子( 'ω')。

純正の「pip」使えたらなぁ感が否めませんがこれもPythonista3と同様の宿命かなぁと思います。

 

変わって“pip install” 時に「pkg_resources.zip」をどこかに配置しようとしてエラーが毎回出る場合の対処です。

ひとまず「tmp」フォルダーの位置を確認しに行きます

ターミナルから”env” とコマンドを実行。

1番上にある「TMPDIR=」の項目にある値をコピー。

次にターミナルから

“package install unzip”(エラーが出た場合リトライして下さい)

を実行し、新規タブを開き

”mkdir tmples;cd tmples“

と実行し、作業フォルダーに移動後

先程コピーしたTMPDIRの値をこのように貼り付け

“cp -a /private/var/mobile/Containers/Data/Application/ランダムな文字列/tmp/pkg_resources.zip ./ “ を実行します。

次に“unzip pkg_resource.zip“ と実行し「pkg_resources.zip」を展開します。

次に”mv pkg_resources pkg;cd pkg/pkg_resources-master/pkg_resources;pwdと実行し出てきた値をコピー。

更に新規タブを開き”cd site-packages3”とコマンドを実行しsite-packages3に移動。

次に"cp -a 先ほどコピーした値 ./“と実行し「site-packages3」フォルダーに「pkg_resources」フォルダーを配置すると以後インストール時のエラーは出なくなります。

しかし「/Users/adrianlabbe/Desktop....」の警告が出るようになりますが恐らく開発者さん側の環境でエラーを確認しないまま出しているものだと思いますのでこれも不具合だと思われます。

無視で構わないのですが、気になるなら開発者さんに連絡を入れてみるのもありではあります( 'ω')

 

最後に…このアプリは以前は課金制でしたが、不具合で無料になっていたのが修正を断念したのか無料で配布される様になって今に至っている様です。

(今後、開発者さんの気まぐれで課金が復活しないとも限らないので遊ぶなら今のうちかもしれない…)

また、不具合なのかフォルダーアイコンをタップして開いてicloud driveからファイルを読み込んでも何も起こらないあたりまだまだ発展途上なアプリなのが伺えます。

また現時点でその他強制終了もたまに発生しますが無料アプリですのでそこらへんはもう割り切りましょう。

ちなみに、pythonista3をお持ちの方がこのアプリが必要かと問われたらPythonista3で動かないモジュールも動いたりしなくもないので遊ぶには丁度良いかもしれません。

そして、開発者さんのモチベ上げにも開発者さんが出してる有料アプリも買って上げて下さいね( ˘ω˘)

(Pythonista3とどことなくUIが似てるのがちょっと気になるけど…)