【技術解説2】Drupalでブログ始めました(Elastic IP ・Ruote53)

どーも。ばぁどです。

先日、ブログを立ち上げました。

Home | ばぁど・うぉっちんぐ

 

前回の記事は、EC2を立ち上げるまでやりました。 

今回はElastic IPでグローバルIPアドレスを取得して、それをドメインに紐づけるまでやります。

 Elastic IP

Elastic IP はグローバルIP アドレスを取得することができるものです。

取得したグローバルIPを自分のawsで管理している各種サービスに紐づけることができます。 

 Elastic IPの作成

「新しいアドレスの割り当て」ボタンをクリックします

f:id:UltraBirdTech:20170815111330p:plain 

画面に従って、作業を続けます。

「割り当て」ボタンをクリック。

f:id:UltraBirdTech:20170815111504p:plain

グローバルなIPアドレスが払い出されます。

f:id:UltraBirdTech:20170815111620p:plain

とても簡単。

Elastic IP の紐付け

先ほど、取得したグローバルIPアドレスを選択して「アクション」ボタンをクリックします。

f:id:UltraBirdTech:20170815112414p:plain

メニューの中に「アドレスの関連付け」があるので、クリック。

f:id:UltraBirdTech:20170815112455p:plain

アドレスを関連付けするインスタンスなどを選ぶ画面になります。

f:id:UltraBirdTech:20170815112535p:plain

インスタンスはセレクトボックスで対象のインスタンスを選べるようになっています。

f:id:UltraBirdTech:20170815112657p:plain

全て設定値を入力したら、右下の「関連付け」ボタンをクリック。

f:id:UltraBirdTech:20170815112748p:plain

無事に紐づけられました。とさ、めでたしめでたし。

f:id:UltraBirdTech:20170815112812p:plain

 

Route53

Route53は、awsドメインを管理してくれるサービスです。

新規ドメインの取得から、IPアドレスとの紐付けまでなんでもやってくれます。

aws.amazon.com

 

ドメインの取得

「Registerd domains」をクリック

f:id:UltraBirdTech:20170815114850p:plain

 

 

「Registerd Domain」をクリック

f:id:UltraBirdTech:20170815115026p:plain

※画像は既に`ultrabirdrepti.net`を取得済みです

 

欲しいドメインを入力して、被ってなければ取得できます。

金額などを考慮した上で、お好きなドメインを購入してください。

f:id:UltraBirdTech:20170815115121p:plain

 

Host Zoneの設定

ドメインを取得できたら、 Hostzoneの作成です。 

f:id:UltraBirdTech:20170815115955p:plain

ドメインを入力する項目が現れます。

取得したドメインを入力してください。

f:id:UltraBirdTech:20170815120006p:plain

すると、なにやらNSとSOAというTypeのレコードが追加されたHosted Zoneが作成されます。

f:id:UltraBirdTech:20170815120046p:plain

「created record set」でAレコードを作成します。

Nameには、www.などを適当に入れてください。

Typeは今回はIPアドレスを登録するので、[A- IPv4 address]を選択します。

Valueには、Elastic IP で取得したIPアドレスを入力してください。

f:id:UltraBirdTech:20170815120236p:plain

これで、一通り設定は大丈夫なはずです。

 即反映されない場合は、各レコードのTTLを短く設定し直してください。 

 

そして、恥ずかしながら、今回設定しているDNSのレコードの意味がわかっていなかった・・・

というわけで、雑にまとめました。参考にしてくださいmm

DNSのリソースレコードについてよく分かっていなかったので雑にまとめたよ | ばぁど・うぉっちんぐ

 ドメインの紐付けに関する設定は以上で終わりです。

 

早速、アドレスバーに紐付けたDNSを入力すると・・・

f:id:UltraBirdTech:20170816081950p:plain

表示された!

今回はここまでです。ありがとうございました。

[おまけ]ハマった3日間

8月10日、バードの日の仕事終わりに、ドメインを取得してブログを堂々オープン!としたかったのですが、ドメインが紐づかない・・・

 

