なずなちゃんがかわいい

この記事は、TUT Advent Calendar 2017 15日目の記事です。

 

概要

なずなちゃんがかわいい

 

第一部

2017年12月11日、きららファンタジアが公開されました。
しかしサービス開始直後から接続が不安定で、接続できないまま指を咥えていました。

f:id:DCCCXIII:20171213114420j:plain

このときは接続できる人も居たらしく、時折スクリーンショットが流れてくるので自分はプレイできないにせよ様子を探ることができました。


キャラ紹介で各作品から二人しか紹介されていなかったので、なずなちゃんは初回リリースでは出ないのかなと思っていたところガチャ結果のスクショになずなちゃんを見つけて喜ぶオタク

 


更に☆4があることを知り初回ガチャループが長くなりそうだと悟るオタク

 


プレイできないので、ガチャで引ける確率を計算し始めます。

 


10回中少なくとも1回という確率を考える場合は、10回全て失敗する確率を計算して、1から引けばいいわけですね。いわゆる「余事象」というやつです。

 


10回中少なくとも1回0.29%を引く確率が2.8%なわけですから、更にゆのっち☆5を同時に引くのはかなり厳しいことが分かります。

 


無茶言わないでください

 


キタ━(゚∀゚)━!

 


来なかった

 

キタ━━━━━━━━━(゚∀゚)━━━━━━━━━!

 

こうして、ようやく初回ガチャを回す旅に出ることができたのでした。
そしてついに…!


…………。

 

こうして、きららファンタジアは52時間半のメンテナンスに入るのでした。
(まだなずなちゃん☆4引けてない)

第一部

第二部

運営「もうちょっとだけ続くんじゃ」

第二部

第三部

主は三日後に復活された。



サービス再開に喜ぶオタク
結局63時間のメンテとなりました。ドリコムさんお疲れ様でした。

 

初回10連ガチャを回しました。
f:id:DCCCXIII:20171215192344p:plain
f:id:DCCCXIII:20171215192203p:plain
f:id:DCCCXIII:20171215192234p:plain
f:id:DCCCXIII:20171215192301p:plain
f:id:DCCCXIII:20171215192322p:plain

そして……


(ちなみに、その前に50十連くらいでなずな☆4引いて仮で始めたアカウントがあるので、合計約270十連となります。)

ゆの☆5 & なずな☆4です

f:id:DCCCXIII:20171215193226p:plain

カード。かわいい!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

f:id:DCCCXIII:20171215193302p:plain
f:id:DCCCXIII:20171215193339p:plain

f:id:DCCCXIII:20171215193406p:plain
立ち絵。かわいい!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 


でも乃莉ちゃんが出ないんですよね。

あと、そうりょ二人だと火力が厳しいんですよね。
f:id:DCCCXIII:20171215194540p:plain
f:id:DCCCXIII:20171215194508p:plain2章27節で厳しくなってきました。ナイトが欲しい…

ということで、2十連とチケット、☆4確定チケットを回したのですが駄目でした。
育成、どうやるのが良いんでしょう?アドバイスお願いします。 

 

以上、ガチャ報告でした。

f:id:DCCCXIII:20171215202206p:plain
プレイヤーの皆さんはよろしくお願いします。

なずなちゃんがかわいい!
f:id:DCCCXIII:20171215202527p:plain通常グラもかわいいよ〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

 

(えっちょっとまって可愛すぎでしょ…)

 

明日はあしゅりーさんです。

www.slideshare.net

 

ドイツのトリAdvent Calendarはこちらです
adventar.org

前衛音楽で頭を溶かす

f:id:DCCCXIII:20171213094942p:plain
「ミカーシャ」または「エレナ」という名前に覚えのある方はご連絡ください。

この記事は、脳みそ溶かされた音楽 Advent Calendar 2017 11日目の記事です。

ちなみに今日は12月12日です。つまり1日遅刻です。すみませんでした。 

 

はじめに

早速ですが、皆さんは普段現代音楽、あるいは前衛音楽を聴く機会があるでしょうか。

あまり聴かないというなら、この記事の内容はあまりおすすめできません。無理のない範囲でお楽しみください。

また架空の新興宗教を題材とした楽曲を取り扱うため、これらの内容を避けたい方はブラウザのバックボタンまたは閉じるボタンを押すことをお勧めします。

音源をお探しの方、申し訳ありませんが、今回紹介する作品のフル音源は2017年12月11日現在ありません。上演日時と関連作品の音源、作品の一部分の音源を紹介します。

 

TL;DR

 

本題

先週土曜、三輪眞弘によるモノローグ・オペラ『新しい時代』を見てきました。

まず、このオペラについてのストーリーと世界観を引用します。

このオペラの主人公は、14歳の少年である。ストーリーは、この少年がネット上に漂う情報の中から「新しい時代」の神のメッセージを聞き取って、ネットワークの中に自分という存在の情報を解放し、そして余剰になった自分の物理的存在を「消去する」(つまり自死する)というものだ。

