トップ 追記

Days of Speed

過ぎゆく日々を書こう。忘れっぽい未来の自分のために


2019-04-04

_ Dockerを使ってOSM Tasking Manager 3を利用する

みんなで一斉にOpenStreetMapの地図を書く時、それぞれの作業がぶつからないようコーディネートするためのツールに「Tasking Manager」というものがあります。

Tasking ManagerはWebシステムで、デプロイには結構面倒な作業が必要になりますが、dockerも用意されていて簡単に試すことができ…るはずだったのですが簡単に起動しなかったのでメモしておきます。 (全部、ぞあさんに教えていただいたので自分では何も解決していないのですが、忘れないように)

設定ファイルを作る

ここは、README.mdに書いてあることそのままです。

 $ git clone https://github.com/hotosm/tasking-manager.git
 $ cd tasking-manager/
 $ cp example.env tasking-manager.env

Tasking Managerの認証にOpenStreetMapアカウントを利用するので、https://www.openstreetmap.org/user/<Your_OSM_UserName>/oauth_clients/new にアクセスしてアプリケーション登録をします。

tasking-manager.envを編集して、取得したTM_CONSUMER_KEYとTM_CONSUMER_SECRETを書き込みます。

 # OpenStreetMap OAuth consumer key and secret (required)
 #
 TM_CONSUMER_KEY=foo
 TM_CONSUMER_SECRET=s0m3l0ngr4nd0mstr1ng-b3cr34tiv3&h4v3fun

dockerのTasking Managerを起動する

これでdocker-compose up -d で起動して、ブラウザから http://127.0.0.1:5000/ にアクセスするとTasking Managerが使える…と思っていましたが「Not Found」になります。ログを見てもファイルが無い状態。

 $ docker-compose logs app
 Attaching to taskingmanager_app_1
 app_1         | manage.py:34: UserWarning: Homepage counters not initialized.
 app_1         |   warnings.warn('Homepage counters not initialized.')
 app_1         |  * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
 app_1         | 172.18.0.1 - - [04/Apr/2019 05:22:00] "GET / HTTP/1.1" 404 -
 app_1         | 172.18.0.1 - - [04/Apr/2019 05:22:00] "GET /favicon.ico HTTP/1.1" 404 -

これは、ぞあさんによると「client/ で gulp build が実行されていないため server/web/static/dist にフロントエンドが存在せず Not Found になっているよう」とのこと。

taskingmanager_app_1に入って、npmのインストールとgulpの実行をします。

 $ docker exec -it taskingmanager_app_1 bash
 container:/usr/src/app# cd client && npm install && gulp build

これで改めて http://127.0.0.1:5000/ にアクセスすると画面が出ます。

続いてブラウザ画面右上の「ログイン」からログインをしますが、ここも罠があってログインできません。 ログを見るとSQLでコケてます。

ぞあさんによると「データベースの初期化がうまくできてない」ようなので、もう一度、taskingmanager_app_1に入って、データベースの初期化をします。

 $ docker exec -it taskingmanager_app_1 bash
 container:/usr/src/app# python manage.py db upgrade

これでログインもできて、tasking managerのユーザーとしては利用できるはず。 動くことが確認できたら、この状態をコミットしておきます。

   $ docker commit taskingmanager_app_1
これでもうまくいかない場合はデータベース・ボリュームを削除して作り直す

自分の場合、なぜかこれでログインできませんでした。この場合、データベース・ボリュームを削除して、もう一度作り直してからデータベースの初期化をするとうまく動きました。

 //Tasking Manager と PostgreSQL のコンテナを停止して待機状態のコンテナを削除します
 $ docker-compose down
 //PostgreSQL コンテナ用に保持されているデータを削除します
 $ docker volume rm tasking-manager_pgdata
 //Tasking Manager と PostgreSQL のコンテナを立ち上げます
 $ docker-compose up -d
 //Tasking Manager コンテナで bash を起動して標準入出力に接続します
 $ docker exec -it tasking-manager_app_1 bash
 //コンテナでデータベースの初期化を行います
 container# python manage.py db upgrade
 //exit で bash プロセスを抜けられます
 container# exit

Tasking Managerの管理者になる

