$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

tech

構造が人間の行動を決定する - 「学習する組織」を読んだ

組織関連の興味の一貫として、「学習する組織」を読んだ。学習する組織――システム思考で未来を創造する作者: ピーター M センゲ,Peter M. Senge,枝廣淳子,小田理一郎,中小路佳代子出版社/メーカー: 英治出版発売日: 2011/06/22メディア: 単行本購入: 3人 ク…

マネジメントの要素を知る - 「マネジメント入門」を読んだ

マネジメントの技術全体に興味があるので、その要素にはどういうものがあるかを知っておくために「マネジメント入門」を読んだ。マネジメント入門---グローバル経営のための理論と実践作者: スティーブン P.ロビンス,デービッド A.ディチェンゾ,メアリー・コ…

組織設計を体系的に学ぶ - 「組織デザイン」を読んだ

自分は組織での行動やマネジメントの分野に興味があるのだけど、その一貫でそもそも組織とはどう設計していくのかの基礎的な知識を学びたいと思ったので、評価の高い「組織デザイン」を読んだ。とにかく面白く、読んで非常に良かった。学ぶことが多すぎて、…

「ウェブオペレーション」読んだ

オペレーションエンジニアがどのように考えて行動しているのかを知りたくて、ウェブオペレーションを読んだ。ウェブオペレーション ―サイト運用管理の実践テクニック (THEORY/IN/PRACTICE)作者: John Allspaw,Jesse Robbins,角征典出版社/メーカー: オライリ…

「ふつうのLinuxプログラミング」でLinuxの基本概念やシェルの仕組みについて学んだ

最近golangでCLIツールを作っていたのだけど、Linuxのお作法とかいまいち分かっていなかった。そこでそのあたりのことが学べそうな「ふつうのLinuxプログラミング」を読んだ。ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べるgccプログラミングの…

gotest.elを使って、Emacs上でgolangのテストを実行する

【Scala】Emacsで現在編集している部分のテストを実行する - $shibayu36->blog; と同じようなことをgolangでもやりたいと思って調べたら、gotest.el というのを使えば同様のことを簡単にできることが分かったので使ってみた。 今回できること 現在編集中のフ…

flycheck-gometalinterを利用して、EmacsでGoのシンタックスチェックや型チェックを行う

今までgolangでシンタックスや型のエラーがあった時にEmacsに表示するために、flycheck標準のgo用のcheckerを利用していた。しかし、これがだんだん遅くなってきて、結構いらつく感じになってきた。そこで、flycheck-gometalinterを使ったら解決したのでメモ…

goxc + ghrを使って、Goで書いたツールのバイナリをGithub Releasesで配布する

先日の goreleaserを使ってGoで書いたツールのバイナリをGithub Releasesで配布する - $shibayu36->blog; で、Goツールのバイナリ配布ができるようになった。しかし、アーカイブ周りの処理が少し期待と違い、作成したzipをunzipコマンドで取り出すとファイル…

OSSライセンス参考資料

OSSライセンスについて調べてたのだけど、毎回どこ見たら良いか分からなくなるのでメモ。OSSライセンスまじむずい。 Githubによる、オープンソースライセンスの選び方 | オープンソース・ライセンスの談話室 ざっと把握するための参考 たくさんあるオープン…

goreleaserを使ってGoで書いたツールのバイナリをGithub Releasesで配布する

Goで書いたツールのバイナリ配布ってどうやれば良いのかなーと思っていたら、goreleaser というツールを見つけたので使ってみた。非常に便利だったのでメモしておく。 goreleaserとは 簡単に言うと、Goのバイナリのクロスコンパイルと、Github Releasesへの…

ioドメイン障害を理解するため、DNSの仕組みについて勉強した

先日、ioドメインの障害があったのだけど、自分がDNSの仕組みをよく分かっていないせいで、いまいちどういうことが起こっていたのか把握できなかった。そこで、DNSの仕組みについて軽く勉強したので、そのメモを残しておく。内容は間違っているかもしれない…

「みんなのGo言語」を読んだ

Go言語の学習のため、A Tour of Goに引き続き、「みんなのGo言語」を読んだ。みんなのGo言語[現場で使える実践テクニック]作者: 松木雅幸,mattn,藤原俊一郎,中島大一,牧大輔,鈴木健太出版社/メーカー: 技術評論社発売日: 2016/09/09メディア: Kindle版この商…

A Tour of Goをやって演習問題を解いてみた

Goをやることになったので、とりあえずA Tour of Goをやって、演習問題を解いてみた。直近ではgoroutineは使わなそうだったので、ひとまずそれ以外の演習問題をした。回答は https://github.com/shibayu36/golang-playground/tree/master/go-tour に置いてい…

golangの編集環境を再整備する

最近golangをやり始めたので、編集環境を再整備した。 基本設定 昔自分で書いた以下の二つを再度やったら、これだけでかなり快適な環境になった...昔の自分のブログ便利...残しておくものだな...blog.shibayu36.org blog.shibayu36.org ハードタブの表示の設…

ScalaでHikariCPを使ってDBのコネクションプールを利用する

ScalaでのJDBCによるDB操作の勉強をした - $shibayu36->blog; の続き。今回はHikariCP を利用して、DBのコネクションプールをScalaで利用してみたのでメモ。DBにはPostgreSQLを利用した。 依存の追加 build.sbtに以下を追加。 libraryDependencies += "org.p…