伊東信宏, 『新しい時代』曲目解説

地球規模で結ばれた現代のデジタルネットワークは莫大な知的情報を集積、処理する知の書物となり個々の人間の能力をはるかに超えた地球全体の頭脳となる。……
この不思議なコードの意味を直感した一部の人々は……人間の悟性に直接メッセージを伝えているものであることを発見し、ネットワーク上に宗教ともいえる信仰が自然発生的に生まれた。

三輪眞弘, 声のような音/音のような声

 

この作品が音楽的にみて何が"ヤバい"のかというと、上演時間90分のうち多く(体感半分ほど?)をコンピュータによる自動作曲された音楽が占めるということです。具体的にはこれ(開くと音声が再生されます)と、それに似たものです。

第二部で演奏される「言葉の影、またはアレルヤ —Aのテクストによる—」ではフォルマント合成*1を楽器によって実現することを試みています。しかし、これらの"声"が言葉を成すことはありません。そうしてまた空間に散ってゆき、ここにあるようで微塵もここにない、そういった不思議な感覚を呼び寄せるのです。

作品の魅力は"声"だけではありません。残りの時間は人類(つまり三輪眞弘)による作曲なのですが、これもまた深く考え込まれているのです。ある時は日本の五音音階を感じさせる歌が、ある時は西洋の教会旋法を感じさせる歌が。つまり東西の古謡が並ぶのですが、最終的に「独唱曲:新しい時代」でこの二つが同じ音楽に組み込まれるのです。

 

考察

さて、現実でも人々は"ネットワークによる演算"と、その結果に価値を見出しはじめています*2し、電脳化もそれほど遠い未来の話ではないと思います。東西の音楽の統一に関しては昭和の時代に実現されました。

そう考えると、いつかはこの作品と同様に人工知能による宗教が生まれるのではないかという気がしてきます……

 

音源紹介

 

  • The New Era Songs of the Believers (開くと音声が再生されます)
    この作品の根幹ともいえる、コンピュータによって自動作曲される音楽です。
    毎時58分ごろから10分ほど聴くことをお勧めします。
  • 言葉の影、またはアレルヤ
    これもまた、コンピュータによる自動作曲です。フォルマント合成を試みます。
  • 新しい時代 信徒歌曲集
  • Soul Source presents“ROUTINE”Compilation
    トラック14「Wach jetzt auf!」が「新しい時代」の縮小ともいえます。
    音源が欲しければここから始めるのが良いのではないかと思います。(ジャンルを超えたコンピレーションアルバムなので、自分に合わなければ他の楽曲を聴けば良いのです)
    ちなみに和訳は「今すぐ目覚めよ!」となります。

 

明日の記事はejo090さんです。私が遅刻したので、すでに上がっていますね。

ejo090.hatenadiary.jp

 

以上、ありがとうございました。

*1:ヒトの声(の母音)は高々2つの正弦波によって再現できる、という音声合成の基本的理論

*2:つまりはブロックチェーンによる仮想通貨のことです

正規表現入門

この記事は、TUT Advent Calendar 2016 - Adventar の13日目の記事です。

エクストリーム正規表現入門はこちら

 

813.hatenablog.com

 

正規表現とは?

正規表現は、文字列のパターンを表す文字列である。これによってgrepなどで検索や置換をすることができる。
プログラミング言語にかかわらずエディタでも同様に使えるため、プログラムを書かない人も、覚えると便利だと思う。

今回は環境構築等を省くため、ブラウザ上で動く以下のツールを紹介する。
PHP正規表現チェッカー
ただ、正規表現は言語や環境で大きく変わるものではないため、リンク切れやうまく動かない場合は適当なツールで試すことができるはずである。

正規表現を学ぶ前に

まず大事なことは、最初から正規表現で全てを表現しようとしないことである。
入力値の法則を完璧に見極めないうちから細かな正規表現を書くと、人的リソースや計算リソースを浪費するばかりでなく、正常な動作が損なわれる原因にもなる。

投稿日時: 2016/9/7 1:23:45
最終更新日時: 2016/11/29 23:0:0

投稿日時: 2016/08/10 11:45:14
最終更新日時: 2016/08/10 11:45:14

こんなテキストから投稿日時を抜き出すとしよう。今回説明することをマスターすれば、下のような正規表現は簡単に書くことができるようになる。この記事を読み終わったら戻ってきて解読してみてほしい。

(?<=投稿日時: )(\d{4}/(?:0?[1-9]|1[0-2])/(?:0?[1-9]|[12]\d|3[01]) (?:[01]\d|2[0-3])(?::([0-5]\d))+)

