Ruby,Slack

こんにちは、しきゆらです。

前回・前々回とSlackとのやり取りをさっくりと確認していました。

前回の記事

【Ruby】Slack Botことはじめ

前々回の記事

【Ruby】Slack Appことはじめ

タイトルが似ているので間違えそうですね・・・。

Slack AppがBotも含んだ広い意味でのSlack上で動くアプリ全般を表しています。

Slack BotはAppの中でもBotとして振る舞うようなアプリを指しています。

 

今回は、Slack Botでもう少し複雑なこともしたいので、RTMを利用してみます。

 

RTMとは?

タイトルにもある通り、Real Time Messaging APIの略で

Slackと常に接続し、ユーザの動きを監視して特定の行動が起こったら反応する、というようなことができるAPIです。

例えば、

  • ユーザが入力を始めたとき、通知する
  • メッセージが変更されたとき、前後の差分を表示する

などができそうです。

この辺は発想次第でなんとでもできそうですね。

 

では、実際に使って行きます。

 

Linux,Mac

こんにちは、しきゆらです。

今回は、特定のバックグラウンド処理をログアウト後も継続してほしいときに使えるコマンドを知ったのでメモしておきます。

 

何らかの処理をバックグラウンドで処理させていて、ログアウトすると

そのタイミングでバックグラウンドの処理は止まってしまいます。

処理が終わるまで継続してほしいが、自分はログアウトしたい。

そんなときには、「nohup」コマンドを使いましょう。

【 nohup 】コマンド――端末を閉じてもログアウトしても処理を続ける

http://www.atmarkit.co.jp/ait/articles/1708/24/news022.html

ログアウトしてもバックグラウンド ジョブを継続する方法

https://www.codereading.com/nb/ignore-the-hangup-signal.html

 

nohupコマンドの使い方

バックグラウンドで処理させたいときは、こうすると思います。

command &

これだと、ログアウトしたときに止まってしまうようです。

 

nohupコマンドは、この前につけてあげます。

nohup command &

これにて、commandはバックグラウンドで実行されて、ログアウトしても処理が終わるまで続けてくれます。

 

 

まとめ

簡単ですが、バックグラウンド処理をログアウトしても止めずに続けて貰う方法でした。

SSH接続時などでは威力を発揮しそうなコマンドでしたね。

 

今回は、ここまで。

おわり

Ruby,Slack

こんにちは、しきゆらです。

前回はSlackのAppを作ってみました。

前回の記事

【Ruby】Slack Appことはじめ

 

今回は、Botを作っていきます。

といっても、前半は前回の記事とほぼ同じになります。

詳しい手順は、続きからどうぞ。

 

Ruby,Slack

こんにちは、しきゆらです。

今回は、最近話題のSlackのAppを作ってみます。

 

Slackは、最近色んな所で使われているチャットツールです。

こいつは、ただのチャットツールではなく、様々なAPIやサービスと連携できたり

アプリとして自分で拡張することができるなど、自由度がかなり高いツールとなっています。

 

いろんな事ができるようAPIも公開されています。

これを利用して自分用のAppを作ってみましょう。

 

JavaScript,React

最近のフロントエンドは、様々なツールやフレームワーク、ライブラリ等を利用し、

いろいろなものを組み合わせてコーディングしているようです。

こうなってくると、細かいファイルが沢山生成されていきますね。

それぞれの管理をどうするのか、というと細かいファイルをガッチャンコとまとめてくれるツールを利用するわけですね。

 

今回触るparcelもがっちゃんこしてくれるツールの一つです。

公式サイト

https://parceljs.org

特徴といえば、設定ファイルがないこと。

Webpackは便利で情報も多く、導入している方も多いかと思いますが、設定ファイルを作るのが、なんとも面倒。

parcelさんは、そんな面倒さをなんとかしてくれるかもしれない救世主となるのか。

 

ということで、今回はparcelを導入し実際に実行してみて便利さを味わっていきます。

 

日記

こんにちは、しきゆらです。

前回もすこし書きましたが、これまで利用していたレンタルサーバから別のところへ移行しました。

はじめてのことだったので、今回の流れをメモしておきます。

 

結果から言うと、とても楽ちんでした。

 

 

日記

こんにちは、しきゆらです。

これまで使っていたサーバから別のサーバへ変えてきました。

なんとも、WordPressを使うと簡単でとても楽ちんでした。

当分はこのサーバを使ってみて、なんともなければこちらへ本格移動しようかと思います。

 

今回はここまで。

後ほど、移行の流れをメモしておきます。

 

おわり。

JavaScript

こんにちは、しきゆらです。

台風の影響で天気が悪いですね。

それに伴い、やる気もどこかに飛んでいってしまいました。悲しい。

 

以前、JSで特定の要素のみを前/後ろにまとめる記事を書きました。

【JS】特定のものを前/後ろにソートする

https://wp.me/p6IU5Y-cm

この後、色んなサイトを眺めていると、よりきれいに書く方法を知ったのでメモしておきます。

 

眺めたサイトは以下。

JSのsortに渡す関数は、正負もしくは0を返すことでソートしてくれます。

これを生かして、より簡単に各方法を示してくれていました。

 

今までは、以下のように愚直に分岐させていました。

function(item1, item2){
  if(item1 < item2) return -1;
  else if(item1 > item2) return 1;
  else return 0;
}

しかし、比較するものを計算して、その結果を返す関数を渡しても良いとのことでした。

例えば以下のような感じ。

array = [1,2,3,4,5];
array.sort(function(item1, item2) {
  return item1 - item2;
});

item1とitem2にはarrayの中にある数が渡されてきます。

この2つを計算し、その結果をそのまま返してしまうのです。

パッと見はよくわかりませんが、計算の結果は以下のようになるはずです。

  • item1 < item2 のとき、item1 – item2 < 0
  • item1 = item2 のとき、item1 – item2 = 0
  • item1 > item2 のとき、item1 – item2 > 0

このようになり、きちんとソートしてくれるわけですね。

 

これは、目からウロコでした。

条件式で記述すると3行は使う内容ですが、引き算で表現すると1行で済んでしまいますね。

正直パっと見てわからないと思うので

可読性を取るか、記述量を取るか、という状況かな、と思います。

 

なお、以前の記事を今回の方法で書き換えるとするとこうなると思います。

array = [1,2,3,4,5,6,7,8,9];
array.sort((item1, item2) => {
  return 3 - item1;
});
// => [3, 4, 5, 6, 7, 8, 9, 2, 1]

このようにすると

  • item1 < 3 のとき、 3 – item1 > 0
  • item1 = 3 のとき、 3 – item1 = 0
  • item1 > 3 のとき、 3 – item1 < 0

となり、想定通りの動きをしてくれます。

 

今回はここまで。

おわり。