これで使えるようになりましたが、ユーザーなのでプロジェクトの登録ができません。 README.mdを見るとTasking Managerのユーザーレベルは、データベースを書き換えて権限を付与をすると変更できるとのこと。

データベースの変更は、taskingmanager_postgresql_1に入って、README.mdに書いてある権限を付与するSQLを実行します。データベース名やユーザー名は、tasking-manager.envに書いてあるように指定します。

 $ docker exec -it taskingmanager_postgresql_1 bash
 container:/# psql -U tm -d tasking-manager -c "UPDATE users set role = 1 where username = '<your_osm_username>'"

これでログインをし直せばTasking Managerの管理者になっています。

まとめ

dockerって一発で動くはずと思っていたのに…。おひとりさまTasking Managerがあると、自分が書いてる場所の管理ができて便利なので使ってみてください。


2019-03-14

_ ASUS PRIME B450M-AのBIOS設定をしたらX起動したので貼っておく

はい。ということでBIOSの設定が問題だったようなので、設定のスクリーンショットを貼ります。 設定はXだけに限らないけど、とりあえずメモということで。

  • AI Overclock Tuner: D.O.C.P.
  • SVM Mode: Enable
  • SR-IOV Support: 有効
  • IOMMU: Enabled
  • 高速ブート: Disabled
  • OSタイプ: 非UEFIモード

BIOS設定1

BIOS設定2

BIOS設定3

BIOS設定4

BIOS設定5

BIOS設定6

Tags: pc linux debian

2019-03-13

_ Ryzen 5 2400GとASUS PRIME B450M-Aを買ったけどXが起動しない

長年使ってたAMD A10のデスクトップマシンですが、速度的にもかなりつらく、最近は電源を入れても起動しなかったり挙動も怪しくなったので、思い切ってCPUとマザーボードとメモリを買って入れ替えました。

一時期は高騰していたメモリも手の届く値段まで落ちたしSSDもそれなりの容量がお手頃なところまで下がったので、箱と電源以外入れ替えといった感じで、いい買い物しました。

が、しかし。Xが起動しない。

dmesgを見てみるとDRM(Direct Rendering Manager)がクラッシュしてる。Ryzen内蔵のamdgpuはKMS/DRMを無効にして表示はできないので、DRMがクラッシュするとXが起動しないということですね。

ちなみに、Ubuntu 18.04にhweのKernel 4.18をインストールすればXが起動します。

Kernel 4.19も4.20も5.0.1もビルドしたけど、Debianだと全滅でどうすりゃいいんだ…。

Tags: pc linux debian

2019-03-05

_ 照明狂騒曲

それは突然、家の中で作業をしていたら部屋の照明が切れた。

自分の部屋は和室で天井が竿縁天井になっているのでシーリングライトがつけられない天井です。なので蛍光灯用ペンダンライトの蛍光灯を丸型LEDに交換して使ってました。それが2016年9月の話。

それから何も問題なく使っていたけれど日曜日の夕方、PCに向かって文章を書いていたら突然切れて真っ暗に。 突然のことで「は!?」と思ったけれど、集中力も切れて時間も夜で壊れたLEDを買って交換もできないので、その日は何もせず次の日になんとかすることに。

月曜日。ドン・キホーテで同じ丸型LEDを買って交換をしたら…。点灯しない。

「マジか…」

この時点で少し脱力したけれど気を取り直して、問題切り分けのために隣の部屋の照明と交換してみると点灯した。 問題はペンダントライトらしいことがわかったので、交換した照明は4畳用で暗いけれど無いよりマシなので、この日はこれでなんとかしのぐ事に。

火曜日。蛍光灯のペンダントライトを探しに行くと無い。蛍光灯は売っていても蛍光灯を使うライトが売っていない。店に売ってなくても通販ならあるだろうとスマホで蛍光灯ライトを検索すると、これも置いていない。 そう、この2年半の間に家庭用の蛍光灯ライトは駆逐されてたのです。

「マジか…」

アテも外れ、どうしようもないので帰りながら考えたけれど、ここで取れる手は二つ。ペンダントライト型LEDを買う。もしくはシーリングライトを無理やり取り付ける。 シーリングライトは、以前、シーリングライトの取り付けを調べて、角型コネクタがあれば竿縁天井の段になっている部分にアダプタを噛まして竿縁に固定かつ平にすると取り付けられる事がわかっていたので一か八か試してみるか。どちらにするか、まとまらないまま火曜日は終了。