しかしこれは4月31日や平年の2月29日も含めてしまうし、もっと致命的な例では閏秒を含まない。日付チェックなどは組み込み関数やライブラリに任せてしまって、正規表現ではそれっぽい箇所を抜き出すだけに留めるべきである。以下で十分だ。

(?<=投稿日時: )(\d{4}(?:/\d{,2}){2} \d{,2}(?::\d{,2}){2})

長々と正規表現を書いていると、気持ちよくなってきて更に長い正規表現を書いてしまう人がたまに居るが、あくまで奥の手か孫の手くらいにしておいて、複雑な正規表現をプログラムでゴリゴリ回すのはやめるべきである。メンテナンス性が悪い上に重くなる可能性が高い。

続きを読む

エクストリーム正規表現入門

この記事は、TUT Advent Calendar 2016 - Adventar の13日目の記事です。

正規表現入門はこちら

 

813.hatenablog.com

 

上司「正規表現を使うと文字列を条件によって置き換えることができる」

めう「できるめう」

上司「でも正規表現で計算はできない」

めう「perl正規表現内サブルーチン呼び出し等を除いてはできないめう…」

上司「そこで正規表現を幾重にも繰り返す」

めう「

上司「正規表現を使って加算ができた」

めう「やっためう!すごいめう!」

f:id:DCCCXIII:20161213235212p:plain

minimapの前半が圧巻。

トレースはこんな感じ。文字列として計算しているので、数千桁の精度で計算できる。

> ./regAdd.py -t 9009 29011
    : 9009+29011
================ pre ================
0000: 9009_+29011
0001: 9009_+29011_=
    : 9009_+29011_=
converged


================ main ================
0000: 9009_+29011_=
0001: 9009_+29011_=
0002: 9009_+29011_=
0003: 9009_+29011_=
0004: 9009_+29011_=
0005: 9009_+29011_=
0006: 9009_+29011_=
0007: 9009_+29011_=
0008: 9009_+29011_=
0009: 9009_+29011_=
0010: 9009_+29011_=
0011: 9009_+29011_=
0012: 9009_+29011_=
0013: 9009_+29011_=
0014: 9009_+29011_=
0015: 9009_+29011_=
0016: 9009_+29011_=
0017: 9009_+29011_=
0018: 9009_+29011_=
0019: 9009_+29011_=
0020: 9009_+29011_=
0021: 9009_+29011_=
0022: 9009_+29011_=
0023: 9009_+29011_=
0024: 9009_+29011_=
0025: 9009_+29011_=
0026: 9009_+29011_=
0027: 9009_+29011_=
0028: 9009_+29011_=
0029: 9009_+29011_=
0030: 9009_+29011_=
0031: 9009_+29011_=
0032: 9009_+29011_=
0033: 9009_+29011_=
0034: 9009_+29011_=
0035: 9009_+29011_=
0036: 9009_+29011_=
0037: 9009_+29011_=
0038: 9009_+29011_=
0039: 9009_+29011_=
0040: 9009_+29011_=
0041: 9009_+29011_=
0042: 9009_+29011_=
0043: 9009_+29011_=
0044: 9009_+29011_=
0045: 9009_+29011_=
0046: 9009_+29011_=
0047: 9009_+29011_=
0048: 9009_+29011_=
0049: 9009_+29011_=
0050: 9009_+29011_=
0051: 9009_+29011_=
0052: 9009_+29011_=
0053: 9009_+29011_=
0054: 9009_+29011_=
0055: 9009_+29011_=
0056: 9009_+29011_=
0057: 9009_+29011_=
0058: 9009_+29011_=
0059: 9009_+29011_=
0060: 9009_+29011_=
0061: 9009_+29011_=
0062: 9009_+29011_=
0063: 9009_+29011_=
0064: 9009_+29011_=
0065: 9009_+29011_=
0066: 9009_+29011_=
0067: 9009_+29011_=
0068: 9009_+29011_=
0069: 9009_+29011_=
0070: 9009_+29011_=
0071: 9009_+29011_=
0072: 9009_+29011_=
0073: 9009_+29011_=
0074: 9009_+29011_=
0075: 9009_+29011_=
0076: 9009_+29011_=
0077: 9009_+29011_=
0078: 9009_+29011_=
0079: 9009_+29011_=
0080: 9009_+29011_=
0081: 9009_+29011_=
0082: 9009_+29011_=
0083: 9009_+29011_=
0084: 9009_+29011_=
0085: 9009_+29011_=
0086: 9009_+29011_=
0087: 9009_+29011_=
0088: 9009_+29011_=
0089: 9009_+29011_=
0090: 9009_+29011_=
0091: 9009_+29011_=#0
0092: 9009_+29011_=#0
0093: 9009_+29011_=#0
0094: 9009_+29011_=#0
0095: 9009_+29011_=#0
0096: 9009_+29011_=#0
0097: 9009_+29011_=#0
0098: 9009_+29011_=#0
0099: 9009_+29011_=#0
0100: 900_9+2901_1=#0
0101: 900_9+2901_1=#0
    : 900_9+2901_1=#0
