村上龍『空港にて』を読んで

小説の感想を書くのは初めてになります。
読書メーターの感想欄では書ききらなかったのでこちらに書こうと思います。

どんな本?

この本は村上龍に書かれた短編8作が載っている短編小説です。
1作あたり2、30頁と短いですが、流石芥川賞受賞作家でしょうか、一文一文のインパクトは非常に強く純度は高いです。

8作の中で一番衝撃を受けたのが表題でもある『空港にて』、次点で『駅前にて』です。
まだ一回しか読んでないので変わるかもしれませんが、上2作は本当に凄いとしか言えません。

『空港にて』

主人公はわたし、4歳の子を持つバツイチの女性。
この女性が空港でサイトウという男性を待ちながらそれまでのことを振り返るというストーリー。
わたしは2年前に夫と離婚してからなんとか生活していかなければならないと考え、職を転々としてきた。
ガソリンスタンドのアルバイト、スナック店員、そして風俗嬢、そこでわたしに惚れ込んだのがサイトウという男性だった。
サイトウと何度も合う内に主人公は自分のこれまでの人生を語る、
そこでふと映画のポスターを見て地雷で足を失った人に義足を作ってあげたいと思ったと告げる。

わたしは軽い気持ちで言ったことだったが、サイトウは「だったら義足を作る仕事をすればいいじゃないか」と答えた。
わたしはびっくりして、そんなの無理だよと言ったが、サイトウは「どうして無理なんだ?」と尋ねた。
高卒でバツイチで子持ちで風俗で働く自分に義足なんて作れないと答える。
サイトウは「原因が分かってないと、問題は絶対に解決できない。けれど自分の何が問題なのか知ってる」と答え、
義足を作るのには国家資格が必要なこと、そのために必要な勉強や専門学校など資料を集めてきてくれた。

そして現在に戻り、サイトウが待合場所に来る所でこの短編は終わる。

願望と希望

「真剣に考えるのが怖かった。どうせすぐに諦めなければいけないと思ったからだ」
主人公の台詞であるがこれはとても強く共感した。

自分のやりたいことや叶えたいことを真っ直ぐに目指すというのは、とても大変なのではないかと思う。
億万長者になりたいとか荒唐無稽なことは口に出せるのに、自分の手が届くか届かないか分からないところにあるものを直視することはとても勇気が要ると感じる。
まさしく、自分が叶えられるかどうかを知るのが怖いからだ。叶わないと知った途端、それが失われることが酷く不安なのだ。

作中のわたしはサイトウと出会い、サイトウに話したことで義足作りという願望が現実味を帯びてきたというところで終わる。
別の作品か何かで見たかは覚えていないが、作者の村上龍は結構行動することに関して積極的だったと思う。
行動しなければ決して手は届かない、ということを読者に伝えたいのかもしれない。

本の整理しなきゃなぁ

自宅の本棚から要らなくなった本を処分できた。
だいぶすっきりしたものの、まだまだ積読本やらなんやらがぎっしり。

一度一斉に片さないといけないなぁと思う。

感想をブログにも書きたい。

latexで小説を書く

タイトルでは小説としてますが、以下の要素を満たした文書を作成します。

  • 日本語の文章
  • 縦書き
  • 用紙サイズは自由(A4,B4,A5,B5から)

使用する環境は以下の通りです。

結論から言ってしまうとこういう書き方で使用しています。

\documentclass[a5j,12pt]{tbook}
\usepackage{okumacro}
\usepackage[pass]{geometry}
\title{タイトル}

\begin{document}
\maketitle

本文

\ruby{漢字}{かんじ}にルビを振りたい時は、このように入力します。

数字を横書きで書きたい時は、\rensuji{999}と書きます。

\end{document}

用紙サイズに関する注意点

a5jと書いてあるのは用紙サイズを指定しています。
ここではA5用紙サイズです。
同じようにa4j、b4j、b5jと書くことで他のサイズを指定できます。

用紙サイズで注意が必要なのは、documentclassで指定してもpdf化するとうまくいかないことがあります。
私もA4サイズの縮尺でA5サイズに出力されたり、文字が用紙からはみ出したりしました。
3行目の\usepackage[pass]{geometry}はこの問題を回避するために入力しています。

jsonファイルの出力

Python3でjsonファイルを出力するプログラムです。

import json
import codecs

# jsonオブジェクトを作成する
obj = dict()
obj['foo1'] = 'bar1'
obj['foo2'] = 'bar2'

# 書き出すjsonファイルをopen
file = codecs.open('./output.json', 'w', 'utf-8')

# ファイルにオブジェクトを書き出す
json.dump(obj, file, indent=4, ensure_ascii=False)

