SHIMANE GREEN JAM #4 でQR決済アプリを作った時の話をしてきた

 

はじめに

年末にSHIMANE GREEN JAM #4 に参加してきたー

 

これはその時感じたアレコレをまとめたものです

 

SHIMANE GREEN JAMとは?

SHIMANE GREEN JAM とは島根県内の若手の活動を盛り上げるためにLTとかで発表する場イベントになります

sgj.connpass.com

 

傾向としてはIT関係のLTが比較的多めな感じがしたかな?(そもそも参加されている人たちがIT企業勤めだったり)

 

今回初参加だったんだけど、こうして同年代くらいのエンジニアの話を聞けたりするのは非常に楽しかった

 

具体的なLTの内容としては、自作キーボードの話だったり、LTの分類の話だったりとユニークな感じ

 

どちらかというと緩めな感じがして話しやすいなぁと感じたね(まあ、聞いてる内容をあれこれ考えてたのであんまり参加者の人らとはなせなかったんだけども……)

 

話した内容

QRコードで決済できるアプリをRailsで作った時のことを話したー

 

実際のスライドはこちら

 

speakerdeck.com

 

 

なお、実際に作ったものはこちらになります

github.com

github.com

全体的に緩めな感じだったので、一人だけガチガチな感じになってしまい、申し訳なさが……

 

PAYPAYとかの話題も絡んで反応は良い感じだったのでうれしかったね

 

おわりに

 

SHIMANE GREEN JAMは今後も開催されるそうなので、僕としても参加していきたいね

生存報告などを自動的にMastodonへとTootしてくれるようにしてみた

はじめに

この記事は、Mastodon Advent Calendar 2018 の最終日の記事です

 

qiita.com

 

バイタルなどをチェックして生存情報などをMastodonへと転送できるようになるTipsです

 

つくったもの

Fit Bit Charge3 と IFTTT と Webhook を組み合わせて、「鯖缶が生きているかどうか?」「鯖缶が何をしているか?」などをMastodonへとTootできるようにしました

 

f:id:gamelinks007:20181209220551p:plain

実際のTootしている風景

 

その他、入眠時には「眠りに落ちました」といった形でTootするようにしています

 

やったこと

Mastodon

アクセストークンの発行を行いました

 

Fit Bit Charge 3

近場の電気屋Amazonなどで Fit Bit Charge 3を買います

 

ちなみにAmazonではこちらから

https://www.amazon.co.jp/dp/B07HPKWGJH

 

僕は、ビックカメラで買いました

 

あとは、Fit Bit Charge 3を動くように設定するだけ(アカウントの作成とか)

 

IFTTT

まず、IFTTTにアクセスします

ifttt.com

 

「MyApplets」→「New Applet」の順にクリック

f:id:gamelinks007:20181209221548p:plain

 

f:id:gamelinks007:20181209221708p:plain

 

はじめの「this」には「Fitbit」を選ぶ

 

f:id:gamelinks007:20181209221918p:plain

f:id:gamelinks007:20181209222040p:plain

 

で、「Daily activity summary」を選択

 

f:id:gamelinks007:20181209222225p:plain

 

次に、「that」 に「Webhook」を選択

 

f:id:gamelinks007:20181209222339p:plain

f:id:gamelinks007:20181209222418p:plain

 

で、「Make a web request」を選択

 

f:id:gamelinks007:20181209222605p:plain

 

以下のような画面が表示されます

 

f:id:gamelinks007:20181209222706p:plain

 

URLには

 

https://<インスタンスのURL>/api/v1/statuses

 

Method は 「POST」

 

Content Type は 「applicaton/x-www-form-urlencoded」

 

Body に「access_token=<取得したアクセストークン>&status=今日もCreatodonの鯖缶は生きています&visibility=public」

 

入力後、「Create Action」を押す

 

最後に、アプリ名に「Watch Me」とか入力して「Finish」を押せばOK

 

つくってみて

意外と簡単にできたなぁという印象

あと、忙しい時の生存報告とか自動化できるので楽かなぁと思う

 

鯖缶の方で興味ある方は試されてはいかがだろうか?

 

MastodonInstanceBoosterを作ってみた

はじめに

この記事は、Mastodon Advent Calendar 2018 の21日目の記事です

 

qiita.com

 

#インスタンス紹介というハッシュタグを検知し、ブーストするBotを作った話になります

 

作ったもの

Mastodon Instance Booster という#インスタンス紹介を拡散するBotを作成しました

 

gamelinks007.net

 

ソースコードはこちら

github.com

 

やったこと

やったことといっても大したことはしていない

 

これを作る少し前に作ったCreative BoosterをForkして拡散するハッシュタグを #インスタンス紹介 に変更しただけ

 

Creative Boosterに関しては下記の記事が詳しい

gamelinks007.hatenablog.com

 

作ってみて

Creative Boosterをもとに作ったのでそんなに手間はかからなかったねー

 