ScalaでのJDBCによるDB操作の勉強をした

ScalaでPlay+Slickの勉強をし始めたのだけど、DIを使ってDBオブジェクトを取得したり、コネクションプールを使っていたり、クエリ発行はDSLだったりと、色々なことをやっていて全く理解できなかった。そのため、とりあえず地道に下の方から学習して、分から…

手元からpsqlでログインする時にパスワード入力せずにログインできてしまう理由

sudo brew install postgresqlでMacにpostgresqlを入れて、 $ psql postgres postgres=# create role dbuser createdb login inherit password 'dbuser';のようにroleを作ってみたのだけど psql --username=dbuser postgresでパスワード指定せずにログインで…

gitのworkspaceがcleanかどうかチェックする

gitのworkspace内がcleanかどうか確認してからコマンドを使いたいことがあった。そこで変更があるかをgitでチェックする方法について調べたのでメモ。結論としては以下のようにすると良い。 if [ -z "$(git status --porcelain)" ]; then # Working director…

jsoupを使ってScalaのHTMLテンプレートのテストをする

ScalaのPlay Frameworkでの開発をしていると、HTMLテンプレートの中でちょっとした条件分岐を書くことがある。そういう時に毎回手動で確認するのも大変なので、簡単なテストくらいは書いておきたいと思った。そこで今回はjsoupを使ってテストを書くのを試し…

Play FrameworkのテストのGuiceOneAppPerSuiteとGuiceOneAppPerTestの違いを調べた

PlayFrameworkでのcontrollerのテストのやり方メモ - $shibayu36->blog; でPlay FrameworkにおけるControllerの基本的なテスト方法について学んだ。ただ、テスト用のApplicationを作るためのtraitにGuiceOneAppPerSuiteとGuiceOneAppPerTestというのがあって…

PlayFrameworkでのcontrollerのテストのやり方メモ

PlayFrameworkでcontrollerのテストどうやるんだろうといろいろ試してみたのでメモ。Play 2.6.3を使っている。 基本的なやり方 play-scala-seed.g8というのに、基本的なControllerとそのテスト方法について書かれているので、それを真似れば良い。 controlle…

ScalaTestのshouldBeとmustBeの違いは何か

ScalaTestのMatchers系にshouldBeとmustBeがあって、どういう違いがあるのだろうと気になったので調べてみたのでメモ。http://www.scalatest.org/user_guide/using_matchers を読むと、 Trait MustMatchers is an alternative to Matchers that provides the…

【Scala】Emacsで現在編集している部分のテストを実行する

Scalaのテストを実行する時、sbtを使うと、特定のテストクラスだけの実行や、特定のテストケースだけの実行ができる。やり方はScalatest: 特定のテストケースだけ実行したい - Qiita で紹介されているとおり。ただ、コードはテキストエディタで書いているの…

Scalaスケーラブルプログラミングを再読した

最近ScalaやPlay Frameworkを触っていて、implicitを多用したコードや関数リテラルを使ったDSL的なコードなどが読めずに困ってきたので、もう一度Scalaスケーラブルプログラミングを読んだ。Scalaスケーラブルプログラミング第3版作者: Martin Odersky,Lex S…

ターミナルのsbtで起動したプログラムをIntelliJのデバッガでデバッグする

最終的に結構簡単な設定で出来たのだけど、いろんな情報に右往左往させられてしまったので、自分用にメモをとっておく。 やりたいこと Scalaで開発する時、基本的にターミナルでsbtを起動して、runとかtestとかを実行している。その時、挙動を動かしながら確…

Scalaの開発環境をセットアップした

Scalaを書くことになったので、Scalaの開発環境をセットアップした。Emacsで編集できるように scala-modeを使って編集 ensimeを導入し、できる限り動作が重くならないように tagsファイルを使って定義ジャンプをできるように IntelliJとEmacsを行き来できる…

Scalaの関数リテラルの学習メモ

Scalaスケーラブルプログラミングを読んでいて、関数リテラルについて気になったことがあったので、いろいろ試したことをメモしておく。Scalaスケーラブルプログラミング第3版作者: Martin Odersky,Lex Spoon,Bill Venners,羽生田栄一,水島宏太,長尾高弘出版…

Emacsで開いているファイルの現在行をIntelliJで開く

http://www.shigemk2.com/entry/from_emacs_to_inteliJ を参考に、EmacsからIntelliJへ、IntelliJからEmacsへのジャンプが出来るようにしたのだが、EmacsからIntelliJに飛ぶ時に現在の行位置に飛んでくれなかったので改良した。以下のようなコマンドをelisp…

Coursera Machine Learning Week3の学習

Coursera Machine Learning Week1を受けた & メモ - $shibayu36->blog; Coursera Machine Learning Week2の学習 - $shibayu36->blog; に引き続き、Coursera Machine Learning Week3を受講した。 Week3の講義を受けると次のことを学ぶことができた。 分類問題…

雑に書いたブログ記事が問題を起こさないようにする工夫

ちょっとしたことでも雑にブログに書いておくと良いことが起こる - $shibayu36->blog; で、ちょっとしたことでも雑にブログに書いておくと良いことが起こるよということを書いた。さらに余談として最低限の雑さについても書いた。 これをきっかけに、公開の…