オプションとしてインデントを4、
ascii文字のエスケープは無効でやっています。
今回の例では不要ですが、ascii文字を使用するときはこれをやらないとエスケープされてしまいます。

以下が書き出したjsonのコードになります。

{
    "foo1": "bar1",
    "foo2": "bar2"
}

以下、公式のドキュメントです。
19.2. json — JSON エンコーダおよびデコーダ — Python 3.6.1 ドキュメント
7.2. codecs — codec レジストリと基底クラス — Python 3.6.1 ドキュメント

7、8月のまとめ

前回の記事を書いてから何やってきたか殆ど覚えていないので、
思い出しながらまとめてみる。

Boostnoteのインストール

デスクトップとノートの両方にインストールして使っている。
Markdownでメモを書けるのは本当に楽!わかりやすい!簡単!

iCloudの共有フォルダにデータディレクトリ入れてるので、勝手に同期してくれる。
こんな便利なものあったんだと目からウロコでした。

boostnote.io

Python3

主にScrapyでスクレイピングするために勉強した。
前はRubyのAnemoneやNokogiriでやってたけど、それより便利かも。

ただ、Rubyに比べて日本語のドキュメントが少ないのが欠点といえば欠点か。
プログラマなんだから英語の勉強もしろよってことですね。

まだしっくりきてないですが、
一応クローリングとスクレイピングは違いますよってことを書いておきます。

  • クローリング
    • Webページのリンクを辿りながら保存する作業
  • スクレイピング
    • 保存したページからデータを抽出する作業

Unity

これについては殆ど触りだけしかやってません。
具体的には、ドットインストールのチュートリアルやったくらい。

ただ何か作れそうといえば作れそうです。
それが未定なのでいまいちモチベが上がらないだけですが……。

C++

ここ最近半分以上はC++いじっていたような気がします。
それくらいずっとC++ばっかりやってました。

今更、STL凄い!スマートポインタ凄い!ラムダ式凄いと感動してます。
いままで避けてきたツケが回ってきたというか。

読んだ本についてはこんな感じです。

  • 書籍「ゲームエンジンアーキテクチャ第2版」
    • ゲーム業界特化で書いてあるので面白い
    • 具体的なツール名や考え方、便利な機能まで細かく書いてある
    • 情報量が多すぎてまだ全部読み切れていない……
  • 書籍「標準講座C++
    • 2年近く昔に買った本なので情報が古い
    • 基本的なことは一通り書いてあるので困ったときのドキュメントになってる

C++gccコンパイラを使ってます。
Makefileから書くと今まで意識してなかったことが理解しやすくて勉強になる。
リンクってなんだ?オブジェクトファイルってなんだ?が一気に解決しました。



そんなところです。

TS Sniperの出力エラー「Unable to to read next transport packet - End of file reached.」の対処方法について

録画したテレビ番組の編集にTS Sniperを使っているのですが、
ある時カット編集したTSファイルを出力しようとしたら以下のエラーが表示されました。

Unable to to read next transport packet - End of file reached.

f:id:katakusu1714:20170715141810p:plain

エラーが出るTSファイルと出ないファイルがあるようで、
原因がよく分かりませんでした。


色々調べた結果、対処方法らしきものを発見したので、
以下に記載しておきます。

対処法

要点だけ言うと、
今までと同じようにTSファイルをTS Sniperで編集するのではなく、
TSファイルを一旦tsMuxeRというソフトに通してからTS Sniperで編集するというものです。

tsMuxeRのダウンロードや説明は以下のリンクより
www.gigafree.net

tsMuxeRをダウンロードインストールしたら、以下の手順どおりに編集します。

実行手順

1. tsMuxeRを起動する

2. tsMuxeRにTSファイルをドラッグドロップ

色々設定できるみたいですが、確認するのはInputタブのみで大丈夫です。

Input filesにドラッグドロップしたファイルが設定されてて、
Tracksで全部(動画、音声)にチェックが入ってて、
OutputがTS muxingに設定されていることを確認します。

OutputのFile nameから出力先や出力名を変更できます。

3. [Start muxing]で出力する

4. 出力したTSファイルをTS Sniperで編集して書き出す


今のところ上記の方法でエラーは出なくなりました。

6月まとめ

6月にやったことをまとめてみる

一番内容濃かったと思ったのはSwiftの勉強だった。
実機でテストできるって知ってから一気にモチベ上がった。
ちなみに、手持ちのiPhoneは5無印という骨董品だけど。

Swift勉強する上できつかったのは、過去のバージョンとの互換性があまりない。
ナレッジを調べても出てくるコードはObjective-C、swift1、swift2……

AppleはまたSwift4出すようだけど、もうやめてくれと……