あと、意外と知らなかったインスタンスとかが見つかるようになったり、Creatodonの連合先が増えたりしたのは良かった

 

今後は、DBにインスタンスのURLなどを把握して、そこからさらに再帰的にインスタンスをチェックしていく仕組みを組み込んでみようかと思う

 

 

食べたところを記録できるEatMapperを作ってみた話

はじめに

この記事は、Mastodon Advent Calendar 2018 の20日目の記事です

 

qiita.com

 

作ったもの

食べたお店の写真(スマホなどでの)をアップロードするとお店の位置情報などを自動的に認識して登録してくれるアプリです

https://eat-mapper.herokuapp.com/

 

一応、Mastodonでログインできるようになっています(Pleromaとかも動くかも……?)

 

なお、ソースコードは以下

 

github.com

 

やったこと

exifrでの位置情報取得

exifrを使い、アップロードされた画像内の位置情報を取得するようにしています

github.com

 

gmap4railsでMap表示

取得した位置情報を使い、gmap4railsでMap表示を実装

github.com

 

carrierwaveでの画像アップロード

Rails界隈ではよくつかわれるcarrierwaveを使い、画像のアップロードを実装

 

github.com

 

kaminariでのページネーション

これまたRails界隈では良く使われるkaminariを使い、ページネーションを実装

github.com

 

mastodonでのログイン

あとはいつも通りにMastodonでのログインを実装

qiita.com

 

今後の展望

まだMastodonへのシェア機能とかが不十分な状況なのでその辺の改修をしたいかなぁ

 

あと、Pleromaなどの分散SNSへの対応もしていきたいなぁと思う

Re:松江Ruby会議09でMastodonについて話してきた

はじめに

この記事は、Mastodon Advent Calendar 2018 の16日目の記事です

adventar.org

 

この記事では、松江Ruby会議09でMastodonについて話した時の心象などを書こうと思います

 

松江Ruby会議とは?

Ruby の聖地でもある島根県松江市で開催される地域Ruby会議です

matsue.rubyist.net

 

当日の様子などはこちらから

matsue.rubyist.net

 

当日は、「僕とMastodon」というタイトルでMastodonについえあれこれ話してた

 

その辺の話はこちらからどうそ

 

gamelinks007.hatenablog.com

 

 

話してみての印象

まず、めちゃくちゃ緊張した……

なんせ、話してる目の前でMatzさんが座っている状況だもの……

 

みんなも想像してみてほしい

生みの親のまで、それを使って構築されたアプリケーションの話するのがどれくらい緊張するか……

 

あと、技術関係の話やMastodonの環境などの話になると皆さん静かに聞いておられたねー

やっぱり皆さんエンジニアなんだなぁと思った

 

まあ、僕としては静かなので余計に精神に悪いことこの上なかったけどもね……

 

驚いたこと

なんということか、Creatodonのユーザーさんと出会うことができた!

 

普段からCreatodonを使わせてもらってることに感謝されたりしたね

 

で、そのまま一緒にご飯に行ってコーディングに関する話とかあれこれ話したり(あと、エンジニアの働き方とかの話だったと思う)

 

 

Mastodon自体の知名度に関して

正直に言えば、かなり知っている人は少なかった

 

何人か実際に使っているというユーザーさんもいたけどそれも片手で数えるくらいのもの

そのあたりに現状のMastodonへの知名度が窺い知れるかなぁ……

 

実際、懇親会でMastodonについて聞かれたんだけど「Mastodonって去年ちょっと流行ったあれですよね」くらいの認識みたいだったし

 

この辺、もうちょいMastodon関係の記事とかイベントとか打てればいいんじゃないかなぁ

 

今年もMastodon関連のイベントはいくつか開催されてるけども、「身内でやってる感」というのがあるかなぁと思った

参加されている人たちのラインナップを見てても、見知った人が多いなぁという印象だったし

 

イベントごととかで身内のノリとかが良くされていると参加しにくいし……

 

 

その辺もうちょいオープンな感じでハンズオンとかハッカソンとかできたらいいんじゃないかなと思った

 

松江Ruby会議では松江で働いているエンジニアさん(海外の方もおられた!)から学生さんまで多種多様な人らが参加してたし、僕も発表する立場として声かけてもらえたりと「参加のしやすさ」環境ができてるんだなぁと思ったのもそう考えたきっかけになってる

 

おわりに

やっぱり新しい人が参加しやすい環境づくりと知名度の確保が今後のMastodonにも必要になってくるんじゃないかなぁと思ったり

 

人がいないとそもそも使われない状況になるし、参加しにくい環境だとその人も増えないという……

 

とりあえず、MastodonのTechな話とかするミートアップなりハンズオンなり開催してみようかと思うね(できるかどうかは別として……)

 

創作関係のハッシュタグをブーストするBotをつくってみた

はじめに

 

この記事は Mastodon Advent Calendar 2018 の16日目の記事です

 

qiita.com

内容は、Mastodonで創作関係のハッシュタグを拡散してくれるBotを作ったときのことになります

 

