PostgreSQLでSQLの結果を見やすく表示したい

PostgreSQLのコマンドラインツールでSELECT文を流したとき、カラムが多かったりデータが長かったりして横に長くなると見にくくて見にくくて。

スクリーンショット 2021-10-19 19.00.11

MySQLで言うところの \G みたいなの無いかな〜と思ってました。そしたらあったんですよ! \x という便利オプションが!

コマンドラインツール上で \x と打つと、Expanded display is on.となって(expanded output の on/off を切り替えられる)、先ほどと同じSELECT文の結果がこう変わります。

スクリーンショット 2021-10-19 19.02.09

これは便利だ〜、目に優しい。

と思ってもうちょっとヘルプを見てたら、なんと on/off だけではなく、auto という設定もあるみたいですね。

# \x auto
Expanded display is used automatically.

とすれば、いい感じに表示を調整してくれるみたい。

id=3の横にながーいデータを表示結果に入れるか入れないかで、いい感じに表示を切り替えてくれました。

社内Slackでどんなリアクション絵文字が使われているか 2020年版

この記事は Classi Advent Calendar 2020 の1日目です。

はじめに


Slackやチャットワークといったテキストベースのコミュニケーションツールを使ってる会社は多いと思います。弊社もそうで、Slackを使って日々いろんなやりとりをしています。そして、その手軽さからリアクションの絵文字もよく使われてます。

Slackでのやりとり、特にリアクションの絵文字って普段のコミュニケーションそのものなので、会社の雰囲気を多少表しているのではないかな〜と思うんです。

実は同じような計測は 2018年の Advent Calender で一度やった んですけど、「そういえば改めてやってみるとどうかな」「2018年と比べてよく使われている絵文字が変わってきたかも?」と思ったので、2年ぶりに計測してみることにしました!「こんな感じなのか〜」と気軽に見てみてください。

測定方法


2018年と同じで、全メンバーが所属しているチャンネルと、エンジニアチャンネルで、直近の投稿1,000件を対象に調べました。

結果


さてさて、結果はどうなったでしょうか!?

全メンバーが所属しているチャンネル



<2018年>
絵文字ランキング(全メンバーチャンネル)

<2020年>
2018年と比べるとよく使われる絵文字が結構入れ替わってます。"素敵" とか良いですね〜!(素敵!)修造さんはたしかにあまり(ほとんど?)見かけなくなりました…
スクリーンショット 2020-11-30 18.13.53

エンジニアチャンネル



<2018年>
絵文字ランキング(エンジニアチャンネル)

<2020年>
こちらも、2018年と比べるとよく使われる絵文字がガラっと入れ替わりました。何と言っても大きな違いは、2018年には1位だった🙇‍♂️ がランクインしなくなったことです。(僕は結構使ってますが、、)

これって大きな変化で、今は "ナイスアクション" だったり "❤" だったり、そういうポジティブな絵文字が増えてきたんだな〜としみじみ思いました。
スクリーンショット 2020-11-30 18.06.13

ポジティブな絵文字といえば、他にもよく見かけるのはこの辺ですね。"えらい" なんかは最近特にお気に入りです。

スクリーンショット 2020-11-30 21.17.35

改めて考えてみると、こういうポジティブな絵文字が増えてきたことはとっても嬉しいなぁと思いました。投稿した人(=リアクションもらった人)は嬉しいし、それを見た周りも嬉しい(ポジティブが循環する)し、良い事ずくめな感じがしています。

例えばこういうやりとり (↓) が、とてもとても好きなんです。 :D

スクリーンショット 2020-11-30 21.39.19

それを書いてたらすぐに突っ込まれてしまいましたが…w
(サイゼリヤ行きたい)

スクリーンショット 2020-11-30 21.47.21

終わりに


ということで、社内Slackでどんな絵文字が使われているかを、2018年と2020年で比較してみました。

この2年の間に多くの人の入れ替わりがあり、特に、新しい人が増えました。当然文化や雰囲気も以前とは変わってきて、それが絵文字の変化にも表れているなと思います。変化していくことはこれからも避けられないし必要なことだと思うので、Unlearnの姿勢で少しでも良い方向に変わっていきたいと思った12月のスタートでした。今年もあと1ヶ月!

社内Slackでどんなリアクション絵文字が使われているか

この記事は Classi Advent Calendar 2018 の25日目です。

