【Miro】Miro Liteがリリースされたので試してみた

はじめに

コロナの影響でリモートワークが始まり自宅にホワイトボードがなく困っていました。
ホワイトボードの代わりとなるものを探していたところ見つけたのが Miro でした。

最初はフリープランで使っていたのですが、柔軟に使えるようにしたいと思い
「Consultant Plan」を契約しました。

miro.com

ホワイトボードの数も無制限に作れプライベートボードも作れる。
さらにパスワード付きで共有もできたりします。

また、ツールもかなり揃っておりこれだけでだいぶ捗るようなものになっています。

Miroとは?

はじめにに書いた通り、Miroはオンラインでコラボレーションとするホワイトボードプラットフォームです。
ディスカッションやブレインストーミングアジャイルワークフローなどの計画や管理まで可能なツールです。

詳しくは以下のページ、動画をご覧ください。

help.miro.com

問題点

通常のMiroには問題点がありました。

  • ログインしないと使えない

これは地味にハードルが高いものだと今回の件で改めて思ったことです。
サインアップ、サインインせずに気軽にオンラインホワイトボードを使うことはできないのか?と思ったこともありました。

そこでMiro Liteというのがリリースされました。

Miro Liteとは?

Miro Liteはサインアップ、サインインなしで使える無料のシンプルなオンラインホワイトボードとなっています。
ブレインストーミングや1on1で使えそうなものは一通り揃っていると書かれているので実際に触ってみました。

help.miro.com

使い方

まず http://miro.com/lite/ にアクセスします。

説明が出てきますがそのまま「Create a board」をクリックします。 f:id:fujikawa-y:20201118101341p:plain

そうするとURLにランダムな値が付与されたURLが作成されます。

f:id:fujikawa-y:20201118095142p:plain

サインインしていないブラウザだと説明が載ったホワイトボードが作成されます。 f:id:fujikawa-y:20201118101535p:plain

すでにサインインしているブラウザかつ1度でもMiro Liteを使ったブラウザだと画面はこんな感じでいつものMiroですね。 f:id:fujikawa-y:20201118095429p:plain

Chromeのシークレットウインドウで別ユーザーとしてアクセスしてみます。 f:id:fujikawa-y:20201118095508p:plain

ユーザーが2人いることになっています。

テンプレートやツールについて

通常のMiroとどのくらい機能の差があるか確認します。

Miro Lite f:id:fujikawa-y:20201118095720p:plain

かなりテンプレートが絞り込まれ必要なものだけになっているという考えでいいと思います。
ツールはペンや付箋、矢印があるのでこれだけあれば問題なさそうです。

比較としてMiroのテンプレートは以下の通りです。 f:id:fujikawa-y:20201118095950p:plain

使ってみた

動画を残せていないのですが、実際に操作した結果がこんな感じとなります。

f:id:fujikawa-y:20201118100554p:plain

残したい場合は画像かPDFに残すことができます。

f:id:fujikawa-y:20201118100758p:plain

サインアップ、サインインしていない場合はユーザー登録をして残す動線のようです。
なお、サインインした状態で Miro Lite のホワイトボードを見ると保存できるUIとなりました。

f:id:fujikawa-y:20201118100935p:plain

注意点

画像を見てわかる通り 24時間 は保持されるようですが、24時間経ったら消されてしまうようです。

まとめ

Miroは他のオンラインホワイトボードでも一歩先を行っていると思っているものなのでぜひ使ってみてはいかがでしょうか。

【Ruby】【Clean Architecture】オープン・クローズの原則をRubyで書いてみた

はじめに

最近、クリーンアーキテクチャの話が話題に上がっており
「理解したつもりでもコードで示さないと理解したことにならない」
という気持ちがあったので簡単ではあるが、Rubyで書いてみました。

環境

前提条件

ruby コマンドで実行できること

実行

オープン・クローズの原則に沿っていないコード

clean_architecture_ruby/order_service.rb at main · Y-Fujikawa/clean_architecture_ruby · GitHub

# frozen_string_literal: true