水曜日。また、電器店をぐるぐる周る。LEDのペンダントライトは需要が少ないのでシーリングライトと比べるとちょっと割高。種類も少なくデザインも選べないしリモコンも無いので、どうしようかと迷いながらドンキホーテに行くとアイリスオーヤマの「CL12D-5.0」という12畳までの薄型軽量タイプのシーリングライトが置いてあることに気がついた。

アイリスオーヤマ LED シーリングライト 調光 タイプ ~12畳 CL12D-5.0

アイリスオーヤマ(IRIS OHYAMA)
¥ 4,980

通常タイプだと重いので天井を補強する必要があるけど、これは軽量だし取り付けても格好が悪いだけで問題ないかも?と一か八かかけて買って帰ってみると、これが大当たり!

軽量で1kg前後なので取り付けても天井の負担も少なく、薄型なので天井も広く使えます。そして、声を大にして言いたいのが角型コネクタにはめ込むアダプタがついている! これをつけると平らになってシーリングライトをかっちり取り付けられます。これは嬉しい誤算!

丸型LEDは暗くはなかったけれど、これは12畳までタイプで光量もあって歳をとって暗いと目がしょぼしょぼする自分にとってはかなり嬉しい。

そんなワケで4日にわたる照明の戦いは、これで終了しましたとさ。疲れた。

Tags: life

2019-03-04

_ 3/2オープンデータデイに開催したOpenStreetMapマッピングパーティが加古川経済新聞に取り上げられました

Code for Harimaで主催したOSMマッピングパーティが加古川経済新聞に掲載されました。

実は記者さんも一緒に参加して地図を書いてたので、めちゃめちゃ詳しい記事になっています。 ご覧ください。


2019-01-08

_ Debian StretchにSteamをインストールしてSteam Play(Proton)でWindowsゲームを遊ぶ

一言で言うと「DebianでSteamを使いたければ公式パッケージを入れろ」です。

難しいことはありません。パッケージとSteamクライアントバイナリは別々に管理されているので新しいクライアントも~/.steam/にダウンロードされて更新されますし、Steamをインストールして設定を変更するだけでSteam Playは使えます。 ただし、まだ実験中で使えるゲームも限られます。(Steam Playで動くゲームを知りたければ、ProtonDBを参照)

ですが、設定の変更だけでお手軽に試せるので試してみてはいかがでしょうか。

Steamのインストール

こちらは書いている人が多いのでインストールに必要なコマンドだけ書いてます。ポイントはi386アーキテキクチャを有効でしょうか。すでにnon-freeセクションを有効にしている場合などは適宜、読み替えてください。

$ sudo sed -ei 's/main$/main contrib non-free/g' /etc/apt/sources.list # apt-lineのnon-freeセクションを有効にする
$ sudo dpkg --add-architecture i386 # i386アーキテキクチャを有効にする
$ sudo apt -y update
$ sudo apt -y install steam # Steamをインストールする

Steam Playを使用する設定

ここからがネタです。といっても、Steamの設定画面だけなので、すぐに終わります。

  • Steamを起動する
  • メニュー[Steam]→[設定]を開く
  • [アカウント]→[ベータへ参加]を有効にする

Steam設定

OKボタンを押して、クライアントの再起動をする。 ベータ版クライアントが~/.steamにダウンロードされてSteamクライアントが起動したら、設定からSteam Playを設定する。

  • メニュー[Steam]→[設定]を開く
  • [Steam Play]の設定にチェックを入れて全部有効にする
    • [Enable Steam Play for Supoorted tiles]
    • Advanced
      • [Enable Steam Play for All titles]
      • [Steamからゲーム固有のセレクションではなく、このツールを使用してください]
      • Compatibility toolのリストからprotonのバージョンを選ぶ

Steam設定2

OKボタンを押してSteamクライアントを再起動すれば、Windowsのゲームが使えるようになります。

まとめ

以上、Steam Playの設定方法でした。

