著者アーカイブ takahashi

takahashi 著者:takahashi

サイトへのDDoS攻撃をモニターし、通知、表示してくれるサービス”DDoSMon”

先日、ふとMastodonのTLを見ていたらこんな投稿が…


日本最大級のMastodonインスタンスであるmstdn.jpに対して、DDoS攻撃が行われた旨を管理人のぬるかる氏が投稿していました。

DDoS攻撃はとても単純ながら厄介な攻撃で、一つの発信元(IPアドレス)から大量の通信を行うDoS攻撃とは違い、まったくバラバラな複数の発信元(IPアドレス)から大量の通信を行うため、IPアドレス制限などの単純な防御策では防ぐことができず、通常の通信と見分けがつきづらいという特徴があります。

このmstdn.jpのDDoS攻撃の話題が上がった際にこんなトゥート(ツイート)が回ってきました。

DDoSMon というWebサービスを利用すると、DDoS攻撃が発生した際に通知を受け取ったり、過去に攻撃を受けた際の履歴をを表示したりできるようです。

試しにmstdn.jpのDDoS状況を見てみました。

このような形で直近の攻撃や攻撃の種類など、DDoSを受けたときの細かい情報を見ることができます。

仕組みは不明ですが、有名なサイトであればデータはありそうですので、目的のサイトにアクセスできなくなった時の状況確認に利用できそうです。

takahashi 著者:takahashi

久々にMastodonインスタンスを更新したらデータが吹っ飛んだ件。

先日の一件もあってか、最近になって再び波が来ているMastodonですが、自分も以前動かしていてそのまま放置状態になっていたMastodonインスタンスを久々に立ち上げ直してみました。

…といってもいつの間にかエラーで止まってしまっていて、500エラーを吐く始末。
思い切って合わせてアップグレードも行ってみました。

自分のインスタンスはdocker上に置いたまま動かしているので、mastodon本体があるディレクトリからroot権限で下記のコマンドを実行してアップグレード。

cd /web/mastodon
chown -R 991.991 public/  #いつの間にかパーミッションがない旨のエラーが発生するようになっていたため追加
docker-compose down 
docker-compose build
docker-compose run --rm web rails db:migrate 
docker-compose run --rm web rails assets:precompile 
docker-compose up -d

ところがこの操作がまずかったのか…

ログインができない…
何度試してもログインできないので、やむを得ず再登録し、ログイン。

管理者権限を与えてユーザー一覧を見てみましたが…

今回作り直したアカウント以外すべて吹っ飛んでいました。
自分のアカウントだけでなく、以前フォローしていたはずの他インスタンスのユーザーのリストもすべて吹っ飛んでいました。
どうやらDocker上のdbコンテナ(か、あるいはその中のデータすべて)が丸々吹っ飛んでしまったようです。
何たる悲劇…

同じコマンドで以前アップグレードした時はすべてデータが保持されていたのですが、仕様が変わったのでしょうか。
幸いにもおひとり様インスタンスだったので事なきを得ましたが、なかなかヒヤリとしました。

会社で管理しているインスタンスもバージョンがなかなかに古いので、そろそろバージョンアップすべきか、とは思っている(今のところ、バージョンアップしなくても通信自体は問題ない)のですが、これはちょっと気を付けないと怖いですね…

ちなみに、以前未実装となっていて物議をかもしたユーザー削除機能ですが…

新しいバージョン(2.3.2)では機能としてはちゃんと実装されていました。(利用可能かどうかはインスタンス管理者のポリシーによります。)


以前からPawoo.netが先行して実装していた(気がする)インスタンス内のトゥートが登録画面から見れる機能も、公式のソースで実装されていました。
この機能はとても欲しかったので、公式で実装されたのは非常にありがたいです。

他にも、以前はソースレベルでしか書き換えができなかったロゴ画像やトップバナー(ヒーローイメージ)も、管理画面から書き換えが可能になりました。
以前はバージョンアップするたびに書き換える必要があったのでかなりキツイなぁと思っていたのでとてもありがたいです。

今回は前回よりも波が大きいようで、有名どころのインスタンスでは、管理者から目に見えて分かるレベルでサーバー負荷が上がっているようで、かなり人が集まってきているようです。