0000: 900_9+2901_1=#0
0001: 900_9+2901_1=1#0
0002: 900_9+2901_1=1#0
0003: 900_9+2901_1=1#0
0004: 900_9+2901_1=1#0
0005: 900_9+2901_1=1#0
0006: 900_9+2901_1=1#0
0007: 900_9+2901_1=1#0
0008: 900_9+2901_1=1#0
0009: 900_9+2901_1=1#0
0010: 900_9+2901_1=1#0
0011: 900_9+2901_1=1#0
0012: 900_9+2901_1=1#0
0013: 900_9+2901_1=1#0
0014: 900_9+2901_1=1#0
0015: 900_9+2901_1=1#0
0016: 900_9+2901_1=1#0
0017: 900_9+2901_1=1#0
0018: 900_9+2901_1=1#0
0019: 900_9+2901_1=1#0
0020: 900_9+2901_1=1#0
0021: 900_9+2901_1=1#0
0022: 900_9+2901_1=1#0
0023: 900_9+2901_1=1#0
0024: 900_9+2901_1=1#0
0025: 900_9+2901_1=1#0
0026: 900_9+2901_1=1#0
0027: 900_9+2901_1=1#0
0028: 900_9+2901_1=1#0
0029: 900_9+2901_1=1#0
0030: 900_9+2901_1=1#0
0031: 900_9+2901_1=1#0
0032: 900_9+2901_1=1#0
0033: 900_9+2901_1=1#0
0034: 900_9+2901_1=1#0
0035: 900_9+2901_1=1#0
0036: 900_9+2901_1=1#0
0037: 900_9+2901_1=1#0
0038: 900_9+2901_1=1#0
0039: 900_9+2901_1=1#0
0040: 900_9+2901_1=1#0
0041: 900_9+2901_1=1#0
0042: 900_9+2901_1=1#0
0043: 900_9+2901_1=1#0
0044: 900_9+2901_1=1#0
0045: 900_9+2901_1=1#0
0046: 900_9+2901_1=1#0
0047: 900_9+2901_1=1#0
0048: 900_9+2901_1=1#0
0049: 900_9+2901_1=1#0
0050: 900_9+2901_1=1#0
0051: 900_9+2901_1=1#0
0052: 900_9+2901_1=1#0
0053: 900_9+2901_1=1#0
0054: 900_9+2901_1=1#0
0055: 900_9+2901_1=1#0
0056: 900_9+2901_1=1#0
0057: 900_9+2901_1=1#0
0058: 900_9+2901_1=1#0
0059: 900_9+2901_1=1#0
0060: 900_9+2901_1=1#0
0061: 900_9+2901_1=1#0
0062: 900_9+2901_1=1#0
0063: 900_9+2901_1=1#0
0064: 900_9+2901_1=1#0
0065: 900_9+2901_1=1#0
0066: 900_9+2901_1=1#0
0067: 900_9+2901_1=1#0
0068: 900_9+2901_1=1#0
0069: 900_9+2901_1=1#0
0070: 900_9+2901_1=1#0
0071: 900_9+2901_1=1#0
0072: 900_9+2901_1=1#0
0073: 900_9+2901_1=1#0
0074: 900_9+2901_1=1#0
0075: 900_9+2901_1=1#0
0076: 900_9+2901_1=1#0
0077: 900_9+2901_1=1#0
0078: 900_9+2901_1=1#0
0079: 900_9+2901_1=1#0
0080: 900_9+2901_1=1#0
0081: 900_9+2901_1=1#0
0082: 900_9+2901_1=1#0
0083: 900_9+2901_1=1#0
0084: 900_9+2901_1=1#0
0085: 900_9+2901_1=1#0
0086: 900_9+2901_1=1#0
0087: 900_9+2901_1=1#0
0088: 900_9+2901_1=1#0
0089: 900_9+2901_1=1#0
0090: 900_9+2901_1=1#0
0091: 900_9+2901_1=1#0
0092: 900_9+2901_1=1#0
0093: 900_9+2901_1=1#0
0094: 900_9+2901_1=1#0
0095: 900_9+2901_1=1#0
0096: 900_9+2901_1=1#0
0097: 900_9+2901_1=1#0
0098: 900_9+2901_1=1#0
0099: 900_9+2901_1=1#0
0100: 90_09+290_11=1#0
0101: 90_09+290_11=1#0
    : 90_09+290_11=1#0
