投稿

YouTube Iridiumの紹介

イメージ
YouTubeであれがしたい ブロックをしたり, コメントを非表示にしたり. そんなあなたに, Iridiumをおすすめしたい. まえおき というか蛇足だ. 足を頭に書くってのは愚策だろうけどね, 他愛もない話をね. 前までは動画投稿をしていたんだけどね, 今は大学まで一旦休むことにしているんだ. ちょっと前までは “忙しくて” なんて言ってたけど, それは毛頭おかしな話だったんだ. 僕が動画を投稿していた頃は忙しい中, 合間を縫ってやっていたことだ. だいたい動画投稿している人間なんて忙しい人だらけだろう. だから僕は, 忙しいなんて嘯くのはやめたんだ. でも忙しくするのは大事なことだと思う. 本題 僕もコメントを隠すuserscriptを書こうとしたことがあるんだけど, 現在のYouTubeはSPAだからいかんせん作りにくい. どうやって更新を検知したらいいかもわからないし… それで他のスクリプトから学ぼうと思ったら, いたれりつくせりのuserscriptを発見した. まーそれはYouTube++てやつなんだけどそれの後継がIridium. スクショがこんな感じ. わーすごい! 神か? 神なのか??? さきにDLリンクを紹介. https://github.com/ParticleCore/Iridium/wiki/Download 自分の環境にあったものを選べばok. 機能の紹介 いろいろあるよ. コメントをデフォルトで隠すようにする ブロックして表示しないようにする 動画を別ページに移動しても表示し続ける(スマホアプリ版みたいな機能) 動画ページでスクロールしても動画を表示し続ける 他にもたくさんあるし, 細かい挙動を設定で変えられる. 広告は消されるが, 設定で登録しているひとだけ許可, などができる. わーすごい! ブロックはすこし使い方にくせがあるが, 動画のサムネイル時点でホバーをして左上に出てくるBlockを押せばいい. 動画を表示し続ける機能なんかは公式が対応すればいいのにとおもうほど… なんのためのSPAやねん. とりあえずブロック機能がほしかったから, 使いまくっている. 結局コイツがYouTubeの更新をどうやって検知してるかわからずじまいだけど… 設定...

日記N+3

ひさしぶりに日記を書こう. マギが完結したらしい 僕は途中の巻までしか持っていなかったのだけれど, マンガワンで全話が期間限定で公開されているから, 最後まで読んだ. 完結したというのを聞いて, ネタバレに気をつけながら色々調べたら, 伏線が回収しきれてないだとか, まあ色々言われていた. あ, ネタバレはしないから安心してね. 途中から確かにガラリと変わった雰囲気になる. 僕はその後の話が後日談のような感じがして, すごくいいなと思った. マンガワンのコメントを見ると, 同じようなことを考えているひとは結構いて, 「面白くないって言われているから心配したけど, 面白いじゃん」といったコメントが いくつか見られた. 物語ってやっぱりすべては語りきらずに, あとは想像におまかせしますパターンが多くて, あーあのあとどうなったのかなーとか考えるのも楽しいのかもしれないけど, やっぱり作者の世界観で続きがみたいなーと僕は思う. ひとそれぞれなんだろけどね. 例えばCharlotteは公式の続きが見たかったなーと感じる作品. 続きを書いたらありきたりになるだとかいうこともコメントされていたけど, んー, 僕はこういった作品にありきたりを求めていいんじゃないかと, もっとありきたりを欲しているんじゃないかと思う. どっかで聞いたことのあるような定番の, ありきたりの感動ストーリーを求めているんじゃないかな. それに, あんまりネタバレはしないけど, マギはそのガラリと変わった雰囲気のなかでさらにストーリーが進む. 正直話はなんか難しく感じて, 時間をかけて考察することもちょっとできないけど, まあ, いいよ. あといろいろ… …いろいろと思うことを書きたいけど, 鬱記事になっちゃうし, 今回はわりと明るめの話だしもう終えようかな. 別に鬱記事になるとは思っていないけどね, 日記以外のタイトルでいつか書こうかな. いつか, 誰かに話せる日が来ないかな. でもそんな日がきたら, きっと今ある壁を乗り越えた後, そんな話よりもっと明るくて楽しい話ができるだろうな. 楽しみだな.

nitac_mini_ctf参加木