折角の機会ですし、どこかのインスタンスに参加したり、立ち上げたり、いろんなインスタンスのトゥートを見て回ってみるのも面白いかもしれませんね。

takahashi 著者:takahashi

Twitterの”流れるタイムライン”を実現してきた”UserStreamsAPI”がついに廃止へ。断続的停止から段階的に。

以前からTwitterユーザの間で物議を醸しだしていたTwitterのUserStreamsAPI廃止決定ですが、とうとう本日から実行されるようです。

TwitterのUser Streams APIがとうとう廃止へ ~断続的な停止を挟みながら23日に完全終了 – 窓の社

同社によると、“User Streams API”は8月16日にいきなりシャットダウンされるわけではない。断続的にサービスを中断させながら(flickering)、開発者と利用者に廃止を通知するという。

8月16日午後4時(協定世界時、日本時間8月17日午前1時)より、6時間ごとに1時間、“User Streams”や“Site Streams”が停止される(1時間オフ、5時間オン)
8月20日午前0時(協定世界時、日本時間8月20日午前9時)より、6時間ごとに2時間停止(2時間オフ、4時間オン)
8月22日午前0時(協定世界時、日本時間8月22日午前9時)より、6時間ごとに3時間停止(3時間オフ、3時間オン)
8月23日午後4時(協定世界時、日本時間8月24日午前1時)に、APIが完全にシャットダウンされる

現状のAPIでは、サードパーティクライアントは15分に15回までしかAPIをコールできない仕様となっており、UserStreamsAPIの廃止は実質的な”サードバーティ―クライアント潰し”であったために、クライアント開発者による抗議の声も上がっていました。

Twitter、サードパーティーアプリを機能不全にするAPI変更を延期 – TechCrunch

強い抗議を受けて、一旦は廃止の延期が決定しましたが、Twitter側はその2か月後にStreansAPIを廃止することを再び決定。反対を押し切る形で決行されるに至りました。
これを受けて、Twitter上ではオープンソースのミニブログシステムであるMastodonへの移行を考えるユーザーが出始めているようです。
(Mastodonでもサードパーティクライアントが情報を取得できるAPIが公開されており、Webからのアクセスでもタイムラインをストリーミングさせることができます。)

Mastodonへ移行するのか、それともTwitterを引き続き利用し続けるのか、ユーザーはしばらく悩まされることになりそうです。

takahashi 著者:takahashi

Windows10ではWi-Fiの優先度設定が削除されていた… GUIから再び設定できるようにする方法

現在はWindows 10に乗り換えていますが、以前はWindows 7を使っていました。
Windows 7の時は、記憶済みのWi-Fiアクセスポイントが電波が届く範囲で同時に複数あった場合、どのWi-Fiに優先して接続するかを設定することができました。

接続先優先順位変更方法(Windows 7の場合) – Y!Mobile

ところがWindows 10では、優先度を確認することはできますが、優先度を変更する機能は何故か削除されてしまいました。

優先度を変更できないと結構いろいろな場面で困ったことになります。
でも標準ではWindows 10ではコマンドラインによる設定方法しかなく、ちょっと面倒なうえ、頻繁に変更する可能性があるので正直ちょっとやりたくない。
なんとかGUIで変更する方法はないだろうか…と探していたところ、見つかりました…!

W10:ネットワークと共有センターからワイヤレスネットワークの管理機能が削除されていた – Scrap 2nd.

Wifinianというアプリを使うと、GUIから設定が可能らしいとのこと!!

Wifinian – Microsoft Store

しかもWindows 10 Anniversary Update以降であればMSストアからアプリとしてダウンロード可能です!
超ありがたい><

ということで早速インストール!

起動すると、タスクバーに扇型が3つ並んだようなアイコンが常駐し、クリックすると現在登録済みのアクセスポイント一覧が表示され、それぞれのアクセスポイントの状態などが表示されます。

右上の”Reorder”ボタンをクリックすると”Up””Down”ボタンが出現し、クリックすることで優先順位を変更することができます!
ちなみに、自分の環境で試したところ、ちゃんと優先順位が変更されていました!

WindowsはGUIで設定変更を行うのがメインな分、削除されてしまった時のダメージもなかなか痛いです(汗)
機能削除する際は慎重に行ってほしいなぁと感じた次第です。