会社ではSlackを使っていろんなやりとりをしているのですが、気軽にコミュニケーションが取れるので投稿にはリアクション絵文字を付けることも多いです。「そう言えばどんな絵文字がよく使われているのかな?」と気になったので調べてみました。

↓ いろいろな絵文字が付けられますよね。こういうやつです。
(しんぺいさんの週刊DeveloperSuccess通信が読めるよ!)

週刊デブサク通信

Conversations APIを使おう


slack APIを使って調べていきます。

提供されているAPIの中には、public channelやprivate channel、DMなどをそれぞれ個別に取得できるAPIもあるんですが、いちいち使い分けるのは面倒です。これらをまとめてダックタイピングできるConversations APIというものがあって、これを使うと便利でした。
https://api.slack.com/docs/conversations-api

ダックタイピング

例えばpublic channelの一覧を取得するAPIのページには、こんな記載もあるので従いましょう。

> Don't use this method. Use conversations.list instead.

Rubyで実装


Rubyだったら slack-ruby-client というgemがあるので、これを使ってみます。
こんな流れで、使われている絵文字のランキングを調べます。

  1. conversations.listでチャンネルの一覧を取得する

  2. 特定のチャンネルに対して、conversations.historyでチャンネルのメッセージ一覧を取得する

  3. そのメッセージにスレッドがあれば、conversations.repliesでスレッド情報も取得する

  4. それぞれのメッセージに付けられた絵文字の回数をカウントする

  5. ランキング上位の絵文字を表示する

チャンネルのメッセージは直近のものを1000件取得しています。コードはこちら。
slack-emoji-checker
require 'slack-ruby-client'
require 'pry'

Slack.configure do |config|
  config.token = ENV['SLACK_API_TOKEN']
end

reaction_counts = Hash.new { |h,k| h[k] = 0 }

client = Slack::Web::Client.new

client.conversations_list(types: 'public_channel,private_channel', exclude_archived: true,  limit: 1000).channels.each do |channel|
  next unless channel.name == ENV['TARGET_CHANNEL']
  p channel.name

  history = client.conversations_history(channel: channel.id, count: 1000)
  history.messages.each do |message|
    #p message.text

    # メッセージにリアクションがあればカウントする
    if message.reactions
      message.reactions.each do |reaction|
        reaction.name.sub!(/::skin-tone-\d/, '')
        reaction_counts[reaction.name] += 1
      end
    end

    # メッセージがスレッドであれば、スレッドを取得する
    # スレッド内のメッセージににリアクションがあればカウントする
    if message.reply_count
      thread = client.conversations_replies(channel: channel.id, ts: message.ts, limit: 20)
      thread.messages.each do |message|
        next if message.ts == message.thread_ts

        if message.reactions
          message.reactions.each do |reaction|
            reaction.name.sub!(/::skin-tone-\d/, '')
            reaction_counts[reaction.name] += 1
          end
        end
      end
    end
  end
end

reaction_counts.sort { |(k1,v1),(k2,v2)| v2 <=> v1 }.each_with_index do |(k,v), i|
  exit if i >= 10
  puts "#{i+1}位 :#{k}:"
end

結果発表


結果はどうなったでしょうか!?

まず、全メンバーが参加しているチャンネルの結果です。🎉や👍など、ポジティブなものが多かったです。8位の "めっちゃええやん" は使い勝手もすごく良いので重宝してます。関西の人がそんなに多いわけではないと思いますが。。松岡修造はガッツポーズのような意味合いと思われます。

絵文字ランキング(全メンバーチャンネル)

次に、エンジニアチャンネルの結果です。お願いする系が多いからか、🙇‍♂️が1位でした。10位の "感謝" もよく使います。大事ですね。そしてよく見ると先ほどのランキングにもこちらのランキングにも "神" が登場しています。たしかによく使う…。

絵文字ランキング(エンジニアチャンネル)

まとめ


ということで、社内Slackでどんなリアクション絵文字が使われているかを見てきました。よく使う絵文字ってその会社の雰囲気を表しますよね。

ちなみに、同じ絵文字でもいろんなバリエーションがありますw

絵文字バリエーション

バリュー(行動指針)絵文字も作られていて、日々使われているのでほっこり。その会社独自のカスタム絵文字って面白いな〜!これからもどんどん追加していきたいと思っています。