miniCTFやった https://nitaclt.connpass.com/event/92793/ にリモート参加した. 僕は初心者ですらないので, 感覚でやりました. 問題カテゴリを見ても何もわからないので, PPCが競プロ的だと知らずえかすどの問題やれなかったのでちょっと残念だね. 810点とれたのでwrite upをかく. lumaonlyででた. いまとなりの県のどっかのホテルにいるので, そこでやってた. 01: sanity check 送って終わり. 10点. 02: Don’t feel Look えーペイントソフトない〜とか言ってたけど, おわったあとstringsしたらflag最後にあった. 解けませんでした. 03: mosa1c えー灰色だけだなーということで, RGBのうちRだけとって, 0 ~ 255. 知識がなさすぎてbase64かなとか思ったけど, String.fromCharCodeするとflag.pngが見えたのでこれバイナリファイルかなと思ったので, バイナリで解釈して, fileしたらzipなのでunzipして終了. 200点げっと. d = document . querySelectorAll ( "div" ) Array . from ( d ) . map ( e => e . style . backgroundColor ) . map ( el => + el . match ( /\d+/ ) [ 0 ] ) . map ( e => "\\x" + e . toString ( 16 ) ) . join ( "" ) こんな感じのもの書いてコピーして, echo -en "貼り付け" > hoge.bin した. 04: easyBIOS 05: xipher 06: Intro to AES AESで暗号化したことなんてなかったのでNode.jsでdecryptしようとしたけど, DLしたファイルをちょっと書き換えるだけでいけた. require 'openssl' # flag = "NI...

うくこん

大悪魔様の誕生日です. https://beta.atcoder.jp/contests/ukuku09 lumasdqina で luma + ecasdqinaででました A 見てない>< エカスドが通した B なんか自明な貪欲があるのでそれと同値のものを数えるといい. C ダイクストラだなって思ったのでダイクストラしたらTLEして無限に申し訳なくなって, よく考えたら01BFSどころか1BFSだったのでそうしたら通った. D Manacherして色々考えてダメそうって思ったけど, 二分探索がきれいにハマった. E 考察してもうだめだと思うなどした. 楽しかった. 5位だったのでとてもうれしいね.

codeFlyer参加木

codeFlyer2018本選参加してきた 予選は4完. 本選は行けるとこまで走って溶けそうなやつを食べようと思っていたので, そうしたけど, 青なので運がほしいね. 結果はABCの3完. Eを考察した. うーん, 逆ポーランドみたいに木にしてダブリング頑張って+のとこで0になるやばいのとか頑張ったけれども, 答えが全て0になった. 本番終わり, メインの懇親会. たっぷり1時間ぐらい壁さんとお話しました, かわいい. 人間さんとも喋りました, 言葉が通じるってすてき.

アルゴリズムは女の子#1

アルゴリズムは女の子#1 アルゴリズムの気持ちがわかりたい. アルゴリズム覚えるだけが増えているので少しメモを書いていきます. お品書き 趣旨は 実装を速攻で書けるように , です. OJ作ったならば実装道場みたいなの作りたいですね. FFT KMP Manacher Z-algorithm ようこそ精進道場へ Warshall-Floyd なんとなくDPなのはわかりますがほぼ暗記するだけみたいなところありますね. k以下の頂点しかない場合の全点対最短路だと考えると, といった感じでしょうか. 間違えないので書きません. FFT これだけで記事一つになりそう… 実際実装するなら毎回導出している時間はないですね. というわけで実装を暗記する,ということも必要ですね. long doubleだと心配なので,NTT, CRTでの復元は使えるようになっておきたいです. 任意modはよくわからないです. 基本 complex<double> で書いてみます. 原始根には e x p ( 2 π i / n ) exp(2 \pi i / n) e x p ( 2 π i / n ) を使います. 高校数学の複素数さえわかればガウス平面で図形的に直行性を感じることができます(また(有限)等比級数の和の公式からも示せます) NTTを考えるにしても,この環が見えているとだいぶ理解しやすいと思います! // a.size() is 2 ^ k vector < comp > fft ( vector < comp > a , bool inverse = false ) { int n = a . size ( ) ; if ( n == 1 ) return a ; vector < comp > a0 ( n / 2 ) , a1 ( n / 2 ) ; for ( int i = 0 ; i < n / 2 ; i ++ ) a0 [ i ] = a [ i * 2 ] , a1 [ i ] = a [ i * 2 + 1 ] ; a0 = fft ( a0 ) ; a1 = ...