0000: 90_09+290_11=01#0
0001: 90_09+290_11=01#0
0002: 90_09+290_11=01#0
0003: 90_09+290_11=01#0
0004: 90_09+290_11=01#0
0005: 90_09+290_11=01#0
0006: 90_09+290_11=01#0
0007: 90_09+290_11=01#0
0008: 90_09+290_11=01#0
0009: 90_09+290_11=01#0
0010: 90_09+290_11=01#0
0011: 90_09+290_11=01#0
0012: 90_09+290_11=01#0
0013: 90_09+290_11=01#0
0014: 90_09+290_11=01#0
0015: 90_09+290_11=01#0
0016: 90_09+290_11=01#0
0017: 90_09+290_11=01#0
0018: 90_09+290_11=01#0
0019: 90_09+290_11=01#0
0020: 90_09+290_11=01#0
0021: 90_09+290_11=01#0
0022: 90_09+290_11=01#0
0023: 90_09+290_11=01#0
0024: 90_09+290_11=01#0
0025: 90_09+290_11=01#0
0026: 90_09+290_11=01#0
0027: 90_09+290_11=01#0
0028: 90_09+290_11=01#0
0029: 90_09+290_11=01#0
0030: 90_09+290_11=01#0
0031: 90_09+290_11=01#0
0032: 90_09+290_11=01#0
0033: 90_09+290_11=01#0
0034: 90_09+290_11=01#0
0035: 90_09+290_11=01#0
0036: 90_09+290_11=01#0
0037: 90_09+290_11=01#0
0038: 90_09+290_11=01#0
0039: 90_09+290_11=01#0
0040: 90_09+290_11=01#0
0041: 90_09+290_11=01#0
0042: 90_09+290_11=01#0
0043: 90_09+290_11=01#0
0044: 90_09+290_11=01#0
0045: 90_09+290_11=01#0
0046: 90_09+290_11=01#0
0047: 90_09+290_11=01#0
0048: 90_09+290_11=01#0
0049: 90_09+290_11=01#0
0050: 90_09+290_11=01#0
0051: 90_09+290_11=01#0
0052: 90_09+290_11=01#0
0053: 90_09+290_11=01#0
0054: 90_09+290_11=01#0
0055: 90_09+290_11=01#0
0056: 90_09+290_11=01#0
0057: 90_09+290_11=01#0
0058: 90_09+290_11=01#0
0059: 90_09+290_11=01#0
0060: 90_09+290_11=01#0
0061: 90_09+290_11=01#0
0062: 90_09+290_11=01#0
0063: 90_09+290_11=01#0
0064: 90_09+290_11=01#0
0065: 90_09+290_11=01#0
0066: 90_09+290_11=01#0
0067: 90_09+290_11=01#0
0068: 90_09+290_11=01#0
0069: 90_09+290_11=01#0
0070: 90_09+290_11=01#0
0071: 90_09+290_11=01#0
0072: 90_09+290_11=01#0
0073: 90_09+290_11=01#0
0074: 90_09+290_11=01#0
0075: 90_09+290_11=01#0
0076: 90_09+290_11=01#0
0077: 90_09+290_11=01#0
0078: 90_09+290_11=01#0
0079: 90_09+290_11=01#0
0080: 90_09+290_11=01#0
0081: 90_09+290_11=01#0
0082: 90_09+290_11=01#0
0083: 90_09+290_11=01#0
0084: 90_09+290_11=01#0
0085: 90_09+290_11=01#0
0086: 90_09+290_11=01#0
0087: 90_09+290_11=01#0
0088: 90_09+290_11=01#0
0089: 90_09+290_11=01#0
0090: 90_09+290_11=01#0
0091: 90_09+290_11=01#0
0092: 90_09+290_11=01#0
0093: 90_09+290_11=01#0
0094: 90_09+290_11=01#0
0095: 90_09+290_11=01#0
0096: 90_09+290_11=01#0
0097: 90_09+290_11=01#0
0098: 90_09+290_11=01#0
0099: 90_09+290_11=01#0
0100: 9_009+29_011=01#0
0101: 9_009+29_011=01#0
    : 9_009+29_011=01#0
