katsyoshiのめもみたいなもの

hello, world

Rock’n’ Roll Star

ロックバンド Advent Calendar 1日目です。 Oasisについて適当に書きます。

たいとるについて

はいそうですねみんな大好き Oasis の Definitely Maybe の最初にはいってるですね。 Firstはこの曲よりも Live Forever のほうがすきですが。 ロックバンド Advent Calendar 2016 ということでこのタイトルにしました1

Oasisについて

最も好きなロックバンドの一つだった(解散中)ので書いてみることにします。

出会いは高校生だったころ MTV2 みてたら Go Let It Out! が Power Push されてたのではじめて Standing On Shoulder Of Gaints を買いそこから。このころの曲はあまり好きでないのが多いですね。 このころも解散でもめてた気がします。そのあと大学でボッチ&&ひきこもりだったのでずっとOasisばっかり聞いてました。 そのときに買ったのが Master PlanHeathen ChemistryBe Here Now の3枚で Master Plan はベストアルバム(B面)ってのがすごく好き。

ライブは2度ほど見ました。2005年に2回みてます。Summer Sonic 2005日本ツアー を行ってました。日本ツアーのほうでは、Master Planの曲をやってくれたので本当に満足しました。

そのあともThe LongcutThe Music3Bloc PartyThe StrokesASIAN KUNG-FU GENERATIONColdplayとかに浮気しながらもきちんと御布施としてCDは買ってました。最近のリマスターはさすがに買ってないですが…

解散について

伝統芸的なこと もあるのでハイハイとしか好きなひとは思ってなかったとおもいます。

で2009年いつも通りまゆげ兄弟(ノエル・ギャラガーとリアム・ギャラガー)の兄弟喧嘩だとおもっていたら本気でまゆげ兄(ノエル)がブチギレて解散したのでそっかーてちょっとショック(ほんとにちょっと)だった4


  1. ほんとはノエルの発言を付けたかったけどさすがにね…

  2. だったけなこのころVibeって名前だった気も

  3. そんなことより The Music のgoogle trendsで熊本が肥ゆいけどなんで?

  4. このころtwitterでやりとりしてた人とかともオフで解散したねーとか言ってた

YARAKASHI CUDA編

昨日かいた奴でGTX 1050があるのでCUDAを導入してみた。

CUDA導入

これは簡単で ここ から必要なパッケージをダウンロードしてきます。 今回は Linux x86_64 Ubuntu 14.04 runfile(local) を順に選択。 インストールはここでダウンロードしたrunfileを実行して、指示に従うだけです。 これが終ったら、SampleProjectもインストールされてるとおもうのでこのプロジェクトをコンパイルします。

1
2
3
4
5
6
$ chmod 555 ./cuda_8.0.44_linux.run
$ ./cuda_8.0.44_linux.run
:
:
$ cd NVIDIA_CUDA-8.0_Samples
$ make

でコンパイルが終了したらサンプルプログラムを実行します。とりあえず deviceQuery を実行します。

1
2
3
4
5
6
7
8
9
$ cd bin/x86_64/linux/release
$ ./deviceQuery
./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

cudaGetDeviceCount returned 38
-> no CUDA-capable device is detected
Result = FAIL

と出ます。どうみてもエラーですね

で、以下のようにrootで実行すると

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
$ sudo ./deviceQuery
./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 1050"
  CUDA Driver Version / Runtime Version          8.0 / 8.0
  CUDA Capability Major/Minor version number:    6.1
  Total amount of global memory:                 1965 MBytes (2060255232 bytes)
  ( 5) Multiprocessors, (128) CUDA Cores/MP:     640 CUDA Cores
  GPU Max Clock rate:                            1455 MHz (1.46 GHz)
  Memory Clock rate:                             3504 Mhz
  Memory Bus Width:                              128-bit
  L2 Cache Size:                                 1048576 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
  Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 2 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Domain ID / Bus ID / location ID:   0 / 129 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GTX 1050
Result = PASS

