tag:blogger.com,1999:blog-3418175478678338342024-03-13T09:42:29.730+09:00IT風雲児のブログIT界の風雲児の破天荒なブログです。よかれとおもってやってます。Hiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.comBlogger162125tag:blogger.com,1999:blog-341817547867833834.post-40845568903409053082023-04-02T06:42:00.005+09:002023-04-02T06:57:54.997+09:00NVidia Container Toolkitでgpu-enabledなdocker imageで作業したときの作業メモGPUを利用する機械学習系の環境を構築する際に 、CUDAとフレームワーク等のバージョンの整合性で困ることがある。必ずしも最新版にしておけばいいというわけではないことが結構ある(気がする)dockerコンテナ内でgpuが利用できるようになるNvidia Container TookitをNvidiaが提供してくれているので、これを利用すると任意のCUDAバージョンの環境が構築できるようになりますという作業メモ。1.Nvidia Container ToolkitをインストールホストOS側に、Nvidia Linux DriverとNvidia Container Toolkitをインストールして、docker runtimeにnvidiaランタイムを認識してもらうまで下記のマニュアルに沿って設定。ホスト側にはNvidia Linux DriverおよびNVidia Container Hiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-20058872555470070192023-03-25T11:58:00.002+09:002023-03-25T11:58:18.915+09:00Stable Diffusion WebUIをubuntu, pyenv virtualenvの環境でインストールした Stable Diffusion WebUIをUbuntuとpyenv-virtualenvの環境でインストールした。公式のマニュアルどおりではうまく行かなかったので、正しいのかはわかってないけどとりあえず動いたので差分のメモをしておきます。試したのは2023/3/25。Ubuntuの環境は以下の通り$ cat /etc/os-releaseNAME="Ubuntu"VERSION="20.04.3 LTS (Focal Fossa)"1. まずpyenv virutualenvで専用の環境を作る。現時点で要求のpythonのバージョンが3.10.6とのことだったので従う$ pyenv virtualenv 3.10.6 stable-diffusion-webuiみたいにして、3.10.6をベースにしたvirtualenv環境を作っておく。 2. "Hiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-7041694642232716912020-06-19T12:18:00.000+09:002020-06-19T12:18:01.809+09:00Windowsでvim環境を構築するための道のり:終章昨日Windowsでhowmをもう一回使いたくてvimでやってみるかと思ったんだけど、今日調べていたらVSCodeで類似の拡張があることがわかった。もともとhowmはちょっと機能多すぎてメモとTODOぐらいできればいいんだけどな、、という感じだったのでむしろちょうど良いぐらいかもしれない。vscode-memo-life-for-youhttps://qiita.com/satokaz/items/33b5c5ae4f19a87c5187Hiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-29633230379932727652020-06-17T12:58:00.004+09:002020-06-17T13:09:32.572+09:00Windowsでvim環境を設定するための道のり:設定はどこに書けばいいのか昔Emacsでhowmというツールを使っていたのを思い出したんだけど、もうEmacsとか使うの気が重いな、、と思っていたところvimにQFixHowmというプラグインがあるらしいので、そちらでセットアップしてみることにしました。いったんWindows Subsystem for Linuxのコンソール上のvimでセットアップしてみたんだけど、日本語切り替えとモード切替がめんどくさすぎて無理っぽかったので、gvimで再トライです。gvimはまともに使ったことが無いので、設定ファイルはどこに置けばいいのだ、、?からスタートです。閑居う変数としては、$VIMと$HOMEが存在する。確認するときは:echo $VIMまたは:echo $HOMEで表示されるwindows上では、.vimrcでなく_vimrcと_gvimrcとして作成する(これは単にWindows上のファイル名規則の制限かな)Hiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-62044990879516605222019-03-31T00:16:00.001+09:002019-03-31T00:16:33.813+09:00ファイルが含まれているrpmパッケージの情報を表示する$ rpm -qf {ファイルパス}|awk -F'-[0-9]' '{print $1}'|xargs yum infoHiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-18167598139080154712018-11-18T06:45:00.001+09:002018-11-18T06:45:38.745+09:00pylintがcv2のメンバを見つけてくれない・VSCode 1.29.1
・pipenv 2018.7.1
・opencv-python 3.4.3.18
・pylint 2.1.1
上記の環境でpylintをかけるとcv2のメンバがいないと怒られる。
(実際はVSCode自体は関係ない。pylintコマンド直接でも同様。)
https://stackoverflow.com/questions/50612169/pylint-not-recognizing-cv2-members
上記に従って、pylintに --extension-pkg-whitelist=cv2 というオプションを渡して上げれば良い。VSCode上だとpython.linting.pylintArgsというオプションで渡す。
cv2のメンバはCのモジュールで定義されているから(?)の模様である。Hiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-46314923690284820922018-10-06T07:37:00.001+09:002018-10-06T07:37:55.894+09:00pipenv2018.7.1とpip18.1の組み合わせはエラーになる不具合に遭遇したのでメモ。
現象
$ pipenv install {some_package}
すると、エラー終了する。
Pipfileやパッケージのインストール自体は完了している
lockfileの作成あたりでコケている模様?
原因
エラーメッセージでググると同様の事象を見つけた。
https://github.com/pypa/pipenv/issues/2871
pipenv2018.7.1とpip18.1の組み合わせがエラーを起こしている模様。
解決方法
workaroundとしてはpipを18.0にする。
ポイントとしては、pipenvの環境のほうのpipを18.0にする。
$ pipenv run pip install pip==18.0
Hiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-40219468756215569812018-09-23T01:43:00.002+09:002018-09-23T02:04:22.863+09:00Pythonの環境構築にpipenvを使うpipenvというPythonの仮想環境構築ツールを使い始めました。詳細は公式を見れば良いとして分かりづらかったところのメモ書き。
Pipenv: 人間のためのPython開発ワークフロー
書いている時点のバージョンは以下
$ pipenv --versionpipenv, version 2018.7.1
インストール
繰り返しだが詳細は上記の公式サイトのドキュメントを読めば良い。macOSの場合Homebrewとpipを使う方法があるようですが、私はPythonのバージョン管理にpyenvも使っていてHomebrewの方で入れるとバージョンが変になりそうな気がしたのでpipの方でインストールしました(Homebrewで試してはいない)。
$ pip install pipenv
すると、下記のようにpyenv配下にpipenvがインストールされてる模様。
$ which Hiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-5082427591028142972017-10-09T02:53:00.003+09:002018-09-23T00:42:53.732+09:00Classic MacOSの文字化けしたファイル名を修正するとある事情から、Classic MacOS上で作成したファイルを開く必要があり、フロッピーからバックアップを取っていた.imgファイルからファイルを復旧しました(.imgはディスクユーティリティで.dmg形式に変換する必要もあった)
ところがディスクイメージ形式の変換も終わりいざディスクイメージをマウントしてみると、日本語のファイル名が全て文字化けしている状態でした。
そもそもフロッピーからイメージ化したのもClassic OS上だし仕方ないことなのですが、いかんせんファイル名が見えないことには
何もわからないので、変換する方法を調べてみたところ、Apple自身がファイル名の修正ユーティリティを提供していました。
File Name Encoding Repair Utility v1.0
https://support.apple.com/kb/DL355?locale=ja_JPHiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-63176444229905620122017-08-26T06:29:00.000+09:002017-08-26T06:30:53.310+09:00Raspbian上で仮想キーボードをインストールするRaspberry pi 3を7インチ タッチスクリーンディスプレイで利用しているのですが、ちょっとしたキー操作の時にもUSBキーボードを繋がないといけなくて面倒だなと思っていました。本格的にタイプするときにはVNC経由でmacから操作するからいいとして、とりあえずちょっと操作したいときにタッチスクリーンだけで完結したいなと思って調べました。
Raspbirn上で仮想キーボードを表示して、タッチスクリーン上から文字入力を行うには、matchbox-keyboardというパッケージを導入すれば良いようです。
通常どおり
$ sudo aptitude install matchbox-keyboard
としてインストールするだけです。
どうでもいいけどネット上のblogみるとみんなapt-get使ってるけどなんでなんでしょう、aptitudeのほうが使いやすそうなんですが、Hiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-62563846430606930282017-08-21T00:38:00.002+09:002018-09-23T02:09:23.534+09:00Technology RadarをCSVに対応させたThoughtWorksというところがTechnology Radarというレポートを半年に一回ぐらい発表しているのですが、それの可視化に使われているツールをオープンソースで提供しています。これを使えば私家版のTechnology Radarが作成できる、というわけです。
https://github.com/thoughtworks/build-your-own-radar
面白そうだと思ったのですが、難点があると思っていて、Google Docsにしか対応していないようでした。これが、github上でCSVとかに対応できていれば、みんなでcommitしたりして使えるので良いのではないかな、と思いました。
で、作ってみた。
https://github.com/hkurosawa/build-your-own-radar/tree/csvsupport
本家にpull Hiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-23738869343893045092017-08-21T00:33:00.006+09:002017-08-21T00:33:57.548+09:00RasPi 3 でWiringPiでエラーがでたのでpigpioを使ったRaspberry pi 3でサーボの制御をやってみようと思ってSG90というサーボモーターを購入しました。電子工作の分野では最も手軽なモーターでネットで調べても情報が多そうだったので。これをうまく動作させるために少しハマったので、その記録です。結論としてはwiringPiは使わず、pigpioというライブラリを使うことにしました。
環境は以下。
pi@raspberrypi ~/src/wiringpi % cat /etc/issue
Raspbian GNU/Linux 8 \n \l
pi@raspberrypi ~/src/wiringpi % uname -a
Linux raspberrypi 4.9.35-v7+ #1014 SMP Fri Jun 30 14:47:43 BST 2017 armv7l GNU/Linux
RPi.GPIOでのPWM出力サンプルHiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-25176364818092496072017-07-08T00:53:00.000+09:002017-07-08T00:57:47.163+09:00ANKERのPowerCore 10000とSeriaのUSB-CケーブルでPowerBook Proに充電できるか試したSeriaでUSB-A/USB-Cケーブルが売られていたので、モバイルバッテリーのPowerCore 10000でPowerBook Proが充電できるのかを試してみました。
PowerBook Proは13インチの2016年タッチバーなしモデル、
モバイルバッテリーはANKER社のPowerCore 10000です。以下。
結論。ぎりぎり充電できました。
USBケーブルはSeriaで108円で売られていた以下のケーブル。念のため3.0A対応と明記されているものを選びました。
注意しないといけない点は、アプリケーションを利用していない状態なら充電状態になったが、ただしFireFoxとかが「エネルギーを激しく消費中」と表示されているようなケースでは、いわゆる「給電モード」になるようで、ようするに利用しながら充電という、いわゆる電源アダプターとHiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-48149112789166676262017-05-08T02:06:00.002+09:002017-05-08T02:10:49.394+09:00 VSCodeでThree.jsの開発環境を整える(3) Visual Studio Codeで、Three.jsの開発環境を構築しています。このポストでは、VSCodeのデバッガ機能を利用してブレークポイントを打ったりすることができることまでが目標です。ブラウザ環境としてはChromeかFirefoxが現実的な選択肢だと思うけど、今回はまずFirefoxでデバッグすることを考えます。
Debugger for Firefox をVSCodeにインストールする
まずはVSCodeにFirefoxのデバッガ拡張をインストールします。これは単純に以下のプラグインをインストールすればOK。
https://marketplace.visualstudio.com/items?itemName=hbenl.vscode-firefox-debug
この拡張をインストールすると、デバッガのlaunch.jsonファイルの編集時、Add Hiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-11311389040239128182017-05-07T01:08:00.006+09:002017-05-07T09:42:19.455+09:00 VSCodeでThree.jsの開発環境を整える(2) 前のポストでVisual Studio Code上でコード補完付きでコーディングが可能な状態になったので、これをブラウザ上で実行可能な状態にコンパイルすることを考えます。
VSCodeでのコード補完を利用するためにthree.jsをnpmからインストールしたのでそのままでは実行できず、同じくnpmで提供されているツールであるwebpackというコマンドを利用します。
webpackコマンドをインストールする
プロジェクトのルートディレクトリから、webpackをnpmコマンドでインストールします。ブログとかには-gオプションをつけてグローバルにインストールする記述が多いが、グローバル空間はあまり汚したくないのでプロジェクト内に閉じることにします。
$ npm install webpack --save-dev
--save-devオプションをつけることで、webpackHiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-73138505711197606032017-05-06T09:13:00.001+09:002017-05-06T09:33:00.414+09:00VSCodeでThree.jsの開発環境を整える(1)しばらく利用していなかったVisual Studio Codeをバージョンアップしてみたらすごく速く使いやすくなっていたので、すこし本格的に環境を構築して使ってみることにしました。VSCodeおよびnodeなどもこれまでごく基本的な利用しかしていないので、それらの知識のアップデートも兼ねます。
とりあえず、JavaScript(Three.js)の開発環境を構築することを目的にします。
VSCodeのIntelliSenseを利用したコード補完ができること
ChromeまたはFireFoxでブレークポイントを利用したデバッグが可能なこと
デバッグはdockerのコンテナ環境で構築すること
上記3点ができるようになることを目的として、
まずは任意の.jsプロジェクトでthree.jsのコード補完が可能になることを目指します。
新規プロジェクトフォルダを作成する
任意のフォルダHiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-19531505318851299302017-01-03T03:04:00.001+09:002017-01-03T20:00:33.528+09:00MacBook Pro 2016用のマルチポートアダプタをkickstarterで支援しました。MacBook Pro 2016モデルの周辺機器問題を解消するためのアダプタを探していたんですが、なかなか「これ!」というものが見つかりませんでしたが、kickstarteで見つけて、即支援しました。
良いところ:
・thunderbolt3ポートを利用するので、高速
前のポストでも書いたようなものはほとんどがUSB3.1の接続(たぶん)で、5Gbpsの帯域をハブで分け合っている状態で、パフォーマンスに不安がある。買ったのはMBP2016のファンクションキーモデルでThunderbolt3ポートは2つしかないので、有効に使いたい。
・2つのThunderbolt3ポートを塞ぐが、一つはThunderbolt3がそのまま通っているみたいなので安心。もう一つはUSB-Cの口だけど、USB3.1仕様みたいで、ディスプレイ出力もなし。このへんがUSB-Cのややこしいところ。
Hiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-72274175139284727112017-01-03T02:46:00.003+09:002017-01-03T02:46:57.426+09:00dockerのmysqldコンテナにdumpデータをロードする
ローカルにmysqlのダンプファイルがあるとして、すでにmysqldが起動しているdockerコンテナが存在するとする。
このとき、以下のようにすればローカルのdumpファイルのロードが可能。
$ docker exec -i mysqld_container_name mysql -uroot -proot < dump.sql
参照:http://depressiverobot.com/2015/02/19/mysql-dump-docker.html
Hiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-71482627498630352362016-12-25T00:30:00.003+09:002016-12-25T00:30:38.410+09:00docker-composeで既存のnetworkに接続するdocker-composeを利用してコンテナを起動した場合、通常だとdocker-compose.yml(プロジェクト)単位で
内部ネットワークが作成される。これを、例えば別のdocker-compose.ymlファイルから起動されたコンテナのnetworkの中でコンテナを作成するには、network設定をdocker-compose.yml内に記述する
既存のネットワークの一覧
$ docker network ls
コマンドを実行すると、以下のようにネットワークの一覧が表示される。例ではexisting_nw_defaultに接続するとする。
$ docker network ls
NETWORK ID NAME DRIVER
a36b706eb5a6 bridge bridgeHiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-90026838627302889612016-12-24T01:02:00.000+09:002016-12-24T01:14:32.610+09:00Bloggerでシンタックスハイライトを利用するcode-prettifyを利用する方法。
https://github.com/google/code-prettify
(1)ブログ管理画面の"Template"から、テンプレートのHTMLを編集する。
haedタグの中に以下を記述する。
<script src='https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js?skin=sunburst'/>
(2)シンタックスハイライトを利用したい部分を、以下のタグで囲う。
<pre class="prettyprint">
(任意のコード)
</pre>
classに、追加で"lang-*"を指定すると対象言語を明示的に指定できる。lang-*の"*"の部分にはデフォルトで以下が利用できる
Hiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-14437541920272680732016-12-18T12:11:00.000+09:002016-12-20T13:43:02.048+09:00Raspbianでpyenv環境を構築するRaspbian環境をアップグレードしたついでにpyenv/pyenv-virtualenv環境を構築しようとおもいました。その際、pyenvを使ったpythonバージョンのインストールでエラーが出たので、その構築メモです。
0.環境
記事執筆した時点で、 $ sudo aptitude safe-upgrade した状態です。
日本語環境を入れたりはしてるので、かならずしもデフォではないです。
$ uname -a
Linux raspberrypi 4.4.34+ #930 Wed Nov 23 15:12:30 GMT 2016 armv6l GNU/Linux
1.エラー
以下のようにreadlineとかbzip2とかいかにも必要そうなものがないとか怒られます。
$ pyenv install 2.7.12
Downloading Python-2.7.12.Hiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-33055972245309720532016-12-18T01:28:00.000+09:002016-12-18T01:28:21.317+09:00Raspbian with PIXEL閑環境で日本語環境の構築
Raspberry Piの情報を細かく追っているわけではないので、知らない間にバージョンアップしてPIXELというデスクトップ環境になっていました。正確には、深く考えずにsudo aptitude sage-upgradeして再起動したらいきなり変わっていてびびった。
ながらく初期インストールだけして放置していたRaspberry Pi初代(+ですらない!)を日本語かするときにPIXEL 以前の情報が多かったので、PIXEL環境で日本語入力ができるようになるまでのメモです。結論からいうと、すごく簡単になっているみたいです。
日本語フォントのインストールPIXELな環境からは初期で表示できるのかも?という情報もみたのですが、それをみたのがフォントをインストールした後でした...。まあ、減るもんでなしという感じでインストールしました。タカオフォントというのはIPAHiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-60842991575037884772016-12-16T01:53:00.001+09:002016-12-16T21:30:11.162+09:00Android Things on Raspberry pi3でディスプレイを反転させるAndroid ThingsのRaspberry pi用OSイメージで
RasPi3を起動した際、Raspbianのときと同じように、
純正の7inch touchscreenの構成では画面を反転させないとUSBコネクタが
邪魔になってしまうという状況が発生しました。
Raspbianの場合なら、/boot/config.txtの中にlcd_rotate=2という記述を追記して際kどうすれば解消するのですが、それのAndroid Thingsでのやり方。stackoverflowに聞いたらすぐに回答してくれる人が現れました。すごい。ありがとう。
例えば、sdカードのデバイスが/dev/sdbだとした場合、ブートパーティションは/dev/sdb1になるようです。なので、母艦となるpcなりでこのパーティションを
マウントしてあげると、その中にconfig.txtというファイルがあるので、Hiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-24932987057223845782016-12-14T23:33:00.001+09:002016-12-14T23:33:35.298+09:00pyenvとpyenv-virtualenvで任意のpython環境に切り替える(homebrew使用)pyenvを使って任意のPythonバージョンを利用できるようにする。
さらに、pyenv-virtualenv(pyenvのプラグインということらしい)で、同一のPythonバージョン化でも任意のpython実行環境が管理できるようにする。これはpipとかでライブラリをインストールする場合に便利だろう。
homebrewを使ってインストールすることにする。
pyenvのインストール$ brew install pyenv
pyenv-virtualenvのインストール$ brew install pyenv-virtualenv
インストール自体は上記で終了。続いてPATH環境変数などを書き換える必要があるが、これは初期設定のスクリプトファイル(zshなら.zshrc)に以下の行を追記すれば良い
if which pyenv > /dev/null; then Hiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0tag:blogger.com,1999:blog-341817547867833834.post-15886278764028992232016-11-28T23:36:00.004+09:002016-11-29T10:03:56.678+09:00USBのHDMIアダプタについての記事USB接続のディスプレイアダプタは使ったことがなかったので、MacBook Proでの利用検討をきっかけにいろいろと調べています。
疑問だったのがUSB 3.0接続のマルチポートアダプタに多いのがHDMI 1.4対応で、USB 3.0の帯域幅が約5Gbpsなのに対してHDMI 1.4の帯域幅が10Gbps(4k)、普通に考えてUSB 3.1 (gen2)でも帯域幅足りないじゃないか!と思ってたんですが、とてもわかりやすい記事を見つけたのでリンク。
「USBディスプレイアダプタの特徴を考慮してパソコンとディスプレイをUSB経由で接続する」http://www.webmagazine.kakisiti.co.jp/?p=550
DisplayLinkという会社のパーツが使われることが多いそうで、帯域幅については(詳細はともかく)納得。でもこれだと遅延が少なからずありそうだし、動画などHiroyuki Kurosawahttp://www.blogger.com/profile/06788598705082022579noreply@blogger.com0