patorashのブログ

方向性はまだない

育休エンジニアなのでPostgreSQLの勉強をしている

長年、データベースに関する知識がまだ足りてないなぁと思っていたので、育児しながら空いた時間でPostgreSQLの勉強を始めた。

内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus)

内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus)

まずはOSS-DB Silverの取得を目指しているのだけれど、この本がPostgreSQLの勉強にとてもよいと聞いたことがあったので、会社に行ったタイミングで同僚から借りてきた。

内容は、

  1. 基本編
  2. 設計/計画編
  3. 運用編
  4. チューニング編

とあるのだが、ひとまず基本編を読み終えた。基本だけれど難しい!

知らなかったこと

PostgreSQLのプロセス

PostgreSQLはプロセスベースであり、親プロセスと、様々なプロセスをフォークして制御を行い、接続があった時に親プロセスが接続に対するバックエンドプロセスを起動する。 プロセスベースであるということは知っていたけれど、具体的にどういうプロセスがあるのかについては知らなかった。

WALライタプロセスや、自動バキュームランチャプロセスなど、ある程度OSS-DBでWALや自動バキュームについては知っていたけれど、どういう風にしてるんだろうか?と思ったら、専用プロセスが常駐しているとわかってよかった。

メモリ管理

バックエンドプロセスのプロセスメモリ域と、共有メモリ域に分けられる、くらいのざっくりした理解をした。

各種設定ファイルについて

設定ファイルは複数あって何が何を担当しているのか、というあたりがよくわかっていなかったが、そのあたりもまとめられていた。

postgresql.conf

設定項目が大量にあるので、ここではそんなに触れられてはいなかったけれど、includeで設定ファイルを分割して管理できるということを知れたのはよかった。 同じ設定項目がある場合は、後勝ちする。

pg_hba.conf

アクセス制御はこのファイルで簡単に行えるのはいいなと思う。pg_ctl reloadで設定を反映できる。 postgresql.confと違い、設定は先勝ちするので、設定の順番次第では無意味な設定ができてしまうので注意。

トランザクション

トランザクションの分離レベルについてはOSS-DBの出題範囲でもあるので、ここは押さえておきたいところ。バージョン9.1からリピータブルリードが使えるようになったらしい。分離レベルが高ければいいというわけではない、というのも例があってわかりやすかった。

ロック

ロックに関しては、まだよくわかっていない。自動的に取得されるロックが多い。明示的なロックの使いどころ、自分の仕事ではいつ来るのだろうか…。

感想

わからないところやわかったところをアウトプットすることを通して、理解を深めるためにとりあえずブログに書いてみたので続けていきたい。

育休エンジニアなので平日にスタジオアリスに行ってみた

次男が生まれて1ヶ月が経過したので、お宮参りの写真を撮るためにスタジオアリスに行ってきました。 神社へのお参りは今回は延期して、写真のみで。まだまだ寒いのと、インフルエンザが流行っているので、神社に行くのは温かくなってからにしようということに。

週末のスタジオアリスは大変だったが

長男の時は、週末に撮りに行ったのですが、ものすごく混雑していました。そして子供(赤ちゃん)相手に写真を撮るため、撮影時間も結構伸びたりしてとても大変だったと記憶しています。撮影には2時間程度かかる、と書いてあったのですが、終わったのは4時間オーバーでクタクタでした。途中、長男が寝てしまったというハプニングもありましたが。

平日のスタジオアリスは超快適!

3連休を外して行ってみたところ、お客さんは数組いる程度。途中からは我が家のみになったので、写真撮影もサクサク進み、長男がスタジオ内を走り回ってもある程度は問題なかったのでめちゃくちゃ快適でした。写真選びの時間も込みで、2時間くらいで終了。スタッフさんも長男に声かけてくれたりして助かりました。

スタジオアリスは平日に行くのオススメ

行けたら行っとるわ!と言われそうですが、お休みの日に行くと予想以上に時間かかってほんまにクタクタになるので、もし有給休暇取れるんだったら、平日にスタジオアリスとかの写真館に行くのをオススメします。

写真は2週間でできるということで今から楽しみです!

育児休業を取って一ヶ月が過ぎた

次男が産まれてから、もうすぐ一ヶ月です。育児休業は男性の場合は出産予定日からの取得になるのでもう一ヶ月が経過したことになります。

何をしていたか