class OrderService
  # OCP(オープン・クローズの原則)に反したメソッド
  # 新たな条件が追加された場合、既存メソッドを修正しないといけない
  def order(order_type = nil)
    case order_type
    when 'eat_in'
      # 店内の処理
      p '店内'
    when 'take_out'
      # 持ち帰りの処理
      p '持ち帰り'
    when 'delivery'
      # 配達の処理
      p '配達'
    else
      # それ以外
    end
  end
end

order_type = 'take_out'
OrderService.new.order(order_type)

オープン・クローズの原則に沿っているコード

clean_architecture_ruby/ocp/after at main · Y-Fujikawa/clean_architecture_ruby · GitHub

# frozen_string_literal: true

require_relative './order/eat_in.rb'
require_relative './order/delivery.rb'
require_relative './order/take_out.rb'

class OrderService
  def order(order_type = nil)
    order_type.call
  end
end

order_type = EatIn.new
OrderService.new.order(order_type)

clean_architecture_ruby/ocp/after/order at main · Y-Fujikawa/clean_architecture_ruby · GitHub

# frozen_string_literal: true

class EatIn
  def call
    p '店内'
  end
end
# frozen_string_literal: true

class TakeOut
  def call
    p '持ち帰り'
  end
end
# frozen_string_literal: true

class Delivery
  def call
    p '配達'
  end
end

まとめ

文字で説明するよりもコードの方がわかりやすくていいですね。
これを機にコード化できるところはしていきます。

参考

【iOS】【2段階認証】iOSの2段階認証を「Google Authenticator」から「Microsoft Authenticator」にした

はじめに

新しいiPhoneが発売されました。
早速、移行しようとしたしたのですが、単純にやってしまうと移行しなくて積む可能性があったので念の為確認していました。

その結果、以下が1番気をつけなければいけないようです。

上記あたりが1番慎重にやらないといけないもののようです。

  • モバイルSuicaは一旦削除して、新しいiPhoneで登録すればいけそう。
  • LINEはバックアップの手順が公式で書かれているので問題なさそう。

問題なのは「二段階認証アプリ」でした。
もともと「Google Authenticator」を使っていたのですが
問題点として iCloudにバックアップが取れない というところです。

iPhoneXSにしたときよりも2段階認証するサービスの数が増えており
仕事でも使うようになり、かなりの数となりました。

環境

調査

入れ替える条件は以下の通りです。

  • Google Authenticatorと同等以上の機能があるもの
  • iCloudでバックアップできるもの
  • 2段階認証アプリ自体にもFaceIDなどをつけられること(つけられなくてもOK)

結果

Microsoft Authenticator にしました。

Microsoft Authenticator

Microsoft Authenticator

apps.apple.com

まず、条件に全て満たしておりマイクロソフトから出ているというのがあったからです。
バックアップ方法について、個人用 Microsoft アカウント の作成が必要ですが
Gmailアカウントを使って作成できるので手間ではありませんでした。

ドキュメントは以下の通りです。

docs.microsoft.com

まとめ

パスワードつきでiCloudにバックアップを取っておいて
そのまま2段階認証もすべて移行できるようになりとても楽になりました。

【CloudFront】【Lambda@Edge】オリジンレスポンスでリダイレクト処理を入れる方法

はじめに

AWSでSPA(シングルページアプリケーション)のインフラ部分を作っているときに
要件として
「トップページやその配下のディレクトリにもページがある。ただし、ないディレクトリが指定されたらリダイレクトする」
という話をもらいました。

それまではトップページしかなかったので、トップページ以外の場合はリダイレクトしていたが
配下のディレクトリにも気を配る必要があります。

それを解決するために Lambda@Edge を使って対応してしました。
すぐに忘れてしまいそうなので簡単にですが手順をまとめておきます。

環境

前提条件

  • AWSコンソールにログインできること
  • Lambda@Edgeを作成できるIAMユーザーであること ※CloudFrontが設定されていなくてもいいが、設定されていると検証しやすい

調査

CloudFrontは以下の順で処理されます。

  • ビューアーリクエス
  • オリジンリクエス
  • オリジンレスポンス
  • ビューレスポンス

今回、コンテンツが取れなかった場合なので オリジンレスポンス に対して処理を追加していきます。

対応方法

AWSのドキュメントにやりたいことが書いてあったので、手順通り作成します。

Lambda@Edge 関数の例 - Amazon CloudFront

新規にLambda関数を作成する。