takahashi 著者:takahashi

PHPからSlack/Discordに、Webhookで簡単に通知を送る。

SlackやDiscordを使っていると何かと便利なのがWebhook通知。

専用のチャンネルを用意し、何かイベントが発生したときの通知などに、メールの代わりにこのWebhookで通知を飛ばしてやることで取りこぼしなく通知を確認できます。

このWebhook、既存のサービスやシステム以外で通知を飛ばしたいときに”どうやってやればいいんだろう?”と思ってしまう方もいらっしゃるかと思います。
調べるとcurlとかめんどくさいパラメータアレコレとか指定するものが多く出てくるのでつい面倒な印象を持ってしまいがちですが、いろいろ調べていたところ、PHPで超簡単にできる方法を見つけました!

PHP から Slack の Incoming webHooks を叩く – Qiita

<?php

//処理内容を定義
function send_to_slack($message) {
  $webhook_url = 'Webhook受付URL';
  $options = array(
    'http' => array(
      'method' => 'POST',
      'header' => 'Content-Type: application/json',
      'content' => json_encode($message),
    )
  );
  $response = file_get_contents($webhook_url, false, stream_context_create($options)); //要求を$webhook_urlのURLに投げて結果を受け取る
  return $response === 'ok'; //$responseの値がokならtrueを返す
}

//メッセージの内容を定義
$message = array(
  'username' => '送付元として表示するユーザー名', 
  'text' => 'メッセージ内容', //Slackの場合
  //'content' => 'メッセージ内容', //Discordの場合
);

send_to_slack($message); //処理を実行
?>

これだけで行けちゃうそうです。
要するに、送付先とデータ形式とメソッド(POST・GETなど)さえ合っていれば、どんな方法でも大丈夫なようです。

ちなみにコードをそのままDiscordに転用する場合は、$messageに入れている要素名’text’を’content’に書き換える必要があります。
‘text’のまま実行してしまうと400エラーが返ってきてしまい、Webhookの内容が送信されません。

上記の内容をテキストエディタなどで書き、
hoge.php
のような適当なファイル名で保存してください

あとはコマンドライン上で

php ./hoge.php

のようにしてやればWebhookが実行され、入力した内容がSlack/Discordに届くはずです。

内容さえ書き換えてやればいくらでも応用ができるので、例えばリモートでサーバーを再起動したときの起動通知とか、システムで障害が発生したときのエラー通知なんかにも使うことができます。

メール通知の場合だと、メールサーバーが落ちて送付できなかったり、通知メールが遅延してしまうことがあったりもするので、Webhook経由でも通知が送れると便利ですね。

takahashi 著者:takahashi

Android 9 Pie が遂にリリース! 早速触ってみた!

今年の5月に開催されたGoogleI/Oなどで発表されていたAndroid P。 その正式版であるAndroid 9 Pieがついに正式リリースされました!

Android 9正式リリース、愛称は「Pie(パイ)」に – Gigazine

今回はかなりいろいろな仕様変更があるということで、GoogleI/O発表時からずっと気になっていました。
Google公式のエミュレーターでは既にAndroid 9が利用可能になっていたので、早速試してみました!
(※自分が持っている端末はAndroid 6なので、 一部Android 6 ユーザー目線で見ていきます。)

早速起動してみると真っ先に表示されたのがGoogleのロゴ。

NexusやPixelシリーズのみ(本当の意味でのAndrioid標準の表示ではない)かもしれませんが、Google謹製な感じが出てていいですね。

Boot後の起動中の表示もシンプルかつお洒落に。

こちらがホーム画面。
検索バーが画面底に移動しました。

エミュレーターでは何故かナビゲーションボタンが旧来のものになってしまっています。
一番体験したかった点なのでちょっと残念です。

サイドボタンを押したときの表示は、画面トップからボタンに近い右端へと移動しました。


電源ボタン長押しメニュー


音量ボタンメニュー


マナーモード切替のボタンが分離され、タップしてモード切替できることが視覚的に分かりやすくなりました。


マルチタスク画面は横並びに変更されました。
下側に表示されているアプリ一覧は、AIによっておススメのアプリが表示されるようです。

