Diary over Finite Fields

515ひかるが書き溜めたメモとコラムと雑記

銃皇無尽のファフニールが終わった

最近、小難しいことばかり書いていたので、軽い話でもしようとおもう。

銃皇無尽のファフニール15 アンリミテッド・シャイン (講談社ラノベ文庫)

銃皇無尽のファフニール15 アンリミテッド・シャイン (講談社ラノベ文庫)

銃皇無尽のファフニールが終わった。正確には番外編があるらしいが本編はこれで終わった。

はて、ライトノベルを最初から最後まで読み通したのなんてこれが初めてじゃないかと思う。1冊で終わるようなものはともかくとして、15冊も続くようなシリーズものを最初から最後まで読み通したのは初めてだと思う。

最初のカラーイラストの部分で感極まって泣きそうになり、戦闘が続いていってそれぞれがそれぞれの決意を胸に戦う姿や、戦う者たちを応援することで戦闘に参加する姿に完全に感動してしまった。

基本的に語彙がないので詳しいことは書けないが、とりあえず読んだほうがいい。

序盤からのドラゴンとの戦い、物部悠のチート機能(多数)、ロキ少佐との死闘やらシャルの"正体"やら、言いたいことは山ほどある。発売日を心待ちにした小説はすごく久しぶりだった。

ライトノベルらしいハーレム要素やら、お決まりの展開も多々あったがきらいじゃない。

本当に面白かった。紹介してくれた @alg_d に感謝する。

幸せの正解

幸せについて

なにかと不安な世の中だからこそ、数字などの指標で物事を測ったりしたくなるのもかもしれない。

ある記事がはてなブックマークいくつだった、あるツイートが数万RTされた、ある投稿のいいねがいくつだ。そんなことばかり気にして、競い合って。

自分の人生くらい、自分で肯定してあげればいいのに。

他者からの承認、いいねボタンから得られる気軽な承認。そこで得られるものは優越感ではなく、安心感なのかもしれない。「自分はいま幸せなのだ」と他者から認められることによって。

映えない人生

僕の人生など映えないものだ。僕は写真を撮らない、動画ももちろん撮らない。旅行にいってもほとんど何も見ないで帰ってきてしまうし、他者が羨むもの成分は僕の人生にはほとんどない。

でも、それでよくないだろうか。

自分の人生だし、自分が価値を感じること、感じるものを選択すればいい。

もしかしたら、毎月10冊本を買うより1年に1回でもヨーロッパに旅行したほうが映えるのかもしれない。

もしかしたら、毎週映画を見るよりもドライブで面白い景色を撮りに行った方が映えるのかもしれない。

もしかしたら、酒を飲みに行くよりもライブに行った方が映えるのかもしれない。

でも、自分の中での「非日常」を過剰にアピールして、自分の人生を、自分が幸せであることを他者から認められることで実感する。

その行為、幸せな人がする行為だろうか。

僕は自他共に認める「映えない人生」を歩んでいる男だけれど、それでも十分に幸せだ。

幸せの正解

「ステッカーにして貼られた本物の印だけど そう主張している方がニセモノに見える」

Mr.Children 「掌」

幸せを強調すればするほど、かえって心配になってしまうのは僕だけだろうか。人に羨ましがられる人生を歩みたくて、僕らは生まれてきたのだろうか。そんな「幸せ」を僕らは果たして願っているのだろうか。

求める幸せは人それぞれだ、正解なんてない。そんなことはわかっている。だけど、SNSの「いいね!」がこんなにも多くの人の突き動かすというのがとても不思議で、とても恐ろしい。

続・リストのネストをいい感じに書きたいときの話

blog.515hikaru.net

これの続き。

いい感じのライブラリを見つけた

Twitter でこのブログ記事を紹介していただいた。

iogi.hatenablog.com

ここの後半に more-itertools というライブラリが紹介されているのだが、この more-itertools 内にある windowed という関数がまさしく求めているものだった。

github.com

実装もそんなに長くないので軽く眺めてみたが、難しくは全くないが正しく書くのはダルそうなコードだった。

簡単な紹介

インストールは pip でできる。

$ pip install more-itertools

前回の記事の例は(リストではなくタプルのままだが)以下のようなコードを書けばいい。

from more_itertools import windowed

for item in windowed(range(100), 4):
    print(item)

実行結果は下のような感じ。

(0, 1, 2, 3)
(1, 2, 3, 4)
(2, 3, 4, 5)
(3, 4, 5, 6)
(4, 5, 6, 7)
(5, 6, 7, 8)
(6, 7, 8, 9)
(7, 8, 9, 10)
(8, 9, 10, 11)
(9, 10, 11, 12)
(10, 11, 12, 13)
...(以下略)

