September 26, 2017

IntelliJ で API のレスポンスを確認する

IntelliJ だけじゃなくて JetBrains 製の IDE であればどれもいけると思います。 ローカルで API サーバを起動して、挙動確認したい時、 Terminal で curl, httpie など使ってリクエストを投げるのもいいんですが、 IntelliJ には REST Client という Plugin があるのでそれを使うと楽にテストできてよいです。 API に限定した話ではなく、 HTTP リクエストを投げて、レスポンスを確認したい時全般に使えますね。 詳しいことは ↓ この辺に書いてある模様。 REST Client Tool Window - Help | IntelliJ IDEA Tools > Test RESTful Web Service を選択。 するとこんなウィンドウが開くので、適当な値を埋めて Submit Request すればいいですね。 Response を fold したり、検索したりもできる。 おしまい。

September 22, 2017

Promise の挙動確認

意図しない挙動の Promise // promise.js const hoge = () => { console.log('1') return Promise.resolve() } const wait = () => { setTimeout(() => { console.log('2') return Promise.resolve('Promise') }, 1000) } const fuga = msg => { if (typeof msg === 'undefined') { msg = 'World' } console.log('3') console.log(`Hello, ${msg}!`) } const main = () => { hoge() .then(wait) .then(fuga) } main() $ node promise.js 1 3 Hello, World! 2 意図したとおりの Promise // promise. ... Read more

September 20, 2017

Hello, Cargo!

Cargo に触れた時のメモです。 Cargo の役割 はじめる によると Cargo は コードのビルド コードが依存するライブラリのダウンロード それらのライブラリのビルド を担うそうです。 パスを通す .zshrc に source $HOME/.cargo/env など書きます。 その後、 source ~/.zshrc などすると cargo コマンドが使えるようになります。 $ cargo --version cargo 0.21.0 (5b4b8b2ae 2017-08-12) cargo new $ cargo new rust_hello_cargo --bin Created binary (application) `rust_hello_cargo` project rust_hello_cargo というディレクトリができて、適当にファイルが作られています。 $ cd rust_hello_cargo $ ls Cargo.toml src Cargo.toml は以下のような内容になっています。 [package] name = "rust_hello_cargo" version = "0.1.0" authors = ["kyokutyo <kyokutyo@gmail. ... Read more

September 20, 2017

cherry-pick には tig が便利

意図しないブランチにコミットを積んでしまうことってあると思うんですが、そんな時に便利なのが cherry-pick です。そして、 cherry-pick する際に便利なのが tig です。 tig とは これです。 Introduction · Tig - Text-mode interface for Git tig での cherry-pick branch-a でやりたかった Add "aaa" を間違えて branch-b でやってしまった例。 branch-a を checkout した状態で tig branch-b します。 branch-b の commit history から cherry-pick したいコミットにフォーカスした状態で Shift + C します。 こいつを cherry-pick するんだな? 的なことを聞かれるので y すれば OK です。 Shift + C です。便利です。偶然知ったんですが便利です。

September 14, 2017

Rust 入門

少し前にやったことを何やってたか忘れてしまうので記録を。。 Hello, Rust! インストール はじめる を見ながら。 curl https://sh.rustup.rs -sSf | sh : 1) Proceed with installation (default) 2) Customize installation 3) Cancel installation 途中でカスタマイズするか聞かれるけど 1 を選んだ。 Hello, Rust! 適当なファイルを作る。 // main.rs fn main() { println!("Hello, Rust!"); } Rust では 4 スペースでインデントするとのことー。 で、コンパイル。 rustc main.rs すると main というバイナリファイルができて ./main すると ‘Hello, Rust!’ と表示されます。 rustc の挙動 rustc filename.rs した場合は filename というファイルができます。 fn hello() { println!("Hello, Rust!"); } と関数名を hello に変えた場合は ... Read more

August 8, 2017

Cloud Functions for Firebase で Slack の scraping bot を作ってみた話(後編)

Cloud Functions for Firebase で Slack の scraping bot を作ってみた話(前編) の続きです。スクレイピングまわりをやっていきます。 3. Cloud Functions 作成 (つづき) HTML を確認する HTML を log に吐いて、どのようなセレクタで抽出するとよいかを確認します。 // functions/index.js const functions = require('firebase-functions') const rp = require('request-promise') exports.bot = functions.https.onRequest((request, response) => { const text = request.body.text if (text !== 'yahoo') { return response.status(200).send('nothing to do') } const uri = 'https://yahoo.co.jp/' rp.get({ uri }).then(body => { console.log(body) }).then(() => { return response.end() }).catch(err => { console. ... Read more

August 1, 2017

Cloud Functions for Firebase で Slack の scraping bot を作ってみた話(前編)

Firebase には Cloud Functions という便利なものがあります。 Cloud Functions for Firebase これを使って Slack bot を作ってみようと思います。 今回は “yahoo” と #random channel で発言すると、Yahoo! のトップページに掲載されているニュースを返してくれる bot にします。 プロジェクトの作成 Slack 側の設定 Outgoing Webhooks Incoming Webhooks Cloud Functions 作成 という流れ。 1. プロジェクトの作成 Firebase console からプロジェクトを追加し、ターミナルで Cloud Function の雛形をローカルに作ります。 mkdir ScrapingBot && cd $_ firebase login // ブラウザで Google アカウントログイン firebase init // Functions にチェックを入れて Enter // さっき作ったプロジェクトを選択して Enter // "Do you want to install dependencies with npm now? ... Read more

June 28, 2017

Firebase Hosting はじめました

Firebase の Hosting 機能使ってみることにしました。 よい点 カスタムドメインで https が使える Let’s Encrypt CircleCI に deploy おまかせできて便利 GitHub の Web インターフェイスでエントリ投稿ができる 注意点 証明書が有効になるまで少し時間がかかる(10 分程度だったか) DNS の設定をせっかちにやっちゃうと SSL 証明書がないままサイトが公開される 開発中にも遭遇したけど、、、 GitHub が調子悪いとエントリの投稿ができない 参考にしたサイト サイトをデプロイする | Firebase カスタム ドメインを接続する | Firebase Hugoでサイト構築してcircleciでdeploy · 3a-classic/3a-classic.github.io Wiki ちなみに静的サイトジェネレータは Hugo 使ってみてます。なんとなく Hugo で作ったサイトを CircleCI で GitHub Pages に自動デプロイ | Born Too Late HugoとCircleCIでGitHub PagesにBlogを公開してみた · Hori Blog とりあえず書く場所の整備はできたので、ぼちぼちやっていきます。 いつか管理めんどくさくなって Medium とかに移しそうな気もする。。

June 27, 2017

🎉

こんにちは。久しぶりにブログ書こうと思います。 :waiwai:

© kyokutyo 2017