Steam Playについてまとめていますが、実をいうとLinux上でWindowsのゲームを遊びたければオープンソースのゲーム管理ツール「Lutris」のWine Steamを使ったほうが動くゲームも多く、楽につかえます。 こちらは配布元の非公式パッケージしかありませんが、興味のある人はこちらも試してみると良いでしょう。


2019-01-05

_ Teclast F6 ProにAndroid x86をインストールしてDebianとデュアルブートにして使う

今、自分が使っているノートPCのTeclast F6 Proは、画面がタッチパネルで折りたたむとタブレット形態になります。 これにAndroid-x86 Projectをインストールしたら使えるのでは?と思って試したら、とても使い勝手がよかったので情報として書いておきます。

最初に「デュアルブートにする」といっても、Android x86はLinux上にインストールして使うものなのでWindowsの人はごめんなさい。ま、使いたい人はWindowsを消してDebianに入れ替えればいいと思うよ。

Android x86のrpmパッケージをダウンロード

Android x86のページからrpmパッケージ版のAndroid x86をダウンロードします。

利用するAndroidのバージョンは、最新の8.1-rc2(2019/1現在)は、たまに挙動がおかしなことがあるので安定して使いたい人はcm-x86 14.1-r2か7.1-r2を使うのがよいでしょう。

alienを使ってdebに変換してインストール

alienを使ってrpmパッケージをdebパッケージに変換します。パッケージの変換は、ユーザー権限のまま行いたいのでalienと一緒にfakerootパッケージもインストールしておきます。

   $ sudo apt install alien fakeroot

インストールしたらdebパッケージに変換します。

   $ fakeroot alien -dc android-x86-8.1-rc2.x86_64.rpm

リリースページに書いてあるコマンドですが、「-ci」というオプションは変換してそのままインストールをするという危険な方法なので真似しないほうがいいと思います。

しばらくするとdebパッケージができるので、dpkg -c でdebパッケージ内のファイルを確認しましょう。

   $ dpkg -c android-x86_8.1-1_amd64.deb
   drwxr-xr-x root/root         0 2019-01-05 11:23 ./
   drwxr-xr-x root/root         0 2019-01-05 11:22 ./android-8.1-rc2/
   -rw-r--r-- root/root   1358701 2018-10-18 17:34 ./android-8.1-rc2/initrd.img
   -rw-r--r-- root/root   7344992 2018-10-18 17:34 ./android-8.1-rc2/kernel
   -rw-r--r-- root/root   1425194 2018-10-18 17:34 ./android-8.1-rc2/ramdisk.img
   -rw-r--r-- root/root 878026752 2018-10-18 17:34 ./android-8.1-rc2/system.sfs
   drwxr-xr-x root/root         0 2019-01-05 11:23 ./usr/
   drwxr-xr-x root/root         0 2019-01-05 11:23 ./usr/bin/
   -rwxr-xr-x root/root      1868 2018-10-18 17:34 ./usr/bin/qemu-android
   drwxr-xr-x root/root         0 2019-01-05 11:23 ./usr/share/
   drwxr-xr-x root/root         0 2019-01-05 11:23 ./usr/share/doc/
   drwxr-xr-x root/root         0 2019-01-05 11:23 ./usr/share/doc/android-x86/
   -rw-r--r-- root/root       171 2019-01-05 11:23 ./usr/share/doc/android-x86/changelog.Debian.gz
   -rw-r--r-- root/root       942 2019-01-05 11:23 ./usr/share/doc/android-x86/copyright

/(ルート)直下に大きなイメージファイルを置くだけのようですね。qemu-androidというコマンドも気になりますが、とりあえずはインストールしてみましょう。

   $ sudo dpkg -i android-x86_8.1-1_amd64.deb
   以前に未選択のパッケージ android-x86 を選択しています。
   (データベースを読み込んでいます ... 現在 378014 個のファイルとディレクトリがインストールされています。)
   android-x86_8.1-1_amd64.deb を展開する準備をしています ...
   android-x86 (8.1-1) を展開しています...
   android-x86 (8.1-1) を設定しています ...
   Generating grub configuration file ...
   テーマを見つけました: /boot/grub/theme/Vimix/theme.txt
   Found background image: /usr/share/images/desktop-base/desktop-grub.png
   Linux イメージを見つけました: /boot/vmlinuz-4.19.13-sipodev
   Found initrd image: /boot/initrd.img-4.19.13-sipodev
   Linux イメージを見つけました: /boot/vmlinuz-4.19.0-1-amd64
   Found initrd image: /boot/initrd.img-4.19.0-1-amd64
   Linux イメージを見つけました: /boot/vmlinuz-4.18.6-sipodev
   Found initrd image: /boot/initrd.img-4.18.6-sipodev
   Adding boot menu entry for EFI firmware configuration
   完了