こんな感じで使える。ほかにも地味に便利な関数が定義されていたりするので、APIリファレンスを軽く眺めておくと幸せになれるかもしれない。

More Itertools — more-itertools 3.2.0 documentation

リストのネストをいい感じに書きたいときの話

Pythonの話である。ある規則にそって、ネストしたリストを作りたいときがよくある。いやないよ、って思う人もいるかもしれないが、僕は仕事でよくやる。

どういう感じかというと、だいたい次のような感じ

[0 1 2 3] [1 2 3 4] [2 3 4 5] [3 4 5 6]
[4 5 6 7] [5 6 7 8] [6 7 8 9] [7 8 9 10]
[8 9 10 11] [9 10 11 12] [10 11 12 13] [11 12 13 14]
...

つまり、先頭から4つ*1とり、先頭を1つずらしてそこからさらに4つとり、を繰り返す。

これをPythonのリスト内包表記を使って書くとこうなる(てきとうに0~99までで書いた):

m = 4
l = [[j for j in range(i, i+m)] for i in range(100 - m + 1)]
print(l)

# 実行結果
# [[0, 1, 2, 3], [1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 6], [4, 5, 6, 7], [5, 6, 7, 8], [6, 7, 8, 9], [7, 8, 9, 10], [8, 9, 10, 11], [9, 10, 11, 12], [10, 11, 12, 13], [11, 12, 13, 14], [12, 13, 14, 15], [13, 14, 15, 16], [14, 15, 16, 17], [15, 16, 17, 18], [16, 17, 18, 19], [17, 18, 19, 20], [18, 19, 20, 21], [19, 20, 21, 22], [20, 21, 22, 23], [21, 22, 23, 24], [22, 23, 24, 25], [23, 24, 25, 26], [24, 25, 26, 27], [25, 26, 27, 28], [26, 27, 28, 29], [27, 28, 29, 30], [28, 29, 30, 31], [29, 30, 31, 32], [30, 31, 32, 33], [31, 32, 33, 34], [32, 33, 34, 35], [33, 34, 35, 36], [34, 35, 36, 37], [35, 36, 37, 38], [36, 37, 38, 39], [37, 38, 39, 40], [38, 39, 40, 41], [39, 40, 41, 42], [40, 41, 42, 43], [41, 42, 43, 44], [42, 43, 44, 45], [43, 44, 45, 46], [44, 45, 46, 47], [45, 46, 47, 48], [46, 47, 48, 49], [47, 48, 49, 50], [48, 49, 50, 51], [49, 50, 51, 52], [50, 51, 52, 53], [51, 52, 53, 54], [52, 53, 54, 55], [53, 54, 55, 56], [54, 55, 56, 57], [55, 56, 57, 58], [56, 57, 58, 59], [57, 58, 59, 60], [58, 59, 60, 61], [59, 60, 61, 62], [60, 61, 62, 63], [61, 62, 63, 64], [62, 63, 64, 65], [63, 64, 65, 66], [64, 65, 66, 67], [65, 66, 67, 68], [66, 67, 68, 69], [67, 68, 69, 70], [68, 69, 70, 71], [69, 70, 71, 72], [70, 71, 72, 73], [71, 72, 73, 74], [72, 73, 74, 75], [73, 74, 75, 76], [74, 75, 76, 77], [75, 76, 77, 78], [76, 77, 78, 79], [77, 78, 79, 80], [78, 79, 80, 81], [79, 80, 81, 82], [80, 81, 82, 83], [81, 82, 83, 84], [82, 83, 84, 85], [83, 84, 85, 86], [84, 85, 86, 87], [85, 86, 87, 88], [86, 87, 88, 89], [87, 88, 89, 90], [88, 89, 90, 91], [89, 90, 91, 92], [90, 91, 92, 93], [91, 92, 93, 94], [92, 93, 94, 95], [93, 94, 95, 96], [94, 95, 96, 97], [95, 96, 97, 98], [96, 97, 98, 99]]

1行でかけるといえばかけるのだが、 for in range を使っているので少しな、という気持ちになる。とはいっても「じゃあどうすればいいのか」は少しは毎回考えているはずなのだが、結局思い浮かばず上記のコードの焼き直しを書いてしまう。

そんなに真面目に募集しているわけでもないが、もし何か思いついたかたがいれば教えて欲しい。

と締めくくろうとしたが、ちょうどいまこういう書き方を思いついた:

m = 4
a = list(range(100))
l = [a[i:i+m] for i in range(100 - m + 1)]
print(l)

スライスを使うことで内包表記のネストはなくなった。添え字アクセスをするしかないのだろうか。うーむ。