と出てきますので、パーミッションがなかったようです。 あとは簡単、CUDA使いたいユーザーにパーミッションつけたらおわりです。

おわり

こんなのに3時間ほど時間を費しましたね。はい。

あったらしーPCかったよー

あたらしいPC買いました

先月のおわりに注文し今月頭のOSCあたりに新しいPCを組み立てました。 先月おわりあたりまではDDR4の32GBメモリーが2万円と安く売っていたので勢いで購入。 構成は以下のようになっています。

1
2
3
4
5
6
CPU: XeonE5-2620V4 * 2
MB: X10PE-D16WS
DISK: INTEL 600 シリーズ 512GB
MEM: Crucial [Micron製] DDR4 サーバー用メモリー 32GB ECC Registered * 4
NIC: X540-T2
GPU: Zotac GeForce GTX 1050

というかんじになっています。 今回はメモリー4枚しか買っていないので安くなったらあと12枚買いたいとおもってます

Went to 8 Jou Island

11/3-11/5 で八丈島にいってきました。 決めたのは10/28の朝でした。

出発

は竹橋桟橋から船が出ているのでそこからのっていきます。 船は11/2 22:30(JST)からでていますのでそれでいきました。

到着

は11/3 の朝8時ころに底土港に到着します。

島一周

朝到着し、やることないので宿に荷物を置いて自轉車を借ります。 この自轉車がブレーキ効かないのであきらめてスクーターを借りました。 滞在時間ずっと使えるように二日借りることにしました。

スクーターかりたあとは島観光として一周まわることにしました。 途中いくつか良いポイントがあったので写真をとったりしましたが、 だいたい2時間ぐらいで島一周できました。

一周してひまだったので、昼飯を宿のちかくで

釣り 1日目

やることないなどうしようかなとおもってたら、宿の部屋に入れるようになったので、PCの充電と携帯の充電を そんなこんなしてたら、時間が16時ごろになったので釣りへ。 この日は釣る気があまりなかったので坊主で終了。 飯は島の適当なラーメン屋で。

釣り 2日目

この日は起きてすぐに温泉に行ってみたら、温泉施設自体がどこ行ってもだめで一番遠いとこは、朝10時からでした。 ので温泉は諦めて釣りへ行ってみた。

釣りはじめて30分ぐらいで釣れたし、一人で刺身にして食べるには十分な大きさだしで、あとは昼ごろまで適当に釣ってました。

アイッパラ

温泉

釣りおわったあとは温泉でまったり2時間ほど時間をつぶしてあとは夕日を見にいきました。

サンセット

おわり

たのしい一人旅でした。

Ssh Permission

またやらかしたので

経緯

サーバーにSSHログインが急にできなくなった

対処

1
chmod 744 ~/.ssh

おわり

おわり

ItamaeつかってOSのインストールをやってみた

9月はRubyKiagiにいってたりしました。 そのときにmikutterのコミッターとかになったようです。

シルバーウィークにThinkPadのOS再インストールをしたのでその記録を

なにやったの?

@mtsmfm と以前話していたとき、“ansibleつかってOSインストールしてるんだけど、完全自動化できないんですよね~” みたいな事を聞いたのでItamae をつかってやってみました。 結論から言うと完全自動化は無理だけど、ある程度は自動化できた。

環境

インストール

インストールディスクを起動するところはipmiとか搭載していない(しらべていない)しIronicはつかいたくないので手動で起動し、 sshdの起動とrootのパスワードを設定します。起動したら以下の手順でパーティション作成からカーネルのインストールまでします。

1
2
3
4
5
6
git clone https://github.com/katsyoshi/itamae-recipes.git
cd itamae-recipes
bundle install
wget http://ftp.iij.ad.jp/pub/linux/gentoo/releases/amd64/autobuilds/current-stage3-amd64/stage3-amd64-20161006.tar.bz2
cp stage3-amd64-20161006.tar.bz2 cookbook/install/stage3.tar.bz2
itamae ssh -h nu-machine cookbook/install/gentoo.rb -u root -j cookbook/install/gentoo.json