Grubも更新されました。今、インストールしているDebian環境はUEFIとGrubを使っていますが、問題なく更新されました。 インストール作業は、これで終わりです。

実機でAndroid x86を使う

実機で使う場合は、再起動するとGrubのメニューにAndroid x86が追加されているので選ぶだけです。

Teclast F6 Proではタッチパッドは使えませんが、タッチパネルとキーボードは使えるので実用上困らないと思います。折りたたんでタブレットにすれば普通のAndroidタブレットと同じですが、画面の回転が強制回転にしてもできないので使えるのは横画面のみになります。

Debian上からAndroid x86を使う

気になるqemu-androidというコマンドですが、これはqemuを使ってインストールイメージを起動するスクリプトです。qemuとkvmをインストールした環境で、このコマンドを実行するとLinux上でAndroidが使えます。便利ですね。

では、qemu-androidを実行してみましょう。desktopファイルは登録されていないのでターミナルから実行してください。

   $ qemu-android

   /android-8.1-rc2/data subfolder exists.
   If you want to save data to it, run /usr/bin/qemu-android as root:

   $ sudo /usr/bin/qemu-android

   Please Enter to continue or Ctrl-C to stop.

Enterキーを押すと、こんなエラーが出て止まります。(7のときはエラーが出ても起動してたのでタイミングの問題かもしれないけど)

   qemu-system-x86_64: Display 'sdl' is not available.

Debianのqemuは、表示にgtkを利用するためにsdlが無効になっています。しかし、qemu-androidではsdlが指定されているのでエラーになります。

オプションを変更すれば良いことがわかったのでスクリプトを修正します。 表示関係のqemuオプションを確認するとこうなっています。

   Display options:
   -display sdl[,frame=on|off][,alt_grab=on|off][,ctrl_grab=on|off]
               [,window_close=on|off][,gl=on|core|es|off]
   -display gtk[,grab_on_hover=on|off][,gl=on|off]|
   -display vnc=<display>[,<optargs>]
   -display curses
   -display none
   -display egl-headless[,rendernode=<file>]                select display type
   The default display is equivalent to
           "-display gtk"

sdlをgtkに置換するだけで良いみたいですね。ということでスクリプトの最後にある起動部分のオプションを置換した結果がこちらです。

   $ diff -u qemu-android.orig qemu-android
   --- qemu-android.orig	2019-01-05 12:03:38.314022031 +0900
   +++ qemu-android	2019-01-05 12:08:42.838152569 +0900
   @@ -65,7 +65,7 @@
    }

    # Try to run QEMU in several VGA modes
   -run_qemu -vga virtio -display sdl,gl=on $@ || \
   -run_qemu -vga qxl -display sdl $@ || \
   -run_qemu -vga std -display sdl $@ || \
   +run_qemu -vga virtio -display gtk,gl=on $@ || \
   +run_qemu -vga qxl -display gtk $@ || \
   +run_qemu -vga std -display gtk $@ || \
    run_qemu $@

これでqemu-androidを実行してもエラーも出ること無く起動するようになりました。

まとめ

これ、ずっと前から使ってて地味に活用してます。 あとは縦画面にできればPDFが読みやすくなるのだけど、誰か教えてください。


2001|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|06|08|12|
2011|01|02|03|06|07|08|09|10|11|12|
2012|01|02|03|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|12|
2014|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|10|11|12|
2017|01|02|11|12|
2018|01|02|03|04|07|09|10|11|12|
2019|01|03|04|

クリエイティブ・コモンズ・ライセンス Jun NOGATA を著作者とするこの 作品クリエイティブ・コモンズの 表示 - 継承 4.0 国際 ライセンスで提供されています。