宣言とnewの違い

1.宣言

Vector v;
double len = v.length();
  • C++ではクラスを宣言すると引数なしのコンストラクタが自動で呼び出される。
  • 呼び出されたフィールドにアクセスするには.(ドット)を使う。
  • オブジェクトはスタック領域上に実体が作成される。そのため宣言されたスコープを抜けると自動的に破棄される。

2.new演算子

Vector* v = new Vector();
double len = v->length();
delete v;
  • 呼び出されたフィールドにアクセスするには->(アロー)を使う(ポインタなので)。
  • オブジェクトはヒープ領域上に実体が作成される。 そのためnewを使用して作成されたオブジェクトは、deleteを使用して削除するまで残る。

グラフプロジェクト

グラフ理論が結構面白かったので、それを元に何かソフトを作ってみようと思う。

とりあえずはPythonjsonで作ってみて、それを操作できるGUIのソフトを作りたい。
GUIはelectronが良さそうなので、これでやってみる。

オライリーでグラフデータベースの書籍が無料だったので頑張って読んでみたい(英語…)。

参考

ThinkPadが起動しなくなったときの対処

うちのThinkPad E440が起動しなくなった時の対処を書いておきます。

症状1:スイッチを入れても画面が真っ暗のまま

Biosまで起動しなくなってました。
ぐぐったらどうやらCMOS電池を抜き差ししてリセットすることで直る可能性ありとのことです。
まずはCMOS電池の抜き差しを試してみました。
が、起動しなかったのでアマゾンで新品を買って交換しました。

無事、起動成功しました。

症状2:スイッチを入れても画面が真っ暗のまま、CMOS電池に問題ない

今回は本当にオシャカになったと思いました。

しかし、メモリを抜いて再び指してみると無事起動しました。

調べてみると、以下のような症状と場合はメモリを疑ったほうがいいみたいです。

電源が突然落ちる。
パソコン使用中にブルースクリーンになる。
何かのソフトやアプケーションを起動させるとパソコンが再起動する。
上と似ていますが、クリックしたタイミングでパソコンが再起動する。
電源は入るが、パソコンが起動しない、画面に何も表示されない。
リカバリー(パソコンの初期化)・Windowsのインストールができない。
パソコンが起動しない、起動中に再起動。
パソコンが完全にフリーズ。マウス・キーボードが効かない

www.pc-master.jp

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

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

どんな本?

この本は村上龍に書かれた短編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 ドキュメント