次男が産まれてからは、妻は子供を連れて実家に戻っていたので、その間に家の掃除や不要品の処分などをせっせと進めていました。お陰で随分不要品をなくすことができたので、心理的に楽になりました。また、子ども手当の申請とか、保険証の申請とか、医療費控除の申請とか、色々申請しまくってました。

あとは車を替えたので、旧車の売買手続きや新しい車の名義変更や車両保険の変更などで各所に連絡をとったり。今度の車は車内空間が広いので動きやすくてよいです。

また、時々自宅から仕事をすることもあるので、机の周りを整備したり、椅子を買ったりしました。一万円ちょいなのにハイバックで座り心地のいい椅子で、かなり満足してます!


また、普段はデュアルディスプレイなのですが、ノートPCを左、ディスプレイを右に置いていましたが、常に斜め右を見るような姿勢になってしまい、以前に筋を痛めて整体に行った際に、姿勢が右に偏っているのを指摘されたので、ディスプレイを上下に配置するために、ディスプレイスタンドを買いました。前を見るだけでよくなったので、姿勢もよくなったし首の凝りも以前より減ったような気がします。


現在の課題

先週から妻と子供たちが戻ってきて、いよいよ4人での生活が始まりましたが、なかなか大変です。

  1. ご飯を作って食べたらすぐ次のご飯を作らないといけない
  2. 仕事、勉強の時間の確保が難しい
  3. ベビーサークルはあるが、ベビーサークルに長男が物を放り込んでくる
  4. 次男がよく泣く(新生児なので仕方ない)
  5. 長男が偏食でなかなか野菜を食べない
  6. 長男が歯磨き、耳かきなどを嫌がる
  7. みんなで一緒に寝ると長男が次男を踏みつけそうになる

とりあえずの対策

正直、対策というか対応の仕方がわからないものがあるので、困っています。特に歯磨き。無理に磨こうとしたことがあるせいか、全力で嫌がるようになり、全く磨けなくなってはや数ヶ月…。

  1. ご飯は一度にたくさん炊く。常備菜を作る
  2. 妻と次男が一緒に寝て、別の部屋で私と長男が寝る
  3. カレーや餃子の具を工夫して野菜を無意識に食べさせる
  4. 机で勉強せず、子供たちがいるところだけど子供たちが手の届かないところで本を読んだりPCを使ったりする

しかし、集中があまりできないので、なかなか本の内容が頭に入らないのが問題です。

大変だけれど慣れていくのと工夫していく余地がまだまだあるので、引き続き頑張っていきます!

かずー氏の本を読んだら人工知能のことちょっとわかった気がした

今期の目標に、人工知能について調べてみると書いていたものの、読み始めた本が結構眠くなる内容でなかなか理解も進まなかったので、もっとイメージだけ先に掴んでから読んだほうがいいかなぁと思っていた。そこで、同僚が持っていた本(通称:かずー氏本)を借りて来て読んだのだった。

コンピューターで「脳」がつくれるか

コンピューターで「脳」がつくれるか

脳を真似ようとしているのが人工知能

かずー氏の本のアプローチは、人間の脳の説明から入っていて、脳のこの部分はこういうことを担当していて、それをAIでやろうとすると、こういう手法になる、という説明がされているので、なんとなくわかった気になる。実際には脳に関するキーワード全然頭に入ってきてないので、イメージだけが掴めるという感じ。

かずー氏本からのメッセージとしては、「汎用AIにはロマンがある」というふうに受け取った。

よく聞くキーワードについてもなんとなくわかる

機械学習

機械学習はコンピュータ自身に自動的に学習していってもらうというもの。普通は人間自身がプログラミングをして、どう判定するかを適宜定義していくわけだが、その判定基準の学習をコンピュータ自身が行うようにしていく。

教師あり学習

教師あり学習は、最初は正解を人間が教えて、傾向を掴んでいくように仕向けるもの。そこから正解の特徴を見つけていき、精度が上がる。ただし、汎化能力を高めないといけない。汎化能力とは、蓄積された知識を応用できるかどうかとことで、汎化能力が高いと、今まで学習してきたものとちょっとだけ違う問題にも答えられるけれど、低いと、ちょっと違うだけなのにミスしてしまう。汎化能力が低いものは過学習といって、教師からの問題に最適化されすぎてしまっていることをいうらしい。 なので、正答率が高ければいいというものでもない。

教師なし学習

教師なし学習は、コンピュータが自動でデータから傾向を導き出して法則を見つけ出したりするもの。人間が気づかない関連性を導き出したりする。