ホーム画面を下から上に引き上げるようにスワイプすると


ドロワー(アプリ一覧)が出現します。


設定画面。
画面上部には”App Actions”の機能と思われるアプリ設定の紹介が表示されています。

Google、「Android P」のシステムナビゲーションなど新機能を紹介 – ITMediaNews


端末情報


Androidバージョンはちゃんと9になっています。

バージョン情報をタップしまくると出てくる、Android毎バージョン恒例のイースターエッグ。


目が回りそうwww

タップするごとに色が変わります。

更に長押しすると…


なんとお絵かきアプリが起動!
タッチパネルを使って”お絵かき”を楽しむことができますw

電話アプリ


ダイアルパッドは特に変更はなさそうです。


通話画面


通話履歴画面。
以前のAndroidと違い、タップしてもすぐに発信されることはなくなっていました。

シャットダウン


こちらもかなりシンプルな表示になりました。

全体的に見て、いろいろなところでかなり改良されている印象を受けました。
UIやUXの部分も結構変わっていてとても面白いです。

早く実機でも動作を確認したいですね。

ちなみに、今回使用したGoogle公式エミュレーターですが、最近では一部機種イメージにおいてGoogle Playストアがプリインストールされているものが出ています。
今回使用したマシンイメージもGoogle Playストアインストール済みイメージとなっていて、より実際の実機に近い形で動作を確認することができます。

アプリ開発者にとっては、現在公開中の製品版アプリをPlayストアから直接インストールしてAndroid 9 上での動作を確認することができます。
これはとても楽でいいですね…!

エミュレーターであればPC一台あれば試すことができるので、Android 9 に興味を持った方は是非一度触れてみてはいかがでしょうか?

Android 9 Pie – Google

takahashi 著者:takahashi

Windows 10 版Google Chrome Ver.68 でついにネイティブ通知が実装! 50%のユーザーでテスト中らしい!!

ある日、ふとPCを起動したところ…

…!?

!?!?

なんと!普段から見ているGoogle Chromeからの通知が、Windows10標準の通知センターから行われるようになっていました!!!

Google Chromeは、Windows 10のネイティブ通知に対応 – AMW
以前からGoogle Chrome 68についてはいろいろと記事にしていますが、まさかネイティブ通知が実装されていたとは…

実はこの機能、ずっと前から個人的に切望してしていた機能でもあります。
本来のデフォルトのGoogle Chromeの通知はこんな感じでした。

見た目の部分は見やすくて全く問題なかったのですが、以前実装されていたGoogleChromeの通知センターが廃止されて以降、Chrome通知で見逃した物を再確認する手段が無くなってしまっていました。
また、マルチディスプレイ環境であったり、解像度の変更を行ったりした際に、しばしば表示崩れを起こすことも…

また、Windows10で実装された通知ミュート機能(プレゼン中などにはとても役に立つ機能です)も、Chrome通知に対しては効かなかったりと、なかなか不便な一面がありました。

ちなみにmacOS版Google Chromeでは、 Ver.32からすでにネイティブ通知に対応しており、macOSの通知センターと連携させることができました。

Google ChromeがMac OS Xでネイティブ・プッシュ通知に対応 – Gigazine

Windows10がリリースされ、macOSのような通知センターがWindowsでも利用できるようになったため、Windows版Chromeでもネイティブ通知が実装されてほしいなぁとずっと思っていたので、今回のネイティブ通知実装はかなり嬉しいニュースです。

なお、現在はテスト段階のようで、デフォルトでは全Google Chromeユーザーの50%に対してのみ有効(所謂A/Bテスト)にしているようです。そのため、”えー自分のChromeもバージョン68なのに昔の通知が出てくる”という方も多いかと思います。

正式実装を待つ、という方法もありますが、「そんなの待ってられねぇよ!!!」という方は例によって”chrome://flags”から有効化できます。
URL欄に

chrome://flags/#enable-native-notifications

と入力してエンターキーを押すと

“Enable native notifications.”

という項目が出てくるかと思いますので、この項目のプルダウンメニューを
“Default”
から
“Enabled”
に変更し、再起動します。

これで、Google Chrome経由の通知がすべてWindowsの通知センター経由で表示されるようになっているはずです。