0000: 9_009+29_011=01#0
0001: 9_009+29_011=01#0
0002: 9_009+29_011=01#0
0003: 9_009+29_011=01#0
0004: 9_009+29_011=01#0
0005: 9_009+29_011=01#0
0006: 9_009+29_011=01#0
0007: 9_009+29_011=01#0
0008: 9_009+29_011=01#0
0009: 9_009+29_011=01#0
0010: 9_009+29_011=01#0
0011: 9_009+29_011=01#0
0012: 9_009+29_011=01#0
0013: 9_009+29_011=01#0
0014: 9_009+29_011=01#0
0015: 9_009+29_011=01#0
0016: 9_009+29_011=01#0
0017: 9_009+29_011=01#0
0018: 9_009+29_011=01#0
0019: 9_009+29_011=01#0
0020: 9_009+29_011=01#0
0021: 9_009+29_011=01#0
0022: 9_009+29_011=01#0
0023: 9_009+29_011=01#0
0024: 9_009+29_011=01#0
0025: 9_009+29_011=01#0
0026: 9_009+29_011=01#0
0027: 9_009+29_011=01#0
0028: 9_009+29_011=01#0
0029: 9_009+29_011=01#0
0030: 9_009+29_011=01#0
0031: 9_009+29_011=01#0
0032: 9_009+29_011=01#0
0033: 9_009+29_011=01#0
0034: 9_009+29_011=01#0
0035: 9_009+29_011=01#0
0036: 9_009+29_011=01#0
0037: 9_009+29_011=01#0
0038: 9_009+29_011=01#0
0039: 9_009+29_011=01#0
0040: 9_009+29_011=01#0
0041: 9_009+29_011=01#0
0042: 9_009+29_011=01#0
0043: 9_009+29_011=01#0
0044: 9_009+29_011=01#0
0045: 9_009+29_011=01#0
0046: 9_009+29_011=01#0
0047: 9_009+29_011=01#0
0048: 9_009+29_011=01#0
0049: 9_009+29_011=01#0
0050: 9_009+29_011=01#0
0051: 9_009+29_011=01#0
0052: 9_009+29_011=01#0
0053: 9_009+29_011=01#0
0054: 9_009+29_011=01#0
0055: 9_009+29_011=01#0
0056: 9_009+29_011=01#0
0057: 9_009+29_011=01#0
0058: 9_009+29_011=01#0
0059: 9_009+29_011=01#0
0060: 9_009+29_011=01#0
0061: 9_009+29_011=01#0
0062: 9_009+29_011=01#0
0063: 9_009+29_011=01#0
0064: 9_009+29_011=01#0
0065: 9_009+29_011=01#0
0066: 9_009+29_011=01#0
0067: 9_009+29_011=01#0
0068: 9_009+29_011=01#0
0069: 9_009+29_011=01#0
0070: 9_009+29_011=01#0
0071: 9_009+29_011=01#0
0072: 9_009+29_011=01#0
0073: 9_009+29_011=01#0
0074: 9_009+29_011=01#0
0075: 9_009+29_011=01#0
0076: 9_009+29_011=01#0
0077: 9_009+29_011=01#0
0078: 9_009+29_011=01#0
0079: 9_009+29_011=01#0
0080: 9_009+29_011=01#0
0081: 9_009+29_011=01#0
0082: 9_009+29_011=01#0
0083: 9_009+29_011=01#0
0084: 9_009+29_011=01#0
0085: 9_009+29_011=01#0
0086: 9_009+29_011=01#0
0087: 9_009+29_011=01#0
0088: 9_009+29_011=01#0
0089: 9_009+29_011=01#0
0090: 9_009+29_011=01#0
0091: 9_009+29_011=01#0
0092: 9_009+29_011=01#0
0093: 9_009+29_011=01#0
0094: 9_009+29_011=01#0
0095: 9_009+29_011=01#0
0096: 9_009+29_011=01#0
0097: 9_009+29_011=01#0
0098: 9_009+29_011=01#0
0099: 9_009+29_011=#801#0
0100: _9009+2_9011=#801#0
0101: _9009+2_9011=#801#0
    : _9009+2_9011=#801#0