後半の添え字の + とか - とかが鬱陶しければ次のような書き方もありだろう。

m = 4
a = list(range(100))
l = [a[i:i+m] for i in range(100) if len(a[i:i+m]) == 4]
print(l)

とまぁ考えてみるとマイナーチェンジだがいろいろとでてくるものである。

*1:4つである必要はなく、10とか20とかなんでもいい

明日への展望とか

オリオン座

ふと空を見上げると、オリオン座が見えた。僕はオリオン座以外の星座はひとつも覚えられない。雨やくもりが長らく続いていたこの街で久しぶりに星を見て、ガラにもなくキレイだなと呟いた。

この街に住んでもう1年になるが、こんなに星がキレイだなんて知らなかった。

時刻は午前5時少し前。しばらくの寝不足と仕事の解放感から帰宅したあとすぐ眠ってしまい、中途半端な時間に覚醒したあとのことだ。この時間のコンビニの店員は冷たいが、自動販売機に売っている缶コーヒーはいつも通り少しあたたかかった。

そんな、少しの非日常を今朝は過ごしている。

未来のことを、考える

明日のこと、ひいては未来のことを少し考える。明日どうなっていたいだろう、来月は、来年はどうなっていたいだろう。

星を見ながら、そんなことを考えてみた。

現実的なこと、理想的なこと、いろんなレベルでの話がある。でも理想に近づくためには、あるいは現実をよりよいものにするためには、いまの僕には何ができるだろう。何をしたいだろう。

人はすぐには変わらない。自分を変えたいと思ってもなかなか変わらない。本を買っても読まなければ知識は手に入らない、知識だけ仕入れても実践しなければ身につかない。

明日のために今日何ができるか、未来のためにいま何をするべきか。自分を変えるべきか、周りを変えるべきか。

とても難しい。正解はどこにもない。

わかること

でもひとつだけ、今日の思索の中で断言できることがある。

東京オリンピック開催期間中は東京に住んでいたくない。

何も書けない。

何かを書こうとずっとキーボードの前に向かって書いていた。しかし、よくわからない小説を書き始め、あまりにつまらなくてボツにした。

おかげで今日書くことがさっぱり思いつかない。何を書けばいいのだろう。

例えば買った本はある*1し、今日仕事で少し困ったことが起きた*2し、なんなら台風のなか何故か旅行にいっていた話もあれば選挙の話もある。しかしどうも何も書く気になれない。

平たく言えば「インスタ映えなど気にするな、人が羨む人生ではなく自分の求める人生を歩め」と思うなどした。しかし、それもありふれた言い尽くされたことだろう。その具体例として自分の先週末の旅行の話をしてもよかったのだが、強いて言えば「新東名ってキレイで静岡超えるの早いし最高!」という話しかできない。新東名つかってあげてください。

結局新東名の話になってしまった。家族が道が好きなので道の話は結構するのだが、道の話はあまり共感されないのでしない。

今日はもう諦めよう。寝る。

*1:しかしまだ読んでいない。

*2:けど書けない。

トラックボールを買ったけどいい感じ

机が狭い

ずっと言っている気がするが、ブログでは言ったことがなかったかもしれないのでもう一度いう。僕の家の机が狭い。

ずっと机の上を片付けていなかった僕のせいかもしれないと思い、先日部屋を片付けた*1。しかしやはり狭いことには変わらなかった。

そして、以前書いたように馬鹿でかいディスプレイがあり、マウスが必須な状況下である。マウスを動かすということがストレスなのは避けたい、と考え始めた*2

blog.515hikaru.net

解決策

トラックボールである。

LOGICOOL ワイヤレストラックボール M570t

LOGICOOL ワイヤレストラックボール M570t

買ったのは初めてだが、思っていたよりもずっと快適だった。こりゃハマる人がいるのもわかる。

f:id:hikaru515:20171019233342j:plain

今日届いたばかりでまだ操作に不慣れなのだが、

  • 机の狭さにわずらわされることがなくなった
    • そこに置くだけで自由にカーソルが動かせるのいい。特に写真みたいに本を立てることが多いので便利
  • 心なしかカーソル移動をすばやくできる気がする
  • 戻るボタンと進むボタンも近くにあり便利そう、まだうまく使いこなせてないけど

というような感想を持っている。今まであまりマウスにはこだわらずにきたのだが、これはやみつきになるかも。

物理的な制約は金で解決しようと思っていたが、机を買わずにマウスを買うことで解決したのは頭がいいのか悪いのかわからない。。。

*1:主にゴミかゴミのようなものをすべて捨てるという行為をすればよかったのでかんたんだった。

*2:そもそも考え始めるのが遅かった感じはある。