Var.67ではPWAのサポートも実装されましたし、今後ブラウザ経由で通知を受け取る機会はどんどん増えていくかと思います。
GoogleChrome経由で多くの通知を受け取っている方は、設定して損はないかと思いますので、是非試してみてはいかがでしょうか?

takahashi 著者:takahashi

再起動しなくてもUbuntu OSアップデートが自動適用できる! “Canonical LivePatch”

今までOSのアップデートを適用する際、とくにカーネルのアップデートなどは必ず再起動が必要となっていました。
しかし、Linuxカーネル4.0からライブパッチ機能が正式に実装され、再起動を行うことなく更新が取り込めるようになりました。

Linux 4.0リリース候補版にライブパッチ機能が導入 – ZDNet Japan

しかし、この機能は飽くまで”カーネルに機能として存在している”形で、ユーザーが簡単に利用できるようになるかどうかはディストリビュージョン次第、となっています。

そんな中、UbuntuのCanonicalがUbuntu向けに”Canonical LivePatch”の提供を開始しました。

この機能はUbuntu16.04から利用可能となり、18.04からGUIインターフェースが用意され、インストール時やインストール後に、ユーザーが簡単に設定できるようになりました。(※Ubuntu Oneへの登録が必要。無料ユーザーは3マシンまで)
有効化方法などは下記のサイトを見ていただければ分かりやすいかと思います。

【Ubuntu18.04】新機能 LivePatchについて – ガジェット好きの日記

自分も自宅で仮想でサーバーマシンを動かしており、そのホストOSとしてUbuntuを利用しています。
ホストOSを再起動するためには、複数台動作している仮想OSをすべて停止しないといけないためかなり大変でした。

今回のLivePatchサービスのリリースで、再起動することなくセキュリティパッチの修正を受けられるのは非常にありがたいです。
ちなみに、適用するとSSHなどでログインした際に

このように表示され、正常に動作していることが確認できます。

takahashi 著者:takahashi

GoogleMapで”メルカトル図法でない”地図の表示が可能に

Googleマップでメルカトル図法を用いない地図表示方法が実装されたようです。

Google マップがメルカトル図法から球体に進化 – iPhoneMania

メルカトル図法とは、簡単に言うと地球を切り開くような形で世界地図を広げたときに、一番短い部分と一番長い部分の長さが均等になるように引き延ばして表現する方法です。

詳細は下記をご覧ください。
メルカトル図法 – Wikipedia

北極や南極に近づけば近づくほど引き延ばし率が大きくなっていくため、地図上では、これらの地域は実際の面積よりも大きくあらわされてしまいますが、地図としては平面で扱うことができるため、利便性の面でよく利用されてきました。

Googleマップも例に漏れることなく、今まではメルカトル図法で地図を表示してきたわけですが、今回のアップデートでPC版に限り、平面ではなく球面で地図を表現することによりこの誤差をなくした地図が見れるようになりました。

球面マップを見る方法ですが

ハンバーガーアイコンからメニューを呼び出すと

“地球”という項目があるのでここをクリック。

一見何か変わったようには見えないですが…

ちゃんと球体になっています!

この状態で地図を見ると、正しい縮尺で表示されているため、実際の大きさに近いスケールで各地域を見ることができます。

実際の大きさのスケールで見ると、普段見かける世界地図とちがった大きさになるため、とても面白いです。
気になった方は是非試してみてください。

takahashi 著者:takahashi

BacklogにGoogleスプレッドシートを使ってタスクを追加する機能が追加!

Backlogユーザーの皆さん、朗報です。

Googleスプレッドシートから、Backlogの課題を手軽に一括登録! – Backlog

Googleスプレッドシートを利用して、nulab社のプロジェクト管理ツール “Backlog” へのタスクの一括登録ができるようになったそうです!

Google SheetsによるBacklog課題一括登録

親課題との関連付けなども可能だそうです。

なお、Googleスプレッドシートから登録するのに必要なのは

・GoogleスプレッドシートのBacklog用テンプレート
・Backlogプレミアムプラン以上
・自分のBacklogのAPIキー

だそうです。
この辺りの取得方法も公式のドキュメントで詳しく説明されていますので、是非確認してみてください。