でOSのインストールまでできるのですが、gentooのインストールメディアだと、diffがインストールされていないのでitamaeからfileのコピーができません。 都度コピーしてください(というよりgentooインストーラーにdiffを入れたほうが早そう)

パッケージのインストール

ここまで終ったら、パッケージのインストールします。これも以下コマンドを実行することで終ります。

1
itamae ssh -h nu-machine cookbook/gentoo/emerge.rb -j cookbook/gentoo/package.json

owari

ItamaeつかってOSのインストールを実行してみました。diffが失いところがとくにつらいですね。 おわり

Hello Mikutter

表題のとおりmikutterをgemでインストールできるようにしてみました。

どうやって?

rubygems からはまだインストールはできません。 ので、以下の様にしてgem packageを作成します。

1
2
3
4
5
6
7
$ git clone github.com/katsyoshi/mikutter.git
$ cd mikutter
$ git checkout reokure-ru
$ bundle install
$ bundle exec rake build
$ gem install pkg/mikutter-3.5.0.pre.dev.gem
$ mikutter

これでmikutterコマンドで起動できるようになっています これすらめんどうな人はここにあります。 ダウンロードして gem install mikutter-3.5.0.pre.dev.gem でインストールできます。 プラグインで起動できないとかあるなら必要なgemをインストールしてください。

RENEWAL MY SITE!!!

ってのは嘘ではないですが、嘘に近いです。 実はおとといの土曜日に katsyoshi.org をのぞいたら、 nginx の初期ページが表示されたので とくにコンテンツはないですが、いそいでサイトの復旧をしました。 が、もともとあったファイル置場を失念したため似た感じで再構築してました。 再構築ついでにssl化、nginx から h2o へのWebサーバー変更しました。 あと systemd でデーモン化とかも。

Let’s Encrypt

リリースされてだいぶたつのですが、Let’s Encryptを利用してみました。 Ubuntu Linux 16.04 では、簡単に導入できます。

1
2
$ sudo apt install letsencrypt
$ sudo letsencrypt certonly

でいくつかの質問に答えればおわりです。 ここで、戸惑った場面としては認証を受けたいサーバーの確認があるのですが、 サーバーポート443を開ける必要があり、1回失敗しました。

H2O

せっかくだし、H2Oを使おうと思います。 インストールはかんたんでいかのようにすればokです。

1
2
3
4
$ git clone h2o/h2o
$ cd h2o
$ cmake -DCMAKE_INSTALL_PREFIX_PATH=/opt/local .
$ make && make install

設定はここここを参考にして以下にしています。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
user: www-data
hosts:
  "katsyoshi.org:80":
    listen:
      port: 80
    paths:
      /:
        redirect: https://katsyoshi.org
hosts:
  "katsyoshi.org:443":
    listen:
      port: 443
      ssl:
        certificate-file: /etc/letsencrypt/live/katsyoshi.org/fullchain.pem
        key-file: /etc/letsencrypt/live/katsyoshi.org/privkey.pem
    paths:
      /:
        file.dir: /opt/website/top
access-log: /var/log/h2o/access.log
error-log: /var/log/h2o/error.log
pid-file: /var/run/h2o.pid
http2-reprioritize-blocking-assets: ON

h2o.service

さいきんわだいのしすてむでーってやつででーもん?かしようとおもいます

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Unit]
Description=H2O the optimized HTTP/1, HTTP/2 server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/var/run/h2o.pid
ExecStartPre=/opt/local/bin/h2o -c /etc/h2o/h2o.conf -t
ExecStart=/opt/local/bin/h2o -c /etc/h2o/h2o.conf -m daemon
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

いやーしすてむでーってべんりですねー

owari

サイトがぶっとんだのでサイトの復旧?と let’s encrypt でのSSL化、 h2oへのウェブサーバー変更と systemd でのデーモン化をやりました。

1年ぶりの日記だたので、Markdownどうかくんだっけ?とか、別のところで大変でした。