f:id:fujikawa-y:20201022104505p:plain

雛形を修正する。

f:id:fujikawa-y:20201022104532p:plain

AWSのドキュメントに書かれいてたコードを記述する。
そのままだとクエリストリングがそのまま渡ってしまうので不要な処理を削除する。

f:id:fujikawa-y:20201022104550p:plain

$LASTETではLambda@Edgeが使えないのでバージョンを作成する。

f:id:fujikawa-y:20201022104617p:plain

バージョンの発行が行われました。

f:id:fujikawa-y:20201022104637p:plain

この後は、作成済みのCloudFrontに紐づけてあげれば完成です。 紐付けるのはCloudFrontのオリジンレスポンスとなりますので注意してください。

まとめ

これでエラーページではなく、トップページに戻れるようになりました。

参考

Lambda@Edge 関数の例 - Amazon CloudFront

【Datadog】【Rails】Railsのログを出力するとき「日付とプロセスID、リクエストID」を出力されないようにする

はじめに

Webサービスの開発でDatadogのLog Managementを使うときの小ネタ。

lograge というライブラリを使い、Datadog Logsにログを転送していたのですが
標準ログ+JSONという形になってしまいLogsで自動で解析してもらえなくなってしまった。

なので、標準ログも含めたい場合JSONの中に入れてやると良いです。

環境

前提条件

lograge を使って何かしらログが出力されていること。

調査

logrageJSON化したにも関わらず、日付とプロセスID、リクエストIDが出てしまう。

I, [2020-08-24T15:54:36.321933 #1]  INFO -- : [95a6f86c-c6ca-45fa-a9e9-1e6ee241d034] .... 以下略

原因と解決方法

制御しているのは /enviroment/production.log にありました。

# Prepend all log lines with the following tags.
config.log_tags = [:request_id]

# Use default logging formatter so that PID and timestamp are not suppressed.
config.log_formatter = ::Logger::Formatter.new

これを無効にすれば出力されなくなります。

まとめ

これで本番環境で正常にDatadogでログが解析できるようになりました。

参考

Railsのログについて(Rails.logger) | 酒と涙とRubyとRailsと

【AWS】Amazon QuickSightでS3へアクセスできないときの対処法

はじめに

AppFlowを使ってSlackの発言回数を可視化させるために
Amazon QuickSightを使ってみることにした。

その際にハマったところをメモする。

前提条件

  • AppFlowを使ってS3にデータが保存されていること
  • Athenaでデータが取得できること

原因

Amazon S3への許可設定をしていなかった。

現象

f:id:fujikawa-y:20200806094707p:plain

対応方法

以下のドキュメント通りにやったらできた。 https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/troubleshoot-connect-S3.html

f:id:fujikawa-y:20200806094817p:plain

f:id:fujikawa-y:20200806094847p:plain
データが入っているバケットを選択する。

【Ruby】RubyMineでrbenvでインストールしたRubyを指定する

はじめに

RubyMine(以下、IDE) をJetBrains経由で新しくダウンロードして
IDEの設定を設定していたところRubyのバージョンを指定する必要がありました。

筆者は rbenvRubyをインストールしていたため指定方法に
手間取ったので記録として残しておきます。

前提条件

環境

  • macOS Mojave
  • RubyMine version 2020.1
  • rbenvがインストールされていて
    何かしらのバージョンのRubyがインストールされている

やり方

command と , を押して設定画面を開く。

f:id:fujikawa-y:20200418234510p:plain

+ を押して New local... を選択する。

f:id:fujikawa-y:20200418234556p:plain

/Users/{ユーザー名}/.rbenv/versions/2.7.0/bin/ruby を指定する。
※自分の設定がここなので、個々によって違うかもしれません。

f:id:fujikawa-y:20200418234650p:plain

指定したバージョンが表示されればOK

f:id:fujikawa-y:20200418234724p:plain

まとめ

~/.rbenv にあるはずなのですが New local version manager... で指定しても反映されず
その調査をするより直接Rubyのバージョンを指定する方が早いと思いこの通りにしました。

もし、バージョンマネージャーを指定できてる人がいたら教えてもらえると嬉しいです。

参考

https://www.jetbrains.com/help/ruby/configuring-language-interpreter.html