メンチカツ

ロースカツが好きです

【メモ】Lambda Functionはtypoに寛容だ

Alexaのスキルを作る予定があり、初めの一歩のチュートリアルとして、こちらを参考にさせていただきました。

datahotel.io

datahotel.io

Echoデバイス - Alexa - Lambda間のデータの流れが把握しやすく、非常にわかりやすいチュートリアルです。

早速取り組み、ビルドを完了させ、Alexa Skills Kit開発者コンソールでテストをしてみるも何故か動作しない。

数時間調べて、typoしていたことを発見。typoというか、チュートリアルインテント名が「siritori」となっているところを「shiritori」と定義していました。

Lambda Functionで存在しない要素を参照してもエラーにはならないということがわかりました。

期待した動作にならないときって、ついエラーログとか探してしまうのですぐに気付けませんでした。学びすなぁ。

brew install go-delve/delve/delve で「undefined method `check_for_bad_install_name_tool'」

brew install go-delve/delve/delve

で、以下のエラーが出ました。

Upgrade to delve fails https://github.com/go-delve/homebrew-delve/issues/20
/usr/local/Homebrew/Library/Homebrew/exceptions.rb:426:in `block in dump': undefined method `check_for_bad_install_name_tool' for #<Homebrew::Diagnostic::Checks:0x007fb983297950> (NoMethodError)
Did you mean?  check_for_tap_ruby_files_locations

issueへのリンクがあるので確認。

github.com

結果、以下で解決できました。

cd $HOME/Library/Caches/Homebrew
tar xf delve-*.gz
ls delve-* # ↑で解凍したフォルダを特定
#=> delve-1.0.0.tar.gz
#
#delve-1.0.0:
#CHANGELOG.md      ISSUE_TEMPLATE.md README.md         assets            glide.yaml        service
#CONTRIBUTING.md   LICENSE           _fixtures         cmd               pkg               vendor
#Documentation     Makefile          appveyor.yml      glide.lock        scripts
sh delve-1.0.0/scripts/gencert.sh # 解凍したフォルダのスクリプトを実行。パスワードを聞かれます。

CGO_ENABLED=1 brew install go-delve/delve/delve

【メモ】VSCode on Macで「Cannot find "go" binary. Update PATH or GOROOT appropriately」

GOROOT設定済みの環境で、VSCodeにgoのプラグインを入れたあと「Cannot find "go" binary. Update PATH or GOROOT appropriately」と言われることがあります。

これは、VSCodeのデフォルトshellがbashだから。 上記のメッセージが出る人は、ふだんzshなどを使っていて、bashじゃないrcにGOROOTを設定しているのだと思います。

command + , でユーザー設定を表示し、「既定の設定を上書きするには、このファイル内に設定を挿入します。」の中かっこの中の末尾に"terminal.integrated.shell.osx"の設定を追加します。

// 既定の設定を上書きするには、このファイル内に設定を挿入します。
{
     ・・・
     "terminal.integrated.shell.osx": "/usr/local/bin/zsh" //zshの場合
}

このあと、VSCodeを再起動すると問題が解消され、ターミナルも普段使っているshellになっていると思います。

--

参考にさせていただきました。

qiita.com

macのgvm導入時に発生する色々なエラーに対応する

macにgvmで環境設定するとき、まずはじめに1.4を入れとかないとダメとかの前提条件があり、毎度はまっている。

自分の欲しいバージョンだけ導入しようとすると、"gvm fatal error: MSpanList_Insert"とか"cannot find package"とか言われる。ほんとアホのように毎回言われてるのでメモ。 gvm公式のやつ

github.com

でなぜかうまくいかない人(私)向け。

brew install go # まずbrewのをinstall
export GOROOT=/usr/local/opt/go/libexec/ # brewのインストールパスを設定
export GOROOT_BOOTSTRAP=$GOROOT

gvm install [お好きなバージョン]
gvm use [お好きなバージョン] --default #ここでGOROOTもGOPATHもgvmを向く

brew uninstall go # gvmのgoと混乱するので消しとく

ターミナル再ログイン時にgvmにパスが通ってなかったら、~/.zshrc的なところに

[[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm"

を書いて再ログインする。

【メモ】会社で話し相手がいないエンジニアはRebuild.fm聴けばいいと思う

音楽を聴く女性

話し相手がいないっていうか、

エンジニアあるある言いたいときに話せる相手がいない。 共感してくれる人がいない。 話したところで「?」とさせてしまう。

って状況ありませんか?

そんなときはイヤホンでpodcastですよ。 JUNK とかもそりゃあ面白いですが、エンジニアさんにはRebuild.fmがオススメです。

rebuild.fm

超!意識高い!!という感じでもなく、等身大の(とはいえ滅茶滅茶優秀な)エンジニアさんの「最近どう?」が無料で聴けます。 あるある、わかる、なるほどーって場面が結構あります。

共感の足りない環境に長くいると、少しずつ枯れていくような気分になりますが、 こういったツールから栄養をもらうことで、心が上向きに元気になれる気がします。

技術系記事もいいのですが、読むぞ!ってモチベーション、元気がないと、なかなか読めない。 その点音声ですから聞き流すだけで良いという。いわばスピード○ーニングですよ。ありがたいことです。

今日もがんばって行きましょうー

jQuery ajaxのレスポンスステータスが302のときに対応する

f:id:easy-breezy:20180319173817j:plain こんにちは! anguler,redux(on SPA)のプロダクトを経て、今月は訳あってjQuery(on MVC)を書いています。 久々の記述形式に戸惑いが多いですが、頑張っていきましょう。

認証が必要な環境下で、ajaxjsonを取得するとき、認証のセッションが切れていることがあります。

$.ajax({
  type: "GET",
  url: "/users"
})
.done(function(response, status, xhr){ 
  //responseにはjsonで欲しい値が返却される
  //が、セッションが切れてるとリダイレクト後のログイン画面が返却される
});

リダイレクト後のログイン画面が返却された場合もステータスコードは302でなく200になるので、レスポンスヘッダーの content-type を見て判断すると良いようです。

jquery how to check response type for ajax call - Stack Overflow

$.ajax({
  type: "GET",
  url: "/users"
})
.done(function(response, status, xhr){ 
  var ct = xhr.getResponseHeader("content-type") || "";
  if (ct.indexOf('html') > -1) {
    //どうやらログアウトしているらしい。
  }
  if (ct.indexOf('json') > -1) {
    //本来欲しかった返却値
  } 
});