読者です 読者をやめる 読者になる 読者になる

@Konboi memo

主に技術に関してつらつらと。

エンジニアの立ち振舞: 出来ない時でも代価案を出す

お題「エンジニア立ち居振舞い」

はじめに

エンジニアの立ち居振舞いについての知見を集めていきたい

というお題があって面白そうなので乗っかってみる 今回は出来ない時でも代価案を出すについて

代価案を出す

エンジニアをやっているとディレクターから

  • 〇〇みたいなのできない?
  • ××使って△△みたいなことやりたいんだけど

と依頼を受けることがある。

調べて実現可能なことなら「できますね」と答えられるのだが、公開されているAPIの制限だったりで技術的に困難なことがあることが少なからずある

そういう時は 「できないですね」で終わるのでは無く

  • 「〇〇みたいなことはできないですけど、 ♢♢ぐらいならできますよ」
  • 「××を使っては難しいですけど、□□を使ってなら△△は実現できると思います」

と必ず代価案を提示するようにしている。

理由としては

  • 本来実現したい事は質問の内容が全てではない事が多い
    • ディレクターが気を使って例を上げてくれている事が多い
    • 本来やりたいことは似ているが別の事がある
  • いちエンジニアとして出来ないとだけ答えるのは悔しい
  • 代価案を出すことで〇〇さんにとりあえず聞いてみるかみたいな空気が出来る

パッと思いつく程度ではこのぐらいかな (もっとあると思うけど)

最後に

  • 色々な立ち振舞が出てくると嬉しい
  • 参考になるものがあれば真似していきたい

みんなのGo言語を読んで

golang Go言語 感想

iPhone7の発表やRubyKaigiのことでTLが賑わう今日この頃、みなさんいかがお過ごしでしょうか。 自分は新型PS4が気になるところです。

さてみなさん、明日 9月9日は何の日でしょうか?

そうですね!! みんなのGo言語 の発売日ですね!!

みんなのGo言語[現場で使える実践テクニック]

みんなのGo言語[現場で使える実践テクニック]

著者の1人である @fujiwra さんから発売日より、一足先に頂くことができたので読んだ感想を書かせていただきます。

はじめに

自分は業務のメイン使用言語はPerlで業務で使っているツール類(rmlp, google-play-review-watcher をGoで書いたり、趣味で使うツールも最近はGoメインで書いている感じです。

なので、今回の感想はそんなバックグラウンドがある人が書いた感想だと思っていただければと思います。

感想

各章どんなことが書かれているのかは @soh335 さんが書かれている

みんなのGo言語【現場で使える実践テクニック】 に よくまとめられているのでこちらをご覧下さい。

全体的に自分の知らなかった知識や改めて理解を深めることが多く全体的にとてもためになりました、読んでいて特にためになったのは

  • @fujiwaraさんによる3章の実際のアプリケーションを書くにあたってのテクニック集
  • @deeeetさんによる実用的かつ保守しやすいコマンドラインツールをつくるため

の章が特にためになりました

3章

自分が担当しているサービスのプロダクション環境で実際に利用しているstretcherfluent-agnet-hydraの開発を通して得た知見を惜しみなく紹介してくれています

  • Goで外部コマンドを使うときって…
  • この処理にタイムアウト機能をつけたいんだよな
  • goroutineを途中で止めたいんだけど

とアプリケーションやコマンドラインツールなどを作っていて 以上の事を調べたり/嵌ったりしたことがある人は読む価値があると思います。

また、以下の発表資料を読んでなるほど~~~ってなった人も、詳しく説明がされているのでオススメです。

4章

Goはクロスコンパイルが可能なので、Goを使ってコマンドラインツールを作ってみた人もいるのでは無いでしょうか。

そんな中で、

  • flagってどうやって使うんだ?
  • ディレクトリ構成どうしよう
  • テストどうやって書くかな
  • など

コマンドラインを一作ったことがある人は一度は経験した(嵌った)であろう事柄が紹介されているので、 コマンドラインツールを作った事がある人/これから作ってみようかな と思っている人はいかがでしょう。

表紙

かわいい

f:id:Konboi:20160906151604j:plain

さいごに

@fujiwaraさん、著者の皆様、技術評論社様ありがとうございました

No patch utility found の対処法

perl plenv
$plenv install 5.xx.xx 

…

No patch utility found
ABORT

となりエラーになった

$ which patch
/usr/bin/which: no patch …

となり patch コマンドがインストールされていないのが原因だった

$ sudo yum  install -y patch 

して無事解決

めでたしめでたし

参考記事

"No patch utility found"の対処法 DQNEO起業日記

brewでのnginx openrestyのインストールに嵌ったのでメモ

はじめに

OpenResty を使ってやりたいことがあったので 手元の環境(Mac)にhomebrewを使ってインストールしようと思ったらエラーがでて嵌ったのでメモ

TL;DR

brew install opensll
brew link --force opensll
brew install ngx_openresty

エラーになる

nginx openresty を homebrew でインストールする場合は

$ brew install ngx_openresty

でインストールできる

ただ、今回実行したら

...
checking for OpenSSL library ... not found

./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.
...

のような感じでopnesslのパスが見つけられない様子でエラーになった

解決方法

homebrewopensslをインストールしたら解決した

brew install openssl

このままだと /usr/bin/openssl が参照されるので

brew link --force openssl
source ~/.zshrc

これで homebrewでインストールしたopensslが参照されるので

brew install ngx_openssl

が上手く行った

net/httpで静的ファイルを返す

Go go static

追記 (2016/04/13)

完全に読み間違えていましたね やっちゃいけないそうです

shogo82148.github.io

やるならこう

func main() {
  http.HandleFunc("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))
  http.ListenAndServe(":3000", nil)
}

まとめ

ドキュメントをみましょう


軽いwebアプリケーション作ってたら読み込んだjsがhtmlでエラー出てて??? ってなってた

よくよく調べたら /static 以下のhandlerを定義してなかったので/にマッチしてtopのhtmlが返ってきてたからだった

調べたらこんな感じで静的ファイルを返せばよさそう

http.Handle("/static/", func(w http.ResponseWriter, r *http.Request) {
        http.ServeFile(w, r, r.URL.Path[1:])
})

stackoverflow.com

GoでMySQLからdatetimeのデータを引いてtime.Time に食わせるときに嵌った

go Go golang mysql DB
db, err := sql.Open("mysql", "<user>:<password>@/<db name>?parseTime=true&loc=Asia%2FTokyo")

parseTime=true をつけるといい感じにparesしてくれる

ただこれだとUTCになるっぽうので loc=Asia/Tokyo をつけるとよい

github.com

#shibuyago #2でLTしてきました

Go shibuyago 発表エントリー 発表資料 redis Redis

はじめに

@suzu_v さん VOYAGE GROUP さん会場提供及び、 🍺と🍕の提供ありがとうございました

発表資料

こちら発表資料になります

自分のツールの紹介もしつつ、時期的に新卒氏にも読んで欲しい内容にまとめた感じです

さいごに

  • 最初からビール飲みピザ食べれるのはお腹減らなくて良いですね
  • ただ、ビール最初に飲んじゃうと発表時に大分眠くなるという罠w