強化学習

強化学習は、行動に対して報酬、または罰を与えて、報酬のある行動を行い、罰のある行動を避けるようにしていくもの。いいことしたらご褒美あげて、悪いことしたら怒られたり、痛い目にあったりするというところが動物が学習していくところと似ている。似ているというか、それをモデル化したものだけど。

ディープラーニング

ディープラーニングは、人工のニューロンを定義して、学習する層を多層(深層?)にすることによって、より複雑な学習が行えるようになったもの。今最も熱い分野である。

脳のことがわかる

人工知能で知能を作ろうとしているため、身近なモデルである脳についての説明がされている。どの部位が何を担当していて、それは機械学習でいえばこういうことをやっているだろう、という風に書かれている。小脳は教師あり学習をしているとか。そして、大脳の謎はまだまだ多くてわからないことが多いというのもわかる。ディープラーニングっぽいことを大脳新皮質がやっているみたいではあるが、そんなに層があったら人はこんなに速く物事を判断できないということもあり、脳は非常に興味深い存在であるなとわかった。

脳の仕組みがわかれば勉強法も変わる?

余談ではあるが、脳の仕組みを理解して、勉強に対して強化学習でご褒美をあげるようにすれば、快に変わっていって億劫なこともだんだん楽しくなっていくのではないだろうか?そういうメカニズムを知っていれば、面倒臭いことに対する戦略を立てて攻略できそうに思えた。機械学習とは全然関係ないけれど、そう思った。

次の段階の本はなんだろう?

なんというか、学習するアルゴリズムに対する勉強をしておかないと全然わけわからないだろうなーと思えたので、大枠が知れたことはよかったと思う。とりあえず、前に買った本にもう一度チャレンジしてみよう。

古いPCを使ってBitZenyのマイニングを始めた

先日、古いPCにUbuntu Serverをインストールしていたのですが、それはBitZenyのマイニングを始めるためでした。 BitZenyは、CPUマイニングのみの仮想通貨だそうで、高価なGPUのないPCでも気軽に始められるという情報を見かけたので試しにやってみることにしたのです。

bitzeny.org

2018/01/15現在、1ZNYが30円程度のようです。

マイニングのやり方

やり方についてはググれば出てくるのでとりあえず参考にサイトをバンバン貼っておきます。

bombox.net

bitzeny(ビットゼニー)を素人でも簡単にマイニングする方法 - お金がないときに.com

nohupコマンドでnohup.outではなく標準出力に出力する方法 - システム開発メモ

マイニングの方針

どちらかというと儲けることを主体としておらず、ただやってみたいという動機だったので、とりあえずは以下のような方針です。

  • 初期投資をしない(専用のマシンをわざわざ組まない)
  • 騒音は少なめに
  • 電気代も少なめに

手元にある使ってないマシンは、

なので、Atomのマシンでやってみることにしました。

lscpuで確認したところ、Intel(R) Atom(TM) CPU D510 @ 1.66GHz と出ました。ググったら2009年モデルだったので相当古いです。そういえば当時、うるさくない自宅サーバを立てて勉強しようと思っていたのを思い出しました。

とはいえ、低スペックながらDualCoreでHyperThreadingに対応していて仮想4コアのため、もしかしたらいい数値出すかもしれんなーと思っていたのですが、やはりそんなことはありませんでした…。

マイニング性能

うちのマシンでは、ハッシュレートは0.16 〜 0.24 KH/sくらいを示していました。マイニングプールの LA Bitzeny Poolを使っているのですが、最近混雑してきているらしいので、そのせいであんまり出ていない可能性もありますが、まぁ微々たるものでしょう…。最新のCPUのマシンだと3k〜11kとかフォーラムで書いてありましたが、やはり放熱と電気代が凄そうです。まぁBitZenyが値上がりすることを見込んでの投資だとは思いますが。

1日あたり0.35 ZNYを採掘できているようなので、現在価値でいえば、30 * 0.35 = 10円くらいでしょうか。確実に電気代のほうが高いと思いますし、CPUに高負荷がかかった状態が続くので、ぶっ壊れる可能性も高くなるので、正直微妙な気がします。

マイニング続けるのか?

使ってなかったPCだし、省電力PCなのでさほど電気代もかからなかったはずなので、とりあえず動かし続けてみようかなと思います。

ubuntu-server16.04を古いPCにインストールしたら無線LAN接続にハマった

