生存戦略
前までどうやってブログ書いていたか忘れて赤ちゃんみたいなになってる。
ざっくりしたことはTwitterに書いちゃうので案外分量が少なくなってきた。
読んだ
何者
- 作者: 朝井リョウ
- 出版社/メーカー: 新潮社
- 発売日: 2015/06/26
- メディア: 文庫
- この商品を含むブログ (12件) を見る
みんなのGo言語
- 作者: 松木雅幸,mattn,藤原俊一郎,中島大一,牧大輔,鈴木健太,稲葉貴洋
- 出版社/メーカー: 技術評論社
- 発売日: 2016/09/09
- メディア: 大型本
- この商品を含むブログ (1件) を見る
Go言語によるWebアプリケーション開発
- 作者: Mat Ryer,鵜飼文敏,牧野聡
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/01/22
- メディア: 大型本
- この商品を含むブログ (2件) を見る
*る勇気
- 作者: 岸見一郎,古賀史健
- 出版社/メーカー: ダイヤモンド社
- 発売日: 2013/12/13
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (102件) を見る
- 作者: 岸見一郎,古賀史健
- 出版社/メーカー: ダイヤモンド社
- 発売日: 2016/02/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (20件) を見る
何者になるんだろう
「何者」が案外ぐっさり刺さって、気持ちになる表現に大変溢れていた気がする。 ざっくり言うと就活とSNSが題材の小説なので、世代的にはドンピシャである。 ちなみに映画化もするらしい。
就活とか進路とかそういうことを悩むような時期になって、 自分の目標達成とかスキルセットとか安定感などを真剣に考える必要が出てきた。 そんな中でこれを読んでしまって、"就活がゴールなのか"とか、"就職した自分は今と違う自分になるのか"など、 まだまだ考える必要のあるべき事柄が多く見つかった気がする。 思い返せば就活セミナーみたいなのも行ってないし、思考停止で院進することを決定していた面もあって、 もしかして逃げているだけなんじゃないかと思えてきた。
別の道
せっかく学生なんだから、もうちょっと別なことも体験してみようということで、 情報科学から離れて色々手を出してみることを積極的に行っている。 役に立つ立たないとか、糧になるならないとか、そういう視点ではなくて、 知らないけど言葉だけ先行しそうな分野の下地はしっかりしておこうっていう軽い気持ち。 筑波大学はそういう面において非常に軽いフットワークで実現できる場所なので、 いい感じにバランス取って学んでいきたいと思う。
最近の所感
世の中流行ってきているプロダクティビティみたいな実践をしているんだけど、 実践できる期間とできない期間が明確に分かれてしまう。 結局やる気の問題なので習慣化しきれていないのが問題なんだろうけど、 改善していく方法が見つからないのでちょっとツライね。
"Experience tranquility."
最近(7, 8月)あったこととか。
COMP
comp.jp 完全食のお試しセットを頼んだので飲んでみた。 水割りはそもそも味を舌が受け入れてくれなかったので、色々模索してみたんだけどだいたいダメだった。 素の味が無味になってくれると美味しく摂取できて最高なんで、味なくなってほしい。 以下は試したやつ。
- コーヒー
飽きがひどくて飲みきれない - スムージー
元の味がめっちゃ残る。飲みきれないわけではないけど続けて飲もうとは思えなかった。 - お茶
論外
結局何パックか余ったので、どうしても食い物が無いときとか、時間の無いとき用に保管してある(果たして飲む日は来るのだろうか)。赤ちゃんの粉ミルクっぽい味がどうしても苦手なんだけど、プロテインもこんな味するんですか。ちなみに僕の口に合わないだけで美味しく飲んでる人はいるので、試しに買ってみるといいんじゃないですかね。
読んだ本
- 作者: リチャード・ジョーンズ,アントニー・ホスキング,エリオット・モス
- 出版社/メーカー: 翔泳社
- 発売日: 2016/03/14
- メディア: Kindle版
- この商品を含むブログ (1件) を見る
- 作者: ジョン・ソンメズ,まつもとゆきひろ(解説),長尾高弘
- 出版社/メーカー: 日経BP社
- 発売日: 2016/05/20
- メディア: 単行本
- この商品を含むブログ (2件) を見る
二冊読了したけど、分厚い奴らは読み切るのにまだまだ時間がかかりそう。 kindleすごくて、気づくとポチってるから積ん読がひどい。教授に頼りつつ論文を読み進めたりするおかげか、読むペースが早まってきて新書程度ならいくらでも読めるようになって気がする(だけ)。
振り返って
以外にブログとして残せることは少なくて短くなってしまった。 技術的なこととか、アウトプットを増やそうとはしているんだけども、探求後の着地点が既到な事実であったりするので、 「なるほどですね〜」で終わってしまうことが多かった。既に世の中に出回っている情報に色を付けて発信するのに抱く嫌悪感を払拭すればいいんだろうか。
Bridge
グラフ構造において強連結を求めて処理することは多いけど、 蟻本に載っているタイプのScc*1だと後の処理が結構使い辛い気がしてた。 単にSccするだけならば別に良いんだけど、辺に対して操作をする時、 その辺は強連結をするための辺なのか強連結成分同士を繋ぐ辺なのかの判定が面倒だったり、 橋だけほしいのに実装の重いSccを書いてから求めるとか、結構だるい(自己基準)。
グラフにおける橋
グラフ内で削除すると到達不可能な頂点が出る辺を橋といって、 求めるのに方法は色々とあるんだけど意外と書いてない。 ただ、日本語の記事だといい感じに説明されたものもあるので、 アルゴリズムの詳細は以下の記事を参考にしてほしい。
橋(bridge)検出アルゴリズム - nupiocaの日記
実装
上記記事の実装だと、from, toのペアが帰ってきていて、辺の判断が辛そうであったので 橋の情報の持ち方を変更して行列に置換した。 基本的に(個人の)Sccのライブラリと共存できそうな構造体を定義して、いい感じに。 アルゴリズムの変更点は無い。
/* 0-origin */ template<int V> struct Bridge { int low[V], pre[V], cnt; vector<int> edge[V]; bool res[V][V]; void init() { cnt = 0; memset(low, 0, sizeof(low)); memset(pre, 0, sizeof(pre)); memset(res, false, sizeof(res)); for (int i=0; i<V; i++) edge[i].clear(); } void add_edge(int from, int to) { edge[from].push_back(to); } void add_edge_multi(int from, int to) { add_edge(from, to); add_edge(to, from); } int dfs(int cur, int from) { low[cur] = pre[cur] = ++cnt; for (int i=0; i<edge[cur].size(); i++) { int to = edge[cur][i]; if (!pre[to]) { low[cur] = min(low[cur], dfs(to, cur)); if (pre[to] == low[to]) { res[cur][to] = true; } } else if (from != to) { low[cur] = min(low[cur], low[to]); } } return low[cur]; } void build(int n) { for (int i=0; i<n; i++) { if (!pre[i]) dfs(i, i); } } };
*1:強連結成分分解, Stronglu Connected Components