一緒に絵文字を追加したいよ!という方はこちらから是非。
Classi株式会社の採用/求人一覧 - Wantedly

正解なんて誰にもわからない、そんなときどうするのか

この記事は Classi Advent Calendar 2017 の25日目の記事です。

最終日なのでどうしようかと思いましたが、特にこれと言ってネタがあるわけではないのでポエムを書きました!ギリギリ間に合って良かった。。

謙虚

さて、普段仕事をしていても、いろんな決断があると思います。正解が何なのか明らかな場合もあれば、どうなんだろうと迷う場合もあります。前者であれば迷わないので楽ですが(そもそも決断していることを意識しないかもしれません)、後者の場合には「うーんどうしよう…」となることもあるでしょう。

そんなとき、どちらかを決断するのはとても怖いことですが、以下の記事を読んで少し気が楽になりました。

大切なことは「その意思決定は正しいか?」ではなく「意思決定したことを正しいものにしていく覚悟はあるか」と言うことになるのだと思います。


これは本当にその通りだなと思っていて、AかBかで迷うときって「確実に100%こっちが正しい」なんてことはあり得ません。実際は49対51とかそういう微妙な差だったりすると思います。最終的には「こっちだ!」と決断し、自分の選択を正解にしていくしかないと思いますが、そこに至るまでの考え方や行動は日々改善できるかなと思います。

『Team Geek〜Googleのギークたちはいかにしてチームを作るのか』

言わずと知れた名著です。HRTが大事だよね、というアレですね。あらゆる人間関係の衝突は、HRTの欠如によるものだと書かれています。

Team Geek ―Googleのギークたちはいかにしてチームを作るのか

謙虚(Humility)
世界の中心は君ではない。君は全知全能ではないし、絶対に正しいわけでもない。常に自分を改善していこう。

尊敬(Respect)
一緒に働く人のことを心から思いやろう。相手を1人の人間として扱い、その能力や功績を高く評価しよう。

信頼(Trust)
自分以外の人は有能であり、正しいことをすると信じよう。そうすれば、仕事を任せることができる。

HRTについては弊社のエンジニア行動指針にも入れています。

謙虚・尊敬・信頼、どれも大切ですが、まずは何よりも謙虚がポイントだと感じています。「謙虚な姿勢で」尊敬、信頼している周りの意見をしっかりと聞く。そしてそれらの意見を考慮した上で最終的には判断する。そしてそれが正解になるように進めていく。そんな風に思っている今日この頃です。(やれているとは言っていない)

もうちょっと整理したいけど時間が無い…!メリークリスマス!

Real Tech Night というイベントで話しました #realtech

この記事は Classi Advent Calendar 2017 の12日目の記事です。

『リアルxIT』という切り口で、トレタさん、JapanTaxiさん、Classiでイベントを行いました。

Real Tech Night 〜ITの力でリアルな世界に革新を起こす企業〜
Real Tech Night

そのときのClassiの会社紹介の資料がこちらです。

資料の最後の方に載せてますが、僕としては「何をやりたいの?」という聞かれたら「これをやりたい!」と答えます。

> 教育のド真ん中である学校をより良い場所に



最近はEdTechな会社が増えてきていますが、どうしても塾や家庭教師といった周辺領域に関わるサービスが多いです。そんな中、教育の "ド真ん中" である学校を変えようとしていることはとても面白いなぁと思っています。

自治体や学校によっていろいろな制約もありなかなか簡単にはいかないですが、一歩一歩、子供たちが必ず多くの時間を過ごす学校を、今よりも少しでも良い場所に。そんな想いで日々泥臭くやっています。

日本の高校の4割に導入されるようになり、とてもとても有難いです。でも、8割9割ともっと導入を進めていかないといけないなと感じています。そうじゃないと自分の子供が通う学校で使ってない、なんて事態になっちゃいますからね。><

Classiには三者面談等で使える機能もあるんですが、いつか、自分の子供の三者面談で先生が使っている場面に遭遇したいなと妄想してます。

先生「○○くんは最近はこうなんです。部活はこうですね」
ささたつ「先生、それはこっちのボタンです」
先生「えっ、ど、どうしてそんなに詳しいんですか!?」
ささたつ「実は作ってまして///」
息子氏「!!!」

みたいなw 引き続き頑張ります!
karaage299 at gmail.com