wifi子機のUSBドングル(WN-G150UMK)を認識しなかったみたいで、接続できなかった。

さっさと有線接続すればよかった

様々なサイトをみたが、wpa_supplicantを使うとあったのだが、そのwpa_supplicantが入ってないのでどうしようもなかった。とりあえず有線LAN接続してaptでアップデートしたりwireless-tools, wpasupplicantなどをインストールした。

そのあとは、参考にしたページの通りなのだが、WPAの設定を行って、再起動すると認識するようになった。

dorapon2000.hatenablog.com

順序的には、USBドングルのドライバを読みこむように修正してからaptで色々入れるようにしたのだが、もしかしたらドライバの設定なくてもいけたかもしれない(デフォルトで読み込んでいたりしたら)。

ドライバの設定や、設定されているかどうかの確認は、以下のページを参考にした。

beautifulajax.dip.jp

qiita.com

とりあえず1歩進めてよかった。

自分の言葉で綴ることの重要性を学んだ

未来食堂は、何かのテレビの特集を見たことがあったので知っていたのだが(ガイアの夜明けだったかな…)、本を出されていることは知らなかったので買ってみた。

未来食堂ができるまで

未来食堂ができるまで

読む前のイメージ

テレビを見ていたので、クックパッドから脱サラして飲食店を開いた人、という情報とこじんまりとした食堂で1つのメニューで超速で提供する、というのは覚えていた。夜は店のストックからお客さんのオーダーであつらえの一品を作るというのもなんとなく覚えていた。

ただ、レシピサイトをやっているうちに飲食店やりたい!って思うようになったんだろうと勝手に思っていた。そのあたりが全然違った。

せかいさんは自分の言葉で自分の作りたい世界を綴っている

私はブログでは技術系の情報や読書メモを残すのをメインに使っているのだけれど、それだと自分の言葉があまり載ってない。熱がないとも言える。特に読書メモに関しては、本のまとめみたいになってしまって、本を見ながら本を移したりしているときがあったりして、時々なにがしたいのかわからくなってしまう。まぁそれを通してまとまっていくこともあるのだが。

この本はせかいさんのブログをまとめた本なのであるが、せかいさんがお店を開くまでの修行の日々やそこで学んだこと、未来食堂をどういう店にするかというビジョンや計画、お店が始まってからのPDCAサイクルをどう回したかなどがせかいさんの言葉で書かれている。学んできたことをちゃんと消化していて、自分の言葉で書かれているなぁと。

一方自分はというと、なんか受け売りの文章とかどこかで見たような言い回しとかを多用している感じがする。要は上辺だけ勉強して消化しきれてない。この本を読みながら自分の文章の稚拙さを感じてしまった。ちゃんとビジョンを持っていて、それを第三者に伝えるんだ!という気持ちが乗っている文章なので、熱量が違う。そこらへんの自己啓発本よりも数倍刺激が貰える。ブログ書いている人は読んでみるといいと思う。

一番印象に残った言葉

「だから何なの?」

本を読んでいて、一番印象に残ったのがここだった。未来食堂の開店前夜に書かれている記事。飲食店の閉店率は高いのに、競争も激しくて失敗する確率が高いのに、なんでやるの?というところ。本人もわかっているけれど、確率だけが全てじゃない。今まで手伝ってくれた、応援してくれた人たちの想いなどを背負って覚悟を決めて頑張るための「だから何なの?」である。

なんでやるの?が芽を摘む

親切心からそう言ってくる人もいるだろうし、小馬鹿にしてそう言ってくる人もいるだろうけれど、それで諦めてしまう人って世の中にすごく多いと思う。失敗したくないので。でもそれやらなかったら成功するかというとそうではないし、したほうが絶対に自分のためになる。なにより後悔しないと思う。(ただ、杜撰な計画とかだったら、そりゃいかんとは思う)

すごくエンジニア発想で見習いたいと思った

文章の熱量はむっちゃ熱いとかじゃなくて、じわじわくる熱さで、それがよかった。そして、ちゃんと数値化して現状把握、次にどう繋げていくかのPDCAを回している部分や、修行に行っていた頃の考察がまた繊細に書かれていて面白かった。手の抜きどころとこだわるところをしっかり押さえて改善している点は本当見習いたい。

自分も闇雲に取り組まないようにしてちゃんと考えていこうと思わされた。

未来食堂ができるまで

未来食堂ができるまで