0000: _9009+2_9011=#801#0
0001: _9009+2_9011=#801#0
0002: _9009+2_9011=2#801#0
0003: _9009+2_9011=2#801#0
0004: _9009+2_9011=2#801#0
0005: _9009+2_9011=2#801#0
0006: _9009+2_9011=2#801#0
0007: _9009+2_9011=2#801#0
0008: _9009+2_9011=2#801#0
0009: _9009+2_9011=2#801#0
0010: _9009+2_9011=2#801#0
0011: _9009+2_9011=2#801#0
0012: _9009+2_9011=2#801#0
0013: _9009+2_9011=2#801#0
0014: _9009+2_9011=2#801#0
0015: _9009+2_9011=2#801#0
0016: _9009+2_9011=2#801#0
0017: _9009+2_9011=2#801#0
0018: _9009+2_9011=2#801#0
0019: _9009+2_9011=2#801#0
0020: _9009+2_9011=2#801#0
0021: _9009+2_9011=2#801#0
0022: _9009+2_9011=2#801#0
0023: _9009+2_9011=2#801#0
0024: _9009+2_9011=2#801#0
0025: _9009+2_9011=2#801#0
0026: _9009+2_9011=2#801#0
0027: _9009+2_9011=2#801#0
0028: _9009+2_9011=2#801#0
0029: _9009+2_9011=2#801#0
0030: _9009+2_9011=2#801#0
0031: _9009+2_9011=2#801#0
0032: _9009+2_9011=2#801#0
0033: _9009+2_9011=2#801#0
0034: _9009+2_9011=2#801#0
0035: _9009+2_9011=2#801#0
0036: _9009+2_9011=2#801#0
0037: _9009+2_9011=2#801#0
0038: _9009+2_9011=2#801#0
0039: _9009+2_9011=2#801#0
0040: _9009+2_9011=2#801#0
0041: _9009+2_9011=2#801#0
0042: _9009+2_9011=2#801#0
0043: _9009+2_9011=2#801#0
0044: _9009+2_9011=2#801#0
0045: _9009+2_9011=2#801#0
0046: _9009+2_9011=2#801#0
0047: _9009+2_9011=2#801#0
0048: _9009+2_9011=2#801#0
0049: _9009+2_9011=2#801#0
0050: _9009+2_9011=2#801#0
0051: _9009+2_9011=2#801#0
0052: _9009+2_9011=2#801#0
0053: _9009+2_9011=2#801#0
0054: _9009+2_9011=2#801#0
0055: _9009+2_9011=2#801#0
0056: _9009+2_9011=2#801#0
0057: _9009+2_9011=2#801#0
0058: _9009+2_9011=2#801#0
0059: _9009+2_9011=2#801#0
0060: _9009+2_9011=2#801#0
0061: _9009+2_9011=2#801#0
0062: _9009+2_9011=2#801#0
0063: _9009+2_9011=2#801#0
0064: _9009+2_9011=2#801#0
0065: _9009+2_9011=2#801#0
0066: _9009+2_9011=2#801#0
0067: _9009+2_9011=2#801#0
0068: _9009+2_9011=2#801#0
0069: _9009+2_9011=2#801#0
0070: _9009+2_9011=2#801#0
0071: _9009+2_9011=2#801#0
0072: _9009+2_9011=2#801#0
0073: _9009+2_9011=2#801#0
0074: _9009+2_9011=2#801#0
0075: _9009+2_9011=2#801#0
0076: _9009+2_9011=2#801#0
0077: _9009+2_9011=2#801#0
0078: _9009+2_9011=2#801#0
0079: _9009+2_9011=2#801#0
0080: _9009+2_9011=2#801#0
0081: _9009+2_9011=2#801#0
0082: _9009+2_9011=2#801#0
0083: _9009+2_9011=2#801#0
0084: _9009+2_9011=2#801#0
0085: _9009+2_9011=2#801#0
0086: _9009+2_9011=2#801#0
0087: _9009+2_9011=2#801#0
0088: _9009+2_9011=2#801#0
0089: _9009+2_9011=2#801#0
0090: _9009+2_9011=2#801#0
0091: _9009+2_9011=2#801#0
0092: _9009+2_9011=2#801#0
0093: _9009+2_9011=2#801#0
0094: _9009+2_9011=2#801#0
0095: _9009+2_9011=2#801#0
0096: _9009+2_9011=2#801#0
0097: _9009+2_9011=2#801#0
0098: _9009+2_9011=2#801#0
0099: _9009+2_9011=2#801#0
0100: _9009+_29011=2#801#0
0101: 9009+29011=2#801#0
    : 9009+29011=2#801#0
0000: 9009+29011=2#801#0
0001: 9009+29011=2#801#0
0002: 9009+29011=2#801#0
0003: 9009+29011=2#801#0
0004: 9009+29011=2#801#0
0005: 9009+29011=2#801#0
0006: 9009+29011=2#801#0
0007: 9009+29011=2#801#0
0008: 9009+29011=2#801#0
0009: 9009+29011=2#801#0
0010: 9009+29011=2#801#0
0011: 9009+29011=2#801#0
0012: 9009+29011=2#801#0
0013: 9009+29011=2#801#0
0014: 9009+29011=2#801#0
0015: 9009+29011=2#801#0
0016: 9009+29011=2#801#0
0017: 9009+29011=2#801#0
0018: 9009+29011=2#801#0
0019: 9009+29011=2#801#0
0020: 9009+29011=2#801#0
0021: 9009+29011=2#801#0
0022: 9009+29011=2#801#0
0023: 9009+29011=2#801#0
0024: 9009+29011=2#801#0
0025: 9009+29011=2#801#0
0026: 9009+29011=2#801#0
0027: 9009+29011=2#801#0
0028: 9009+29011=2#801#0
0029: 9009+29011=2#801#0
0030: 9009+29011=2#801#0
0031: 9009+29011=2#801#0
0032: 9009+29011=2#801#0
0033: 9009+29011=2#801#0
0034: 9009+29011=2#801#0
0035: 9009+29011=2#801#0
0036: 9009+29011=2#801#0
0037: 9009+29011=2#801#0
0038: 9009+29011=2#801#0
0039: 9009+29011=2#801#0
0040: 9009+29011=2#801#0
0041: 9009+29011=2#801#0
0042: 9009+29011=2#801#0
0043: 9009+29011=2#801#0
0044: 9009+29011=2#801#0
0045: 9009+29011=2#801#0
0046: 9009+29011=2#801#0
0047: 9009+29011=2#801#0
0048: 9009+29011=2#801#0
0049: 9009+29011=2#801#0
0050: 9009+29011=2#801#0
0051: 9009+29011=2#801#0
0052: 9009+29011=2#801#0
0053: 9009+29011=2#801#0
0054: 9009+29011=2#801#0
0055: 9009+29011=2#801#0
0056: 9009+29011=2#801#0
0057: 9009+29011=2#801#0
0058: 9009+29011=2#801#0
0059: 9009+29011=2#801#0
0060: 9009+29011=2#801#0
0061: 9009+29011=2#801#0
0062: 9009+29011=2#801#0
0063: 9009+29011=2#801#0
0064: 9009+29011=2#801#0
0065: 9009+29011=2#801#0
0066: 9009+29011=2#801#0
0067: 9009+29011=2#801#0
0068: 9009+29011=2#801#0
0069: 9009+29011=2#801#0
0070: 9009+29011=2#801#0
0071: 9009+29011=2#801#0
0072: 9009+29011=2#801#0
0073: 9009+29011=2#801#0
0074: 9009+29011=2#801#0
0075: 9009+29011=2#801#0
0076: 9009+29011=2#801#0
0077: 9009+29011=2#801#0
0078: 9009+29011=2#801#0
0079: 9009+29011=2#801#0
0080: 9009+29011=2#801#0
0081: 9009+29011=2#801#0
0082: 9009+29011=2#801#0
0083: 9009+29011=2#801#0
0084: 9009+29011=2#801#0
0085: 9009+29011=2#801#0
0086: 9009+29011=2#801#0
0087: 9009+29011=2#801#0
0088: 9009+29011=2#801#0
0089: 9009+29011=2#801#0
0090: 9009+29011=2#801#0
0091: 9009+29011=2#801#0
0092: 9009+29011=2#801#0
0093: 9009+29011=2#801#0
0094: 9009+29011=2#801#0
0095: 9009+29011=2#801#0
0096: 9009+29011=2#801#0
0097: 9009+29011=2#801#0
0098: 9009+29011=2#801#0
0099: 9009+29011=2#801#0
0100: 9009+29011=2#801#0
0101: 9009+29011=2#801#0
    : 9009+29011=2#801#0
converged


================ post ================
0000: 9009+29011=2#801#0
0001: 9009+29011=2#8020
0002: 9009+29011=38020
0003: 9009+29011=38020
0004: 9009+29011=38020
0005: 9009+29011=38020
0006: 9009+29011=38020
0007: 9009+29011=38020
0008: 9009+29011=38020
0009: 9009+29011=38020
0010: 9009+29011=38020
    : 9009+29011=38020
0000: 9009+29011=38020
0001: 9009+29011=38020
0002: 9009+29011=38020
0003: 9009+29011=38020
0004: 9009+29011=38020
0005: 9009+29011=38020
0006: 9009+29011=38020
0007: 9009+29011=38020
0008: 9009+29011=38020
0009: 9009+29011=38020
0010: 9009+29011=38020
    : 9009+29011=38020
converged


9009+29011=38020
9009+29011=38020

じりじりポインタが上がっていくのがかっこいいでしょ?

休講・補講情報を見やすくする

この記事は、TUT Advent Calendar 2016 - Adventar の2日目の記事です。

2017年1月11日 追記

冬期休業中(1月1日ごろ?)からPC版の休講・補講情報ページが以下に復活しています。

豊橋技術科学大学教務システム - 連絡

私が作った休講・補講情報bot: @tucas_botもここからデータを取って元気に動いています。


前置き

教務システムが刷新され、休講・補講のお知らせページも新しくなりましたね。

Before
旧ページ
After
新ページ

……明らかに劣化してません?
わあ、オシャレ。i-modeに対応したんですね!

本題

自分に関係のない講義を非表示にするブックマークレットを作りました。赤字のところは適宜書き換えてください。

javascript:(document.getElementById("Form_LctSchedeule_List").innerHTML.replace(/(?:(?:\d~)?\d限<br>\n.+<br>\n担当教員:.*<br>\n開講年次:(?!.*B1.+<br>\n開講学科:.*機械).+<br>\n開講学科:.+\n(?:学生への連絡:.*<br>\n補講の予定:.*<br>\n|教室:.*<br>\n備考:.*<br>\n))/g,""));

innerHTMLを弄っているので、動かすと前日/翌日に移ることができなくなるバグがあります。

蛇足

新ページですが、構造化されていなかったり、1日分ずつしか見られない上に、input要素からPOSTメソッドを叩くことによって別の日へ移っています。というかですね、これ旧システムの携帯版ですよね?

元々は、シラバス・休講・補講情報統合API(TuCas)とかいうのを作って、AdCalで紹介するつもりだったのですがこういう状況で、スクレイピングの方法を模索中です。Bot(@tucas_bot)くらいは復旧したいなあ…


明日はtakunokoさんの「TuT休講情報をより見やすく便利に!」です。