ブラクラURL書き込みの話
アラートがループするリンクを貼っただけで補導されるニュースがありました。
実際どんなものなのか作ってみたのですが、寝起きでパパッとできるレベルでした。
https://oriharu510.github.io/13girl
(タブ閉じれば消えます)
実際結構うっとおしいやつです。
でも正直こんなもので補導するのかって思う側の人間ですが、ニュースのコメントを読んでいると
・パソコンに詳しくない高齢者などはパニックになる
・緊急時などで損害が出たらどうするんだ
・これを許せばもっと悪いことをしていたかも
といった意見がありました。
悪意を持ってこういうサイトを貼ること自体はモラルがないと思いますが、
社会の基準が能力のない側に揃えられるのは、全体のレベルが下がっていくのでよくないよなと感じました。
極論を言ってしまえばとなりのトトロでのセリフ
「おまえんち、おっばけや~しき~」
これもう虚偽の情報による信用毀損罪とかにできちゃいますよね
いつだったかPCデポの高額解約金問題なんてのがありましたが、あれは炎上しただけで警察沙汰にはなってません。
知識のない高齢者に高額契約を結ばせるのはよくある手口だし、実際にお金が発生してるのでより悪質な気がしますが、これはOKでいたずらリンク貼るだけのはアウトなんですね。
自分には何が違うのかよくわかりません。
実家を思い出す目覚めのニュースを作ってみた
こんにちは!
今回はSFの世界をちょっとだけ実現させてみました。
SFの朝
突然ですが「バックトゥーザフューチャー」って映画、ご存知ですか?
名前は聞いたことあっても見たことはないという人も多いかもしれません。
SF映画の代表作として非常に面白い作品でして、AmazonPrimeで見る事ができるので
ぜひ見て観てください。
そんなバックトゥーザフューチャーは朝8:00頃の科学者ドクの部屋の様子から始まります。
時間になると自動でラジオやTVが起動し、朝ごはんがカラクリによって作られていきます。
流石に古い映画ですのでゴテゴテの機械まみれですが、
朝の身支度を全自動で行ってくれる、そんな未来を想像したことはないですか?
現代ならそんな装置を作るのも不可能な話ではないと思います。
そんな訳で、今回はその一部を作ってみました。
どの部分?
今回作ったのは、定刻になると自動で朝のニュースが流れ始めるものです。
イメージとしては、朝起きたら父親が今でニュースを観ていた、みたいな感じです。
ただ一人暮らしではTVもわざわざ買わないので、Abemaニュースを使います。
やり方
自動でやるとなると、時間を検出してwebページを開くアプリを作るのかなーと考えていたのですが、常時プログラムを起動しっぱなしにするのも嫌です。
しかしMacをお持ちであれば、コードを書くことなく実現可能でした!
MacにはAutomatorというアプリがあり、これとカレンダーアプリを連携させることで実現させます。(存在すら知らなかった)
これはどんなアプリかというと、Macでの特定の動作を自動化してくれるものです。
例えばあるファイルにある写真データを変換してどこかにアップロードする、といった動作をまとめて行ってくれます。
起動したらカレンダーアラームを選択します。
これを選択することで、作成したアクションをカレンダーで設定した時刻に発火する事ができるようになります。
Automatorは変数を保持できるので、手順としては
AbemaTVのURLを読み込ませる→(音量調整)→Webページを開く
となります。
目覚ましのつもりで使うので少し大きめの音量になるように途中で調整を挟みました。
実際に入れた画面がこちら
画面右側に3つの項目が入っている事がわかります。
この状態で実行ボタンを押してニュースが流れたら成功です。
そして名前を設定して保存を行うと、カレンダーアプリが起動しAutomatorという項目が追加されていると思います。
カレンダーの現時刻の所に、先ほど設定したアクションがイベントの一つとして追加されています。
あとはこのイベントの時刻を起床時間に変え、繰り返しを毎日にすれば完成です!
毎日イベントが予定されている事がわかります。
普通にカレンダーを見たいときは、左上のAutomatorのチェックを外せばこの文字は見えなくなります。
ちょっと問題が
ただこれで設定完了!と思って次の日になってもニュースは流れないと思います。
というのもスリープ状態ではAutomatorは実行されないんです。
この時刻になったらスリープを解除してもらえばいいので、
「起動またはスリープ解除」の時刻を設定する事ができます。
ここも起床時刻に合わせる必要があります。
さらに、Macにログインパスワードを付けていると、当然ログイン画面で止まってしまいます。
そのためセキュリティとプライバシーの項目にて「スリープ解除時にパスワードを要求」のチェックを外しておく必要があります。
ここだけは自己管理でお願いします。
実際に使ってみて
普段ニュースはTwitterでたまに見るぐらいですが、こうやって勝手に流れてくれると便利ですね。
これを作ってから2ヶ月ぐらい経ちますが、朝目覚めてニュースがついていると、実家暮らしだった時に朝早く親がテレビをつけて朝ごはんを作ってくれている光景を思い出します。
なんかSFの世界でワクワクというよりちょっと実家が恋しくなりましたとさ。
友達の依頼でお手軽にwebアプリを作った話
こんにちは!
本当に気が向いたらレベルでしか更新してないなーと思いつつ、
書けそうなネタができたので書いきます。
きっかけ
僕の友達が未だにスマブラXのオンライン対戦やってるのですが、
デュエリストという特殊ルールを極めてるみたいです。
↓彼の動画
(Wiiハック手伝ったのはいい思い出)
この遊び方ではアイテムを使用してますが、使用するアイテムをランダムで決定してくれるアプリを作って欲しいという依頼が来ました。
例えばスマッシュボールは10%、ホームランバットは30%みたいにアイテム毎に出現率を調整して、それを1ボタンで表示しようというものです。
中身としてはランダムの配列を作って画像表示するだけなので簡単ですが、
実際にwebアプリにするってどうやるんでしょうか?
今回は僕がやった手っ取り早く実装する方法を紹介したいと思います。
開発環境やらエディタの設定やらはなんかは面倒なのでやりません!
PCには何もインストールしません!
手順
(1) 最初に使い方を決めます。今回はWiiで遊びながら使うものなのでスマホで見る事がメインとなります。
スマホブラウザで何かしらのURLを入力したら、作ったアプリが開くという形です。
静的Webアプリなので、とりあえずHTML、CSS、JavaScriptがあれば動きそうです。
フレームワークとか使うの面倒なのでほぼこの3つだけでやっていきます。
・画面構成はスマブラXのアイテムスイッチと同じ感じで、ランダムボタンが一つ
・ON画像とOFF画像を入れ替える
・各アイテムの出現確率を設定から変えられるようにする
実際に作る際には、画像を何回も配置し直したりしたので
表示画面を作るのが一番時間かかりました....
(2) 次にこれらのファイルはどこかのサーバーに保存する必要がありますが、
これはGithubだけでできます。Githubには、静的なHTMLファイルをGithub上で開いてくれる機能があります。
この方法だとURLは設定できませんがURLなんてなんでもいいです。
つまり、
Githubにアカウント作る→リポジトリを新規作成→index.htmlぶち込む
これでアカウント名がSmash、リポジトリ名をBrothersとしていたら
<https://Smash.github.io/Brothers/>
ここにアクセスすればもう自作アプリの完成です。
(3) 実装する部分は目安が立ったので、次は中身を作っていくのですが、
流石にメモ帳でコーディングは出来ませんし、デバッグするにもいちいちGithubに上げて確認するのは手間です。
そこで登場するのが、Cloud9!
lolプレイヤーだとコスプレイヤーのいるNAのチームしか頭に出てこないと思いますが、そのままそこの企業なんです。
Cloud9というのはいわゆるVisual StudioやEclipsのような統合開発環境なのですが、
便利なことにオンライン上で使う事ができます。
オフライン環境では使えないという欠点はありますが、
今時ネット環境なしでやる方が珍しいでしょう。
個人的にはかなりおすすめのIDEです。
何よりパソコンに何も入れなくていいので、本当にお手軽です。
↓アカウント作成方法
実際に今回作っていた時の画面です。
左側のフォルダーのとこにpngファイルやらcssやらを放り込んで、中央のエディタでコーディングします。
ちゃんとエラー通知や補完機能もついてるのでかなり使いやすいです。
apatchも搭載されているので、Previewボタンからアプリをその場で起動して動作チェックもできます。
そして完成したら、下段のコンソールから先ほど作成したGithubのリポジトリにPushします。
Gitの使い方はサルワカさんのサイトがわかりやすいと思います。
はい、これでもう完成です。
出来たもの
実際に今回作ったものをここに置いておきます。
スマホ表示をメインで作ったのでPCだとちょっと歪んでるかもしれません。
動作確認にもよく使いますが、
右クリック→検証からスマートフォン表示にする事ができます。
ソースコードはこちら
GitHub - Oriharu510/ssbb_itemswitch
見ればわかりますが、htmlとcssとjavascriptファイル、
あとは表示用のpngファイルがあるだけです。
jQuery勉強した〜ぐらいの方ならもう簡単なアプリを作れると思います。
まとめ
お手軽にWebアプリを実装するには?
・仕様を考えよう!
・Cloud9でオンライン開発!
・Githubにぶち込んでおしまい!
あとがき
プログラミングって本で勉強したりスクールに通ったりするのもいいんですけど
こうやって実際に作ってみて誰かに上げたりするのが楽しいです。
以前学校で英単語の試験があった時に、テスト対策のアプリ作って配ったんですね
それで試験が上手くいったとかで大層喜んでくれたのをよく覚えてます。
自分はアプリ作って満足して全然解けなかったのはまた別のお話。
Bootcampを使ってWindows版lolを入れてみた話
先日の記事でMac版のlolには不具合が多いという話をしました。
正直ハイライトが保存できないのがしんぼうたまらんぜぇ~ということで、
MacにはBootcampというソフトを使うことでWindowsを動かすことができます。
そこで今回はMacBook上でのWindows版lolを試してみたいと思います。
ちなみに自分の環境はMacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)です。
Windowsの導入
Bootcampを使ってWindowsを導入するのは以下のサイトを参考にしました。
詳しくやり方が書いてあるので詳細は省きますが、
自分の環境と異なっていたことを書きます。
初めに大きめの外部ストレージが必要と聞いていたので
16GBのUSBを用意していたのですが、
「はじめに」の画面から進むときに外部ストレージを外すよう警告されました。
次にステップ2の「作業を選択」というページが無くパーティションのサイズ指定に移りました。
そこでwindowsを40GBに設定したらもうインストールが始まりました。
記事ではいろいろ設定する項目が書いてありますがほとんど出てこなかったです。
30分ぐらいでインストールが完了するとMacがいったん強制終了し、
Windowsの初期設定画面へ移りました。
ここでMacとWindowsでキーボード認識が異なるため若干戸惑いましたが、
Macのキーボードのcapsキーが、Windowsの日本語と英数の切り替えになっていました。事前に対応表を見ておくといいと思います。
またその後の設定も省略されており、Windowsのインストール先の設定がなかったです。
なんでですかね。
Windows画面でのBootcampインストーラは記事の通り読めなくなっていたので、
いったん削除してからアプリの表示サイズを変更したらできました。
これにてWindows環境の完成です!
結局USB使わなかった......
LOLを試してみる
Windowsを入れて軽く動かしている分にはスペックの劣化などは感じなかったので
ゲーム上ではどうなったか見てみます。
ちょっと画質悪いですが、中画質設定でfpsは100近く出ていました(動画内では60固定)。
お得意のRQコンボもできてます。
少し動かした感じグラフィックに若干の遅延が発生することもありますが
これはMac版の時もなってたのでスペックの問題ですね。
総じていえば Mac版と比べて、動作が軽くなったような気がします。
当然文字が青色になったり全体チャット書けないなんかのバグは発生してないので
ストレージを食うことだけに目をつぶればかなりいい感じです!
WindowsとMacOSを切り替えるにはPCを再起動して、
起動する時にoptionキーを長押ししておけば選択画面が出てきます。
ゲームするときはWindows側でやろうかな~
MAC版LOLのバグについて
こんにちは!
私はLeague of legendsをmacbookproでプレイしているんですが
windows版と比べると厄介なバグが発生します。
今回はそのバグについて紹介します。
(1)名前が読みづらい
これが一番気になるバグなのですが、対戦中のチャット表示されるチャンピオン名などが
全部青色になる現象です。
パッと見ではもはや読めないです。
これについてはRiotサポートに聞いて見たのですが、これは日本サーバーのMacOS限定でのバグだそうで現在修正中とのことです。
正直......本当に修正されるんですかね........
(2)戦利品が全部表示されない
戦利品/クラフトの画面では、スクロールすると本来アイコンがある場所が真っ暗になってます。
上からカーソルを合わせるとその合わせた場所は治ります。
一度明るくしたところもスクロールして隠してしまえば、また暗くなってしまいます。
(3)キーボード入力を受け付けなくなる
これは自分の環境だけなのかわかりませんが、
チャンピオンピック画面からサモナーズリフトへ移動する途中のロード画面中に、
画面切り替えでOP.GG見たりしますよね。
それをすると、時々サモナーズリフトに入った段階でキーボード入力ができなくなります。
毎回じゃないので気をつけてれば大丈夫ですが、なってしまったらlolを強制終了するしかありません。
(4)リプレイ中に録画できない
今年の9月下旬からMacOS Mojaveがリリースされました。
私は特に気にせず言われるがままアップデートしてしまったのですが、
これがなかなかの不具合持ちでした....
個人的に一番キツイのが、リプレイ中に保存ボタンを押すとその瞬間リプレイが終了してしまうことです。
終了というよりクラッシュしてバグレポートが出てくる感じですね。
(5)謎のアイコン
Mojaveにしてから、Dock右下に最近使用したアプリが表示される(?)ようなのですが
LOLの場合古いアイコンが一緒に出てきます。
これをクリックすると、何も開かずバグレポートが出てきます。
取り敢えず5つあげてみましたが、おそらく他にもあると思います。
Mojaveについてはバックアップも取ってなかったので、
Riotが対応してくれるまで待機ですかね........
正直Macだと外部ツールなども使えないので、LOLやるならWindows一択だと思います。
Bootcampでも使ってwindows環境作ろうかな〜
続きを読む
ちょっとした愚痴
こんばんは
現在1:30ですがせっせと実験レポートを書いています。
毎週10ページ近く書くのでこういう考察とか書くのは慣れますけど
正直めんどくさくて慣れたくもないですね。
そんな感じでレポートの続き書いてきます......
検証 : たくまんプロがキルを集めると本当に試合に負けるのか!?
こんにちは オリハルです。
私はLeague of legendsが好きでよくTwitch配信を見ているのですが、
その中でもたくまんプロが一番好きです!
さてそんなプロの配信の中でも度々出てくる説の一つに、
「たくまんプロがキルを集めると負ける!」
というものがあります。
見ている限りではこの説は本当のような気がしますが、
実際のところどれくらい勝率に影響しているのでしょうか。
今回はそれをやっつけ調査して見たいと思います!
Riot APIを使って
とは言うもののOPGGやRiot公式ページから1試合ずつ確認していくのは途方も無い作業です。
そこでRiotが発表しているRiot APIを使って、
過去の対戦データを解析してみたいと思います。
(詳細はこちら Riot Developer Portal)
今回はPythonでAPIを叩いて、過去データを取り出します。
プログラムに関することは面倒なので、ざっくりに説明すると
"ttps://jp1.api.riotgames.com/lol/summoner/v3/summoners/by-name/{サモナーネーム}?api_key={APIキー}"
こう言ったURLをurllibを使って開いてあげることで、
そのサモナーのマスタリーレベルや独自のIDなどが取得できます。
これを使ってたくまんプロの独自IDを取得し、
そのIDから過去の試合をおそらく全て見ることができます。
def get_match_list(sum_id):#試合のIDlist
api_match_v3 = "ttps://jp1.api.riotgames.com/lol/match/v3/matchlists/by-account/"
try:
s = urllib.urlopen(api_match_v3 + str(sum_id) + "?api_key=" + api_key)
summ = json.loads(s.read().decode('utf-8'))
except Exception as e:
print "err" + str(e)
sys.exit()
return summ['matches']
こんな感じで一度に100試合分取り出せます。
このようにして、
・プロのチームメイトがキルをとった時間
・プロがキルをとった時間
・試合の勝敗
この3つをとりあえず100試合分取り出しました。
計算の前に
まず「キルを集める」がどう言う状態か決めます。
ここでは単純に、(個人のキル数/チームの総キル数)で計算してみます。
Top/Jg/Mid/Adc/Supの五人でキルを分割するとして、
1人20%持っていれば平均であるとします。
ただ当然ロールによってキルの集まりやすさは違いますが、
とりあえず20%以上なら「キルが集まっている状態」としてみます。
次に比較対象について、
せっかくキルをとった時間が分かるので、
「序盤にキルを集めている時」と「全体でキルを集めている時」も見てみます
なんとなく序盤にキルを集めているときはより負けやすい気がします。
いざ検証
とりあえず500試合ほどデータを抽出できましたので、
試合時間が10分、15分、20分、終了時の段階でのキル率とその勝率のグラフを4つ作成しました。
当然試合時間が長くなるほどキル率の種類が増えるので、
サンプル数が少なくなり1と0に分かれてしまってますね。
そこで15分以降のグラフは0~5%、5~10%と言うように5%刻みの平均に変えてみます。
それがこちら
では一つずつみていきます。
・~10min
グラフが右に行くほどプロ"のみ"がキルを取ったことになります。
面白いのは20%付近の勝率が非常に高くなっている点ですが、
これはチーム全員が均等にキルを獲得したということですので
おそらく全レーン勝ちの状態なんでしょう。
また10分の段階でキルがプロだけに入っていると、勝率は32%ぐらいですね
・~15min
キル率40%を境目に勝率に大きく差が出ており、
勝率70%越えが一気に20%以下になっています。
さらにキル率80%を越えると勝率0%になってしまいました。
・~20min
このグラフでは~10minや~15minと比べて、
キル率30~60%の勝率が全体的に上がっています。
恐らくですが、同じ50%でも1:1:1:3:0のような割合と3:1:3:7:0のような割合では
他のチームメイトの育ち具合が違いますので、そこで勝率が上がったのでは無いかと考えました。
・End Game
全部合わせると勝率50%超えてるように見えますが、
一つの点に含まれているデータ量に差があるので点ごとに信頼度の差があります。
キル率40%近くでも勝率は50%を超えている為、
終盤の集団戦でキルを取ってそのまま勝つことが多いのでしょうか。
全体的に右下がりなので、「たくまんプロがキルを集めると負ける」という説は
基本的に正しいのではないでしょうか。
またやはり序盤によりそれが顕著に現れる結果となりました。
ただ面白いことに、10min、15min、20minでキル率が高い地点で勝率100%になっている点があります。
つまりキルを持つと基本は負けやすいですが、
時々スーパーキャリーもしているということですね!
まとめ
Riot APIを使って過去500試合を調査したところ、やっぱり説は正しかったようです。
ただ私はデータサイエンティストでもなんでもないので、
もっといい調べ方があるような気もします。
序盤にキル率20%で勝率がかなり高くなるというのは、
考えてみれば当然なのですが、こうやってグラフにしてみるとそれが明らかになるので面白いですね。
ここまで読んでいただき、ありがとうございました!