作ったもの

gamelinks007.net

 

#創作 などの創作系ハッシュタグや #pixiv などのハッシュタグハッシュタグタイムラインから検知してブーストしてくれるBotです

 

Pawooからのイラストなどが良くブーストされている感じですねー

 

ソースコードはこちらになります

 

github.com

 

やったこと

 

 

Gemfileに

gem 'mastodon-api', require: 'mastodon'

gem 'omniauth-mastodon'

gem 'omniauth'

gem 'dotenv-rails'

を追加して、bundle install

 

あと、環境変数として

MASTODON_URL=<インスタンスのURL>

ACCESS_TOKEN=<インスタンスで取得したアクセストークン> 

 をセットした

 

最後に、lib/tasks/scheduler.rake を作成し、

task :toot => :environment do

  client = Mastodon::REST::Client.new(base_url: ENV["MASTODON_URL"], bearer_token: ENV["ACCESS_TOKEN"])
  @keywords = Keyword.all

  #指定のハッシュタグを含むTootのBoost
  @keywords.each do |keyword|

    client.hashtag_timeline(keyword.key, :limit => 5000).each do |toot|
      if !toot.reblogged? then
       response = client.reblog(toot.id)
       response = client.favourite(toot.id)
      end
    end
  end
end

 こんな感じにコードを追加

 

あとは、Keywordモデルを作成して、そこへブーストしたいタグを登録していくだけ(Railsのコンソール使ってやってる)

 

運用にはHerokuを使用し、Heroku Scheduler を使って定期的にタスク処理を走らせてますねー

 

jp.heroku.com

 

つくってみて

意外と簡単にできたかなとは思う

 

とはいえ、ハッシュタグの登録画面とか作ってないので手抜き工事もいいところ……

今後は、そのあたりも実装していこうかなと思う

 

ちなみに、Creative BoosterのおかげでCreatodonの連合タイムラインは結構流れが速くなったかな

Cortanaを使ってMastodonへTootした

はじめに

この記事は、Mastodon Advent Calendar 2018 の15日目の記事です

 

qiita.com

 

今回は、CortanaとIFTTTを使ってMastodonへTootした時のアレコレになります

 

作ったもの

iPhoneにインストールしたCortanaへ「BIG-O Show Time!」と話しかけるとIFTTTを経由して、Mastodonへ「CAST IN THE NAEM OF GOD. YE NOT GUILTY.」と呟かれるようにしてみた

 

「BIG-O Show Time!」と「CAST IN THE NAEM OF GOD. YE NOT GUILTY.」の元ネタはアニメ「THE ビッグオー」から(ちょうど最近見返してたので)

 

作った経緯

少し前にCortanaがIFTTTに対応したという記事を見たのが作ろうと思ったきっかけ

 

で、作ろうとあれこれしてたんだけど忙しくなってきたのでいったん保留にしてた

 

で、「THE ビッグオー」見返してて、「BIG-O Show Time!」てしゃべったら「CAST IN THE NAEM OF GOD. YE NOT GUILTY.」とかTootされると面白いよなぁとか思って再燃した感じ

 

やったこと

今回はiPhone(Cortana)、Mastodon、IFTTTをそれぞれ連携させて「BIG-O Show Time!」→「CAST IN THE NAEM OF GOD. YE NOT GUILTY.」と呟く流れを作った

iPhoneでやったこと

まず、手元のiPhoneにCortanaをApple Storeからインストールした

それとMicrosoftアカウントの設定と言語設定を英語に変更した

 

Mastodonでやったこと

アカウントの設定画面からアクセストークンを発行したくらい

 

IFTTTでやったこと

まず、最初のトリガーに「Cortana」を選択して、「Say a specific phrase」を選ぶ

 

「What do you want to say?」に「big o $」

「What do you want Cortana to say in response?」に「OK」

 

 

とそれぞれ記入する

 

次のトリガーに「Webhooks」を選び、「Make a web request」を選択する

 

で、以下のように各項目を埋めていく

 

「URL」に「https://<インスタンスのURL>/api/v1/statuses」

「Method」は「POST」

「Content Type」は「applicaton/x-www-form-urlencoded」

「Body」に「access_token=<取得したアクセストークン>&status=CAST IN THE NAME OF GOD. YE NOT GUILTY&visibility=unlisted」

 

で、「Create Action」を押す

 

最後に、作成したIFTTTアプリの名前に「BIG-O SHOW TIME!」とか入力して「Finish」を押せばOK

 

あとは、Cortanaで「BIG-O Show Time!」やら「BIG-O Action!」とか呟けば自動的にMastodonへ「CAST IN THE NAME OF GOD. YE NOT GUILTY」とTootされる

 

使ってる感想

英語の発音がへたくそなのか、よく認識されずに失敗してる……

 

あと、これ他なセリフとかに置き換えても使えそうとか思った(例えば、マジンゴーとCortanaに話しかけると「ゼェェェット!」って呟くようにするとか)