参考サイト

YAPC::Asia 2015に参加しました(ボランティアスタッフとして)

YAPC::Asia 2015にボランティアスタッフとして参加してきました(申請時に公表しないでってしなのでYAPCのスッタフ一覧にはのってないです)。去年も参加しましたが聴講者として参加しました。

ボランティアスタッフに応募した理由

彼女ができるときいて応募しました。また、最後の YAPC::Asia と聞いていたので応募しないとなと思ったのがありました。他の理由としては NEET なのでというのもあります。発表者として参加できればよかったのですが、ネタが応募するには弱いなと思い見送りました。そういうこともありボランティアスタッフとして参加しました。

個人スポンサー

実は個人スポンサーもやっていましたが、ボランティアスタッフをやるため、個人スポンサーの分のチケットが余っていました。その分はとある人に譲りました。

0日目(前夜祭)

0日目は11時集合になっており、スタッフ作業としてノベルティの詰め込み作業と会場設営を行なっていました。

前夜祭自体は初めてのスタッフ作業でしたので、会場係として設営などをしてました。

1日目

1日目は始めに作業としてラリーのセッション前、中で同時通訳のレシーバーを配ってました。その後D会場でずっとタイムキーパーをやっておりました。

この日の印象に残ってるセッションとしては @kazuhoさんHTTP/2時代のウェブサイト設計 で、 HTTP2 になった理由、そのなかで h2o が優れている点を丁寧に説明されてて、これはすぐに使わねばと思わせてくれた発表でした。

この日は懇親会がありましたので、懇親会会場でうろうろしておりました。 懇親会では、知り合いと話してたりしてました。最近、 itamae を触っているので、プラグインの話を @k0kubunさん としてました。そのときは pip のリソースプラグイン作りたいとか言ったので 今日作成 したのですが、よくかんがえてみると、 cpan のリソースプラグインの方が必要だったのを作成後に思い出しました。

2日目

2日目も1日目と同様にD会場で全セッションタイムキーパーやっておりました。

印象に残ったセッションとしては、 @kenjiskywalkerさん我々はどのように冗長化を失敗したのか@saiken3110さんMySQLで2億件のシリアルデータと格闘したチューニングの話@JxckさんHTTP2 時代の Web がありました。

最後に片づけをし、おわった後スタッフ数人とのみくいに行ってきました。そろそろ解散かなってときに、 twitter を眺めてたら、 @[email protected]_wadaさんを誘ってる を見つけて無理やり参加させて頂きました。

帰りついたのは朝の4時ごろ(だったと思う)でした。

おわり

YAPC::Asia 2015 に参加してきました。23日の日曜日は疲れてたのでずっとぐったりしてました。 楽しい3日間でした!!!!!11

こんにちは、いたまえさん

rbenvitamaeプラグイン を利用してインストールしようとしたら、対象サーバがプロキシーのあるネットワークであり、gitでダウンロードできなかったので、httpsを指定できるようしてもらいました。

plenv と pyenv

また、rbenv のプラグインを参考に plenvpyenv を作ってみました。

これらふたつのプラグインはまだgemになっていないので、Gemfile に以下のように追加し、

1
2
3
gem 'itamae'
gem 'itamae-plugin-recipe-plenv', github: 'katsyoshi/itamae-plugin-recipe-plenv'
gem 'itamae-plugin-recipe-pyenv', github: 'katsyoshi/itamae-plugin-recipe-pyenv'

recipeとしては以下のようにしてください。

recipe.rb
1
2
include_recipe 'pyenv::system'
include_recipe 'plenv::system'

設定例としては、rbenvのプラグインと同じように設定します。

1
2
3
4
5
6
7
8
9
10
{
  "plenv" : {
    "versions" : ["5.22.0", "5.20.2"],
    "global"   : "5.22.0"
  },
  "pyenv" : {
    "versions" : ["3.4.3", "3.5.0b2"],
    "global"   : "3.4.3"
  }
}

おわり

おわり