かれこれ試行錯誤するお盆休みを過ごしていました。

 

そして、時間的にも72時間経った13日の夜にこんなメールがamzon さんから届きました。

 

Hello,

Thank you for activating Amazon Route 53 Service. We would like to help you get started to make your experience with Route 53 better. We have put together a few documents, getting started videos and resources which we think will be useful as you familiarize yourself with this product.

Creating your First Hosted Zone

============省略==============

 

ん?なんか、Route53使ってくれてありがとうとか言ってる・・・

 

最初に、Hosted Zone作れ?・・・

 

あー、なんか、家に帰ってHosted Zone 作り直したらできそう・・・

 

ということでした。

 

結局、Route53で新規にドメインを取得した場合は、約3日間待つ必要があるらしい。 

公式ドキュメント読んだが、そういう記述がない(調べ方が下手なのか・・・ 

教訓としては、サービスを運用するって決まっているなら、ドメインは早めに取得しろよってことですかね。

 

今回は、ここまでです。お疲れ様でしたmm 

【技術解説】Drupal でブログ運営始めました

どーも。ばぁどです。

先日、ブログを立ち上げました。

Home | ばぁど・うぉっちんぐ

前回の記事は、報告だけにとどまっていたので今回はどう立ち上げて、技術的になにを使っているかをツラツラと。

aws

サーバーはawsを利用しています。

awsを選んだ理由は下記3点。

  • awsは元からアカウントを持っていた
  • 他のクラウドと契約してアカウントが増えるのが嫌
  • 特にamazoneに対して嫌悪感ない

Drupalも私が勉強し始めたことに比べて、いろいろなサービスが出始めているんですね。

awsのmarketplaceに良さげなものがあったので今回はそれを利用。

AWS Marketplace: Drupal powered by Bitnami

本当はEC2を立ち上げて自分で環境構築をした方が勉強になるだろうなと思いつつ・・・ 今回の目的はあくまで、Drupalの運用を通してのDrupalの勉強なので!!

Drupal powered by Bitnami

早速、「continue」ボタンをクリック f:id:UltraBirdTech:20170815094751p:plain

設定画面

諸々、設定する画面に飛ばされます。 今回は、1-click launchを選択します。 f:id:UltraBirdTech:20170815094827p:plain

Version

最新のものを選びました。 f:id:UltraBirdTech:20170815095005p:plain

Region

Asia Pacific(Tokyo)を選択。EC2の値段とか少しずつ違うっぽい。 f:id:UltraBirdTech:20170815095130p:plainf:id:UltraBirdTech:20170815095135p:plain

EC2instance Type

EC2のインスタンスですね。 特にアクセス数を見込んでいないので、一番小さいt2.microを選択。 値段もお手頃。サーバーの勉強代としては良いんじゃないかな。 f:id:UltraBirdTech:20170815095307p:plain

Key pair

キーペアを指定します。 作成していなければ、console画面へ飛ばされるリンクがあります。 作りましょう。 f:id:UltraBirdTech:20170815095546p:plain

作った後は、この画面に戻ってきてリロードしろと。

※このリロードを行った時にRegionやEC2インスタンスの選択が初期状態になっている可能性あります。注意。

そうすると、keypairを選べるようになります。 f:id:UltraBirdTech:20170815095621p:plain

「Launch with 1-click 」ボタン

諸々の設定と値段を確認して、良さそうであれば作成しちゃいましょう。 f:id:UltraBirdTech:20170815100740p:plain

しばらくたつと、EC2コンソール画面に作成されたEC2インスタンスが現れます。 f:id:UltraBirdTech:20170815100937p:plain

紐づいているIPアドレスにアクセス!(下記画像は既にElastic IPで紐づいています) f:id:UltraBirdTech:20170815101430p:plain

Drupalの初期画面が見えると思います。

ログインまで

ログインするには、ユーザ名とパスワードが必要です。

Drupal powered by Bitnami で作成した場合、EC2立ち上げ時にユーザとパスワードは作られています。

ユーザ名はuser、パスワードはシステムログに吐かれているので確認します。

確認しましょう。

f:id:UltraBirdTech:20170815101618p:plain

下の方に吐かれているので確認します。f:id:UltraBirdTech:20170815101750p:plain

はい、これでログインできるはずです。

一旦この記事はここまで。 次回は、Elastic IP の取得とドメインの紐付けの予定です。

Drupal でブログ運営始めました。

どーも。ばぁどです。

2017年度やりたいことリスト上位ランキングであった、Drupalでのブログ運営を始めました。

なんで、今日かというと、8月10日は8(バー)10(ド)の日だからですね。←

(僕が言い始めたんじゃありませんよ)

はてなブログで記事にするまでもない雑多なことを、つらつらと書いて行こうかなと思っています。

f:id:UltraBirdTech:20170810204838p:plain

うーん。。。 DNSが紐づかない。。。 なぜ。。。。

ドメインが紐付き次第、こちらにもURL添付します。

ドメイン紐づきました。

Home | ばぁど・うぉっちんぐ

3日間格闘したのですが、結局なんだったのだろうか・・・

awsから「Route53使用していただきありがとうございました」みたいなメールが届いた後、作業したら紐づきました。

やっぱり、ドメインを取得した後72時間待つ必要があるんですかね?

目的

プログラマだというのに、自分が見せられるサイトみたいなもの持っていなかったなーと思ったからです。

一時期、グロンギ語変換アプリなんてのもやっていたのですが、辞めてしまったので・・・

(そのうち、また立ち上げなおします)

運用を含めて、awsなどを継続的に勉強していきたいと思っています。

構成

サーバーはawsを使用しています。

awsでよしなにDrupalを構成してくれるオプションがあったので、それを利用。 f:id:UltraBirdTech:20170810204800p:plain

Drupalが構築済みのEC2は立ち上がるので、Elastic IP とRoute53でドメイン紐づけて完成! ってやりたかった・・・

この辺のやり方は時間がある時にまとめます。

開発合宿 in 圡善 -PHPフレームワーク・Symfonyとは-

どーも。ばぁどです。

海の日の三連休を利用して、開発合宿行ってきました。

今回のテーマは、Drupalフレームワークとして利用されているSymfonyを使ってwebアプリケーション構築です。

Drupalを深く理解するための、Symfonyの勉強でございます。

フレームワークの名前的に、七色シンフォニー聞きたくなってしまいますね。

www.youtube.com

というわけで、Symfony2の入門書を引っさげて開発合宿に参加してきました。

gihyo.jp

今回の開発合宿の目標

  • Symfony触る

  • お酒飲みながら開発する

  • 合宿中であっても規則正しい生活を!

Symfonyって?

PHPフレームワークです。

Symfony, High Performance PHP Framework for Web Development

歴史としては、Zend Frameworkの次に古いPHPフレームワークのようです。 RubyRailsJavaのSpringから少し遅れて開発が始まったとのことでした。

現在はSymfony2と呼ばれる、ver 2です。

PHPフレームワークとしての検索トレンドはこんな感じ。

(2017年7月16日、8:00頃の結果)

期間:5年間

フレームワーク以外の検索結果も入ってしまうので 各FWごとに、小文字のphpをつけています f:id:UltraBirdTech:20170716202314p:plain

検索ワードの問題もあるけど、まぁ中間くらい?安定した人気ですね。 こうやってみると、Laravel最強説。

地域別にみるとこんな感じ。 f:id:UltraBirdTech:20170716202407p:plain

Symfonyは欧州で人気あるっぺぇ。 そして、圧倒的なLaravel人気・・・

Symfonyの基本機能

Symfony2のFWとしての基本的な機能は下記のようでした。

ルーティング

ymlやアノテーションで指定することで実装できます。

今回は参考書に従ってアノテーションで実装。

個人的には設定ファイル(yml)の方が好みだな。

アノテーションでやる場合はこんな感じ

 class ToppageController extends Controller
{
    /**
    * @Route("/")
    */
    public function indexAction(){     
        // なんかの処理... 
    }
}

DBとの接続

Doctrine勉強してね

Home — Doctrine Project

Doctrinは、PHPのORMです。 PHPでWebアプリケーションを開発するために作られたORMのようです。

どうしてもRubyActiveRecordと比較してしまう。

ActiveRecordと比較すると、あまりメソッド名が直感的ではないなと思ってしまった。 おそらくDoctrinの思想を理解できていないんだと思います。

Doctrineが開発された経緯とか、Symfonyに組み込まれた経緯とかは知りません。 後ほどの調査タスクで・・・

HTMLへのレンダリング

Twig勉強してね

Home - Twig - The flexible, fast, and secure PHP template engine

TwigはSymfonyの機能ではなく、独立して利用可能なテンプレートです。 確か、Symfony2からTwigに対応した認識。 ちなみに、Twig独自の関数と、Symfonyが拡張したTwig関数があるので、そこの分別は気を付けてください。

Twigが開発された経緯とか、Symfonyに組み込まれた経緯とかは知りま(以下略

使ってみた感想

フレームワークとしては、難なくWebアプリケーション開発できるなーという印象。

外部のコンポーネントを取り込んで開発するってのが多いなと思いました。

フレームワークは便利なコンポーネントを独自に取り込んで、使っていくみたいな形になってきているんですかね。

結局、DoctrineやTwigの勉強をそれぞれした方が理解深まるなー、という所感です。

今後の展望

Symfonyを利用して、MVCオブジェクト指向でどう書くのがベストなのかは探らなきゃいけないなと思っています。

あとは、ユニットテストの導入ですかね。

そして・・・「すべての道はDrupalに通ず」

まとめ

今回、開発合宿でSymfonyに触ってきました。

本当は、もっと成果物としてしっかりとしたものが上がればいいんだけど、毎回こんな新しい技術触って何ちゃらでした☆みたいなものにしちゃうんですよね。

PHP力はもう少し高めなければと思っております。

次は、もっとサービスインできるくらいの何か作ってみたいなー。

開発合宿は、ご飯美味しいし、温泉も入れるし、開発できる機材は整っているし、とても楽しいですね!

どーせ、何も予定がない休日に一日中開発しているのであれば、これからも積極的に参加していきたいです!!

おまけ

飲んだお酒。 開発合宿中に三本飲めました。 (お酒弱いのですが、酒入れながら開発は一回やってみたかったのです)

まぁ、千葉に来たし、せっかくなので・・・

www.kirin.co.jp

  • YEBISビール 350ml 缶

YEBISビール美味しいよね。

エイジゲート | サッポロビール

  • KIRIN本絞り 350ml 缶

レモン系が飲みたかった・・・

www.kirin.co.jp

次回はもっとガッツし飲みたいですね。(開発合宿の目的とは

f:id:UltraBirdTech:20170717104941j:plain

以上です。

4年目プログラマの Ruby Association Gold 合格体験記

はじめに

2017年5月にRuby Gold 合格しました。

結果は80 / 100 と、合格点が75点である中、なかなかギリギリのところでした。

Ruby Goldの合格体験記はSilverに比べて少ないイメージなので、私も残しておこうかなと思います。

なんで受けたの?

ほぼ、モチベーション的にはSilverと同じです。

一人のプログラマとして、なんでもいいから一つの言語としっかり向き合ってみたかったからです。

Ruby Gold までくれば、メタプログラミングの知識も必要だったので、より深くRubyを勉強できるかなと思ったので挑戦させていただきました。

勉強方法

公式教科書

gihyo.jp

私は古いのを持っていました。

Silverの時と同じく、試験範囲を把握するために利用。

この教科書だけでは、試験範囲の内容としては心許ないです。

添付ライブラリやメソッドチェインなどは、後述のパーフェクトRubyメタプログラミングRubyなどで、補填しました。

パーフェクト Ruby

gihyo.jp

Rubyistであれば、持っていて損はない一冊。 公式の教科書だけでは足りない深い部分の理解をしたいときはこっちで調べました。

メタプログラミングRuby

www.oreilly.co.jp

メソッドの継承の仕組みなどのRuby Goldの試験範囲を勉強するには最適の一冊。 公式の教科書やパーフェクトRubyにも継承に関することは書かれているのですが、この一冊で勉強した方がより実践的に学べます。

オブジェクト指向設計実践ガイド

gihyo.jp

Ruby Goldの資格勉強とは離れるのですが、Rubyの理解を深めるために購入。

初めてオブジェクト指向を本格的に学びました。

そもそもオブジェクト指向言語であるRubyなのに、オブジェクト指向を理解していない時点で負け。 Rubyのクラス定義やらが曖昧なままでは、太刀打ちできないということで勉強させていただきました。

問題集

Ruby技術者認定試験【Gold】模擬問題(1~10)|CTC教育サービス 研修/トレーニング

100点取れるまでひたすらやりました。

他の方の受験記

Google先生に、「Ruby Gold 合格」聞いてみて出てくるブログ記事を読み漁る作業。

勉強時間

勉強期間は1ヶ月くらいですかね。 受験日が5月末日だったので、GWは全てRuby の勉強に当てていました。

GW後は、朝(出社前)、会社の昼休みを利用して1日、2時間は勉強時間を確保しました。

個人的に試験のここがポイント!

継承チェーン

Ruby Goldはこの継承チェーンが6割くらいなので、ここをどれだけ極めるかが肝です。

extend()した時の挙動、extend()をフックするメソッドは何か?など。

メソッド 動き 前フック 後フック
include moduleをクラスの後の継承チェーンにMix-inする append_features()  included()
prepend moduleをクラスの前の継承チェーンにMix-inする prepend_features()  prepended()
extend オブジェクトの特異クラスにmoduleを取り込む extende_object()  extended()

super()の挙動

super()って、()のあるなしで挙動が変わるって知らんがな。

メソッド呼び出し(super・ブロック付き・yield) (Ruby 2.4.0)

class Foo
  def foo(arg='default')
    p arg
  end
end

class Bar < Foo
  def foo(arg)
    super(5)   # 5を引数にして呼び出す・・・(1)
    super(arg) # argを引数にして呼び出す・・・(2)
    super()    # 引数なしで呼び出す・・・・(3)
    super      # 3を引数にして呼び出す・・・(4)


    arg = 1
    super      # 1を引数にして呼び出す・・・(5)
    super()    # 引数なしで呼び出す・・・(6)

  end
end

Bar.new.foo(3)

実行結果

5     # (1)の出力結果
3     # (2)の出力結果
"default"  # (3)の出力結果
3     # (4)の出力結果
1     # (5)の出力結果
"default"    # (6)の出力結果

勉強するために工夫したこと

説明できるように!

他のRuby Gold受験者やRuby初心者に説明することを意識して自分の中に落とし込みました。

まとめ

Ruby Gold取得して、少し自信が持てるようになりました。

昔、会社の上司に「一個の言語に深く潜ってみろ!」と言われたのですが、その言葉を胸にひたすら言語を勉強してみる半年だったかなと思います。

今回のRuby Goldを取得するために勉強したRubyにおける継承チェーンやオブジェクト指向的な書き方。 じゃあ他の言語(JavaPHP)の時はどんな風に書くのかなと言ったところを考えながら、他の言語も勉強していこうと思いました!!

4年目プログラマの Ruby Association Silver 合格体験記

はじめに

2017年2月にRuby Silver 合格しました。

結果は84 / 100 と、まぁ合格だよね、という感じの合格点。 でも、合格は、合格!!!

他の記事と同じようなことしか書けず、何番煎じかわかりませんが・・・ メモ程度に残しておきます。

なんで受けたの?

一人のプログラマとして、なんでもいいから一つの言語としっかり向き合ってみたかったからです。

今年でプログラマ歴4年目となるのですが、あまり言語と深く接するということをしてこなかったので、諸々のタイミングを踏まえて挑戦してみました。

そもそも、Ruby SIlver は、2年前くらいに一度挑戦して落ちてましたし・・・(苦い思い出

勉強方法

公式教科書

gihyo.jp

私は古いのしか持っていなかったのですが、特に問題ありませんでした。

試験範囲の確認するのにはもってこい。

SIlverは7割くらい、ArrayやHashのメソッドのお話です。

ただ、サンプルコードには間違っている箇所もあるので注意してください。

章末問題も100点(うっかりミスは許容)取れるまで、ひたすら解きました。

なんでその回答になるのかの、理由をひねり出せれば問題ない。

パーフェクト Ruby

gihyo.jp

Rubyistであれば、持っていて損はない一冊。 公式の教科書だけでは足りない深い部分の理解をしたいときはこっちで調べました。

ミニツク

ミニツク - Rubyのe-ラーニング研修システム

ありがたいweb サービスでございます。

これのRuby silver対策部分をひたすら行いました。

問題集

http://www.ruby.or.jp/assets/images/ja/certification/examination/exam_prep_jp.pdf

こちらも100点取れるまでひたすらやりました。

他の方の受験記

Google先生に、「Ruby Silver 合格」聞いてみて出てくるブログ記事を読み漁る作業。

勉強時間

勉強を始めたのは試験日の、3週間前くらいからです。

朝(出社前)、会社の昼休みを利用して1日、2時間は勉強時間を確保しました。

普段からRubyは実務で触っているので、基本的なところは大丈夫な自信はありました。

試験に出てくるArrayやHashなどは普段使わないメソッドがあるので・・・

試験前の1週間はできるだけ定時に帰ることを心がけて、夜の勉強時間も1時間ほど確保しました。

個人的に試験のここがポイント!

破壊的、非破壊的

! がなくても破壊的なメソッドはいくつかあるので注意です。 arrayのarray#insertとか?

ref.xaio.jp

同じ動きをするメソッド

別名なのに同じ動きをするメソッドがあります。 arrayのslice[]が同じとかね

ref.xaio.jp

ref.xaio.jp

sliceメソッドは、メソッドの別名です。

もう、ややこしい。 Ruby に別名なのに同じ動きをするメソッドがある理由は下記のルビまの記事などを読んでもらえればいいんですかね。

Rubyist Magazine - map と collect、reduce と inject ―― 名前の違いに見る発想の違い

ファイルの内容を読み込むメソッドの挙動

読み込む対象 メソッド名 動作 EOF
IO read IOから内容を読み込む。長さが指定されていれば、その長さぶん読み込む。 長さが指定されていなければ空文字。指定されていればnil
IO.foreach 各行をブロックに渡して実行 nil
each_lines 各行をブロックに渡して実行 nil
readlines ファイルを全て読み込んで、その配列を返却する。 空配列
gets 一行ずつ読み込む nil
readline 一行ずつ読み込む EOFError
バイト each_byte IOオブジェクトから1バイトずつ取得する 何もしない
getbyte 一バイトずつ読み込む nil
readbyte 一バイトずつ読み込む EOFError
文字 each_char IOオブジェクトから1文字ずつ取得する 何もしない
getc 一文字ずつ読み込む nil
readchar 一文字ずつ読み込む EOFError

この微妙な差異がね・・・ なんとも。。。

get××系がnilを返却。

read××系がEOFError系を返却。

と覚えておけば良さそう・・・

クラス別のdeleteメソッド

delete()メソッドのクラス別の挙動

クラス 引数 返値 破壊的 別名
String 文字 元の文字列  非破壊的 なし
Array 削除した値  破壊的 なし
Hash key値 削除したkeyのvalue  破壊的 なし
File ファイルパス 1 or エラー  破壊的 unlink

こんなんばっかり・・・

他にもあったので、似通った部分は自分なりにまとめるのはオススメでございます。

勉強するために工夫したこと

復習できるように!

Ruby Goldの取得も視野に入れていたため、いつでも振り返られるようにまとめることを意識しました。 特にノートはオススメです。 ノートにまとめたり、ArrayやHashのメソッド一覧を作ってみたりしました。

情報交換

ちょうど近くにRuby SIlverを同じタイミングで受けた人がいたので情報交換とかしました。 まじ、GJ!!

まとめ

Ruby Silver受験して、普段業務では使わないようなメソッドに対する知識も増やすことができました。

業務で使うメソッドやRuby の機能って限られたものになりがちなので、知見を増やすという面では資格はもってこいですね。

まぁ、あと業務経験○年です、プラス資格持ってますならば、定量的に測れるスキルになってくるのかなーと思っております。

Mastodon会議3行ってきました

どーも。 ばぁどです。

4月から話題になっているMastodonのイベントがあったので参加してきました。

lab-kadokawa26.peatix.com

私個人的にもGW中に少しいじっていたのと、自分の行動範囲内でイベントが行われるということだったので急遽ですが参加してきました。

稚拙ですが、メモをまとめて記録として残しておきます。

また、マストドン会議3の実況トゥートのまとめをしている方もいらっしゃいます! (私のトゥートも高確率で混ざってます(恥))

【実況まとめ】マストドン会議3(1)イントロ ~ 鷲北賢&ぬるかるパート

はじめに

TwitterFacebookで変なことを書き込んでしまうと、予想外のところからバッシングがくる。 自分の意見と合わない意見あったら、無視してくれれば良いのにね。 「へー、そういう意見もあるんだー。ふーん。」みたいに流してくれれば良いのにね。

TwitterなどのSNSは様々な意見を持っている人が混在するようになってしまった。 (別に悪いことではないのですが・・・)

その副作用として、本当は気にしなくて良いことを気にしなくてはならなくなった。 本当はもっと自由なはずなのに、なぜか窮屈なんですね。

その窮屈さを払拭してくれるかもしれない、マストドン! 最初は、分散型になんの意味があるのか理解できなかったが、やっと掴みかけているところでございます。

第1部

これからのmstdn.jp

登壇者(順不同)

ぬるかるさん(マストドンインスタンス mstdn.jp 運営者 / 株式会社ドワンゴ

鷲北 賢さん(さくらインターネット研究所所長)

内容としては、mstdn.jpに関してでした。

mstdn.jpがどのようにサーバー管理されているか、運用監視されているかなどの、とても興味深いお話を聞けました。

当初、mstdn.jpは複数サーバーに手動sshして、git pull を行っていたらしい。

でもそれって面倒臭いよね、ってなってAnsiblecapistranoを使って管理の自動化をしていると言ったお話でした。

また、マストドンが最近マイナーアップデートしたらしく、DBの外部制約キーが影響でmigrateがうまくいかないらしい。 (その前にrake タスクを実行する必要がある)

鷲北さんはmstdn.jpの監視体制のお話。

監視ツールとしてはZabbixを使用していると言っていました。

実際にmstdn.jpのZabbixの監視画面も見せていただけて、とても興味深かったです。

第2部

トークセッション

登壇者(順不同)

まつもと ゆきひろさん(一般財団法人Rubyアソシエーション 理事長)

オイゲン・ロッコ (Eugen Rochko) 氏

ぬるかるさん(マストドンインスタンス mstdn.jp 運営者 / 株式会社ドワンゴ

なんと、豪華な登壇者なのだろうか・・・

主に下記のようなトークが行われていました。

マストドンはなんでRuby(Rails)で作ったのか?

  • 開発に必要なツールとして、Ruby on Railsプラグインが豊富だったから
  • オイゲンさん自身、PHPなどを触っていたがRails(Ruby)の方が便利なツールがあったから

マストドンを作った理由

  • Twitterでは満足できなかった(らしい
  • Twitterより良いものを自分の手で作りたかったから
  • 今のマストドンに関しては非常に満足

マストドンオープンソースにした理由

マストドンのアカウント管理の最善策とは?

  • ここら辺はぬるかるさんなどの運用系のお話
  • 今後のアカウントの管理手法としては、フォロワーを維持したままインスタンスを移れるようにするなど考えている(らしい

まつもと ゆきひろさんを一目見れたのは嬉しかったなー。 かれこれ、何年も触り続けているRubyの生みの親。 なんというか、感無量でした笑

オイゲンさん、寝起き(ドイツでは朝7:00頃)でしたので、すごいクレイジーな朝活だなと思った次第でございます。 登壇が終わったあとは二度寝したいとおっしゃっていました。

ちょっと、苦言すると少し準備不足だったかな・・・と。 トークセッションなら話すテーマくらいは用意しておかないと・・・ 最終的にはmatzさんがファシリをやるという、豪華な配役(?)になりました。

第3部

マストドンの管理方法

登壇者

清水 亮さん(株式会社UEI 代表取締役社長兼CEO)

いかにクソリプと戦うかというお話。 分散型である点と、ディープラーニングと絡めてクソリプを排除して行きましょうというお話(ざっくり

あと、マストドンの企業側の視点からのお話もしていただきました。。 個人的に一番印象に残ったというか、勉強させていただきました。

Twitter、LINEなどのSNSは流行らないとキャンペーンをする意味がない。 マストドンは流行らなくても良い。 サービスの顧客が使って入れば、マストドンだけで良い。 要は、MLやライングループなどと同じような感覚でマストドンという選択肢が出てくるんですかね。

FacebookTwitterは企業の顧客管理を搾取されていた + バーチャルな世界でキャンペーンしなければいけなかった。 なぜか自分が持っている顧客情報ではなく、SNS運営者にお金を払うことで不特定多数へのキャンペーンを強いれられていた。

マストドンは、自分でインスタンスを立ち上げて、コミュニティを作ることで顧客を再び取り戻せる可能性があるとのことでした。

インスタンスを運営している人座談会

登壇者

alarky さん(大阪丼管理人)

TOMOKI++/脇元寛之さん(ボカロドン運営/株式会社SGN代表取締役

松尾公也さん(グルドン運営チーム / backspace.fmポッドキャスター)

有名なマストドンインスタンスの運営者たちのお話です。 各インスタンスの特徴や、参加人数、トゥート数など。

もっと沢山のコアな内容、話す場を求めているコミュニティのインスタンスがあると面白いというのは本当に共感しました。 登壇者の脇元寛之さんもおっしゃっていましたが「再生エネルギーのインスタンス」とかね!! はい、ごもっともだと思います。

個人的には、特撮インスタンスでも立ち上げてみようかなと思いました。

名前は〇〇ドンとつける風習があるようなので、ガヴァドンあたりで行きましょうか。

ウルトラマンの登場怪獣 - Wikipedia

まとめ・感想

もっと色々なインスタンスができれば良いですね。

現状、そのためにはインフラスキルが必須になっている。 私もインスタンスを立てるのはできるけど、そのあとの運用とか、負荷がかかった時のサーバーメンテナンスとか考えると・・・ねぇ(苦笑)

この前初めて知ったのですが下記のようなサービスのマストドン版が求められているんだろうな。

pantheon.io

pantheonは、日本ではなく海外で展開されているサービスです。 基本的にクリックと簡単な情報を入力するだけでwordpressdrupal などのCMSが入ったサーバーを用意してくれて、サービスを展開できます。 実際めちゃくちゃ簡単でした。

クリックだけで、マストドンインスタンスを立ち上げて、面倒臭いところ(サーバーの運用)もよしなにやってくれて、良心的な値段で提供してくれるサービスが出来上がれば、もっと色々なインスタンスができて一気に熱も高まってくるんだろうなと思う次第でございます。 (あれ、これはビジネスチャンスなのでは・・・)

そんなこんなで、マストドン。 これからも色々な盛り上がりを続けてくれると面白そうですね。

私的には、今回のマストドン会議3の中で上がった技術ワードだいたい触れたことある、聞いたことあるっていうのは嬉しかったなー。 曲がりなりにもプログラマーとして、色々学ばせてもらっているなと実感できました。

これからも日々精進。頑張っていこうと思います!