Travis CIのキャッシュ異常の解決, chromeでoverflow-wrapが効かないのを解決, 計算理論のバケツの状態遷移図を公開, 計算理論(オートマトンの計算能力の等しさ)
Travis CIのキャッシュ異常の解決
科学論・科学史102(エントロピー), 微分積分の演習問題が出来る気がしない, 情報リスク管理(OSにおけるセキュリティ), travisのキャッシュ更新が失敗していたのでtimeoutを変更しました - ncaq に書いたTravis CIのキャッシュ更新の失敗は, travis.ymlに
cache:
timeout: 1000
yarn: true
directories:
- $HOME/.local
- $HOME/.stack
と記述することで解決しました.
時間のかかるテストを削除して,
キャッシュが正常化されて,
毎回ビルドが必要になるのはstackのextra-deps
に指定されたパッケージだけになったことで,
自動テストにかかる時間はおよそ60分からおよそ10分に短縮されました.
extra-deps
のビルドに半分ぐらいの時間を使っているので,
stackageのltsがアップデートしてextra-deps
が消滅すれば,
さらに5分ほどに短縮されることでしょう.
短縮した後に気がついたんですけど, 私の報酬って成果ではなくて時給で測られているので, Travis CIのテストの異常問題は放っておくほうが最適なんですよね.
時給制の闇に気がついたから最適戦略としてpull requestを1つずつmasterにmergeして,update branchしたときのtravis CI待ちで勤務時間水増ししてやろうと思ったら社長により私が開いた5つのpull requestが既にmergeされていた回です
— エヌユル (@ncaq) 2017年10月25日
この自動テストの時間でpull requestがずっとレビュー待ちになって5, 6個溜まっていたので, 今日はこれをmasterにmergeしてupdate branchしてTravis CIのビルドを待つことで合法的に労働時間を水増ししようと思ったのですが, 私が勤務していないうちに社長が全てmergeしていてこの作戦は失敗になりました.
ビルド履歴を見るとちゃんとtimeout変更のpull requestを取り込んでから他のpull requestを自動テストにかけることによって短い時間でちゃんとmergeしていますね. Travis CIのキャッシュの更新問題を解決するべきではなかったか? これによって今日は何か意味のあることをやらなくてはいけないことになりました.
冗談です. Travis CIのログをずっと眺めているのは苦痛なので普通に解決して良かったです.
chromeでoverflow-wrapが効かないのでbootstrapのcardに書き換えました
今作ってるサイトでスマートフォンで表示した時に文字がはみ出すという状態を見て, おかしいなfirefoxのレスポンシブデザインモードだとはみ出さないけれど… と思ってchrome(正確にはchromium)のレスポンシブデザインモードで見てみたらはみ出してました.
CSSでoverflow-wrap: break-word;
を有効にしていたのではみ出さないと思っていたのですが,
ブラウザごとにそこの動作異なるんですね.
修正しようと思ってマークアップを見てみたらモバイル向けとデスクトップ向けで表示するマークアップを切り替えるという実装になっていました. media objectを使って, モバイル向けとで順序を変えるようにしたので無理が生じたのでしょう.
なのでとりあえずcardに統一して書き換えたらchromeでも改行するようになりました.
bootstrap万歳! CSSの細かいことを考えなくて済む!
計算理論のバケツの状態遷移図の公開
提出期間が終わったので, 提出したものをここに貼り付けます.
例題2.4.2 3l入るバケツAとバケツBがある, この2つのバケツを使って水をくみ出し, 4lの水を残す問題を有限オートマトンを用いて記述せよ.
- 「水が満杯になった時には捨てる動作になりますか?」: 余った水は元のバケツに残る
- 「図で書くのか式で書くのどちらですか?」: 図で描く
- バケツAの水をバケツBに移す
- バケツBの水をバケツAに移す
- バケツAに水をくむ
- バケツBに水をくむ
- バケツAの水を捨てる
- バケツBの水を捨てる
plantumlのコードを貼り付けようと思いましたが長い上に無意味なので省略.
計算理論(オートマトンの計算能力の等しさ)
決定性有限オートマトン, 非決定性有限オートマトン, ε入力付非決定性有限オートマトンの計算能力は等しい.
等しいとは, 同じ記号列の集合を受理する有限オートマトンが存在するということ.
どの非決定性有限オートマトンにも等価な決定性有限オートマトンが存在する
遷移可能な複数の状態をまとめて1つの状態とする.
複数の遷移先がある場合, その遷移先の複数の状態を集合として新たな状態として扱う.
このとき集合の状態のいずれかが受理可能であれば, その状態を含む集合も受理可能とする.
どのε入力付非決定性有限オートマトンにも等価な決定性有限オートマトンが存在する
εで移動する先の状態を含めた集合を作り対応させる.
演習問題の回答
オートマトンについて下記に答えよ
このオートマトンを式で表わせ
$K = \{r, g, t\}, Σ = \{a, b\},\\ δ(r, b) = \{t\}, δ(r, ε) = \{g\}, δ(g, a) = \{r\}, δ(t, a) = \{t, g\}, δ(t, b) = \{g\}\\ q_0 = r, F = \{r\}$
このオートマトンで受理される記号列と受理されない記号列を3つずつ挙げよ
受理される
受理されない
次で表現されるオートマトンについて下記に答えよ
式は書くのが面倒なので省略.