2020年9月14日月曜日

美術の授業

 今から思えば、子供の頃、自分は正解を求めすぎな人間だったような気がする。


中学校時代の美術の授業まで遡る。


覚えているのは、「メッセージ性のあるポスターをつくろう」という感じの授業だったかと思う。


ポスターというのか、絵というのか、その両方のような課題だった気がする。


例えば、「いじめをやめよう」とか、「絶滅危惧に瀕している動物を守ろう」と「環境破壊を防ごう」とか、そういったメッセージ性を絵で伝えようというものだった。


中学校の授業なので、どういうメッセージにするかということはそれほど重要ではなく、それをどう表現するか、といったことを学ぶような授業だった気がする。


自分は「水を大切に使おう」みたいなメッセージだったと思う。


周りのみんながつぎつぎと作るべきものを決め、作業を進めていくのを、「どうしてそんなに早く正解が見つけられるのだろう」と思いながらみていた。


もう少し正確にいえば、当時も正解が一つではない、とは思っていた。


しかし有限ではあると思っていて、周囲の人が描くテーマを決めていくに従って、「正解が一つとられた」と思っていた。


そんななか、「正解」と思われるテーマを捻り出し、具体的なデッサンのプランを先生に相談しに行っていた。


このときも、そもそも決めたテーマが正解なのか自信がない、さらにそれを表現する手段として自分のアプローチが正解なのかも自信がなかったので、かなりこまめに先生に相談しにいっていた気がする。


あまりにもこまめだったからか、「いや、それでいいからとりあえずやってみなよ」と先生に言われた。


結局悩む時間が増えれば増えるほど、作業にとれる時間も減っていくので、納得のいく出来栄えではなかった。


今思えば、そもそも「正解」なんてない、というか無限にあるのに、「正解」を求めすぎていたような気がする。


それは、もっといえば、自分に自信がなかった、自己肯定感が低かったので、周囲の目を気にしすぎていたからだと思う。


周囲の人から、無難に思われる、あるいは優秀ではなくてもまずまずと思われるところを狙いすぎていたと思う。


いわゆる5教科の成績はよく、それなりに頭はよく、学校でもうまくやっていけていたので、下手な作品をつくることで自分の評価が落ちることを恐れていたのかもしれない。



少し話はそれるが、さらに小学校まで遡っても美術(小学校のときは図工という名前だったが)の授業はあまり好きではなかったかもしれない。


小学校のときも、時間内に課題を完成させることができず、放課後に残って作業しても完成させられず、あとは家でやります、と持ち帰って結局完成させなかったような気がする。



今この年になってみると美術も少し好きになった気がしてる。

美術というか芸術全般が割と好きである。


なにが変わったのかというと、芸術への関わり方は「自分自身が創造すること」だけではない、ということを知ったからではないかと思っている。


一口に芸術といっても、

美術に関しては、絵画、彫刻、版画、漫画その他まだまだ色々、

音楽に関しても、クラシック音楽、民族音楽、雅楽、ジャズ、ポップス、ボカロ、等々、

演劇でも色々。


さらに、それを観賞する、背景を知って考えるという楽しみ方もできる。


そういういろいろな関わり方を知り、「自分自身が創造するだけ」ではないということを学んだからこそ、好きになったような気がする。


そして、「創造する」ということに関してであれば、手段は上記の分野だけではなく、他にもいくらでも手段があるということがわかってきたからだと思う。


自分の好きな数学や、プログラミング、そしてこのブログのように文章をかいたり。




2020年9月7日月曜日

Lie to meが好き

 Lie to meが好きすぎて、多分今までで3周ぐらいはしている気がする。

ティムロスがはまり役!

とか、

ケリーウィリアムズ美人!

とか、それ以外にも自分が好きポイントをあげるときりがないのだが、それはまた別の機会にじっくり語る。

延々と語ってやる!



今回話すのは、自分が好きなタイプの映画やドラマについて。

好みはいろいろあるけど、その中の一つとして、「専門家が活躍する作品」が割と好き。

先ほど挙げた『Lie to me』もそうだし、『科捜研の女』、『Voice』(結構前のドラマかもしれないけど、法医学系のドラマ)、『Dele』、『コードブルー』とか。

特に、自分が好きな理由を表現しているシーンが『コードブルー』のシーズン3の第8話で灰谷先生が子供のレントゲン?をみて「おかしい、なにもない」っていうところ。

あぁいう、訓練をして見える人にしか見えない・判断できないことができるっていうのが憧れる。

決して誰にでもできることではないけど、みる人がみればわかる的な。


そういう意味では『Lie to me』も微表情を読み取る、っていうところでは共通している。

でも、それがファンタジーとかになってしまうのはダメ。あくまで現実ベースで。


そういうことで、専門家が活躍するような作品は好きなのです。

2020年9月6日日曜日

とりこぼしてる課題

 正直、自分は年齢に対して精神年齢が幼いと思う。

いろいろ理由はあると思うが、最近考えていることは、今まで生きてきた中でやり残したまま放置していることがあることが、一つの原因だと思っている。


一つは、跳び箱ができないことだ。

基本的に運動全般は得意ではない。

しかし、自分と同じように運動が得意ではない人でも、大半の人はなんとか克服してできるようになっているであろうことをできていないというのは、一つ心に突っかかっているかもしれない。

もちろん、そもそもとして五体満足ではなく、そもそもの前提にたてない人もいるだろう。

また、社会人にでもなってしまえば、跳び箱の一つできないことぐらい、どうということではない。

だから、自分と同じように跳び箱をできない人を貶めるようなつもりはないが、ただ自分の中では、恥ずかしいこととして認識しているように思う。

で、いつか克服しようと後回しというか保留にしているうちに、精神年齢は当時からさほど変わらず、実年齢だけ増えてしまったという感じがしている。

ちなみに逆上がりはできる。



それと同じ並びでいくと、野球が苦手だ。

正確にいえば、バッターとしてボールを打つとき、向かってくるボールが怖い。


小学生のとき少年野球をやっていた。

ただあまり好きではなかった。

特に、物凄いスピードで迫ってくるボールが怖かった。

例えば、今挙げたようなバッターボックスに入ったときにピッチャーが投げてくるボールが怖い。

かなりの至近距離までボールが迫ってくるし、コントロールが悪いと当たってしまう。

当時は至近距離ノックとかもさせられた記憶がある。

バッターの打球を守備としてキャッチするのとかは問題ない。

結局それも、「なんで怖いのか」という根本の原因を解決しないまま今に至ってしまっているような気がする。

「なんで怖いのか」という根本の原因、といったって、それはあのスピードでボールがせまってくるから怖い、のであるが、そういうことではない(どういうことだよ)

でも、良くも悪くもルールはわかるので観戦するのは好きだ。


同様の並びで、一輪車もできない。


ちなみにスポーツ関連の他の競技に関していうと

サッカー→特別得意ということはないが、少なくとも苦手意識ということはない。あのごちゃごちゃした感じとかルールとかわかってないが、ボールが怖いとかそういうことはない。

バスケ→同様

テニス→学生の頃少しやった程度。恐怖心とかはない。

バレー→中学生のときにやっていた。強烈なスパイクとか飛び込んでレシーブとかは怖い。

水泳→一応、全ての泳法ができるし、苦手意識は感じない、というかどちらかというと一番好き。

剣道→高校の授業で少しやった。結局よくわからず。得意とか不得意の前によくわかってない。

柔道→中学・高校で少しやった程度。体格が小さいのであまり得意ではない。相手の力をうまく利用する、とはいってもある程度こちらも力は必要な気がする。

器械体操→身体能力が高くないので、全体的に苦手。



少し話が逸れてしまった。

この辺りの話が、心理学で課題解決がどうのこうのというような話があったなと思って調べてみたら、エリクソンという人がそういう研究をやっていた。

なんか昔、教養か何かの授業でそんなことをやった記憶がおぼろげながらある。

発達心理学の課題解決理論的な視点で、今回の話をもう少し掘り下げられそうな感じはしているが、それはもう少し調べてから別の機会に。








2020年8月30日日曜日

地元の公園

駅までの道にある公園を通ったら、かなり大幅な改修工事が入っていた。

改修なのか、解体なのか、正確なところはわかりませんが。

少なくとも、遊具のメンテナンスという程度の工事ではなかった。


この界隈で育ち、過ごし、小さい頃からこの公園ではよく遊んだ。

それこそ、小学生の頃は、ほぼ毎日遊んでいたかもしれない。


地域がバレてしまうかもしれないが、ドロケイやポコペンをやったり、ネットで区切られたグラウンドがあったので、野球やサッカーをやったり、トイレの屋根の上に登ったり、木登りをしたり。

周囲に他にも公園はあったがこの公園が一番遊んだかもしれない。


それが、ネットで囲われていたグラウンドが解体され、ネットははずされ、柱もこわされほとんど更地になっていた。


つい先日まで、普通に子供たちがグラウンドでサッカーとかして遊んでたのに。


この公園がどうなるのかわからないが、昨今の風潮に合わせてまた一つ遊び場が消えてしまうのだろうか。


自分の思い出が詰まっている場所でもあるので、それだけはなってほしくないなぁと思いながら、駅までの道をいく。


 

2020年8月29日土曜日

充実した一日

久しぶりの投稿。

つい先日誕生日を迎えた。

多分誕生日がわかるような記述をした覚えはないはずなので、誕生日が特定されないように「先日」という感じでぼかす。

それから少し間が空いてしまっているので、それを機に、ということではないがまた書き始めてみようと思う。


今日は久しぶりに充実した日だった。


最近は平日は仕事が割とハードモードで、それにコロナ禍でそもそも積極的に外出もできないので、お昼前まで寝ていることが多かった。

しかし、今日はSNSで知り合った人と初めて会う人との約束があったため、朝から起きて外出。

SNSのプロフィールに書いておいたことに興味をもって頂き、一緒に勉強会から始めない、と提案され、まずはそれの初顔合わせということだ。

もともと「とりあえず走り始めること」があまり得意ではなく、改善しなければいけないと思ってはいたが、今日新しい出会いで感化され、とりあえず動き始めてみることにした。

「人が集まらないと成り立たない」と思いがちだけど、一方で「とりあえず走らせないと人が集まらない」というのもまた真なりだとは思うので、まずはスタートしてみよう。


その後、お昼を食べ帰宅。


その後今月から通い始めているジムへいきプールで泳ぐ。

プールで泳ぐの自体は今年(というか今月)3回目。

最初はすぐ息が上がり、足もすぐパンパンになっていたが、割と量が泳げるようになってきた。

泳ぎ方の勘も取り戻したのか、クロールとかであれば25mぐらいは一瞬に感じるようになってきた。


その後は帰っていろいろ勉強とか。


ここ最近では比較的充実した一日だった。









 

2020年4月19日日曜日

Mnistのインストール方法いろいろ

導入

手書き文字認識のデータセットは、有名なデータセットです。

いろいろなライブラリから活用できるように整備されているのですが、当時の自分は「ファイルって外部から読み込むんじゃないの」(←今思えば、よくわかるようなわからないような疑問)とか、あるいはネットで調べても読み込み方がいろいろあって、その関係性がわからなかったりして混同しておりました。

 そういう人が他にもいるかもしれないなと思って、情報を整理する目的で書きました。

前提

sklearn、tensorflow、pytorchはインストールされている前提から話を始めます。(自分はAnacondaを使って環境を整えました)

sklearn、tensorflow,pytorchの全てが必須ということではありません。それぞれの場合について説明をするという意味です。

OSはMacOSXを使用しています。

注意

いわゆる手書き文字認識のデータセットですが、似たようなものが2つあります。

一つは、sklearnインストール時に一緒についてくる(標準で備わっている)手書き文字認識用のデータセットです。

二つ目は上記以外の方法で入手したものです。

一つ目のほうは、8×8ピクセルの画像から構成されています。

二つ目のほうは、28×28ピクセルの画像から構成されています。

どちらも「手書き文字認識」とか「Mnist」とかの検索で引っかかってくるし、なんとなく画像の雰囲気も同じ感じなので、いろいろ混同しておりました。

sklearnの標準搭載(8×8サイズのデータ)

データセットの場所

sklearn標準のデータセットは以下の場所にあります。
/(環境によって違う部分)/lib/python3.7/site-packages/sklearn/datasets
自分の場合のディレクトリ構成を参考までに。(Anacondaを使っています)
$ls  /Users/hiroshi/opt/anaconda3/lib/python3.7/site-packages/sklearn/    //パスで指定された中のファイル・ディレクトリ一覧を表示

__check_build   dummy.py   model_selection
__init__.py   ensemble   multiclass.py
__pycache__   exceptions.py   multioutput.py
_build_utils   experimental   naive_bayes.py
_config.py   externals   neighbors
_distributor_init.py  feature_extraction  neural_network
_isotonic.cpython-37m-darwin.so feature_selection  pipeline.py
base.py    gaussian_process  preprocessing
calibration.py   impute    random_projection.py
cluster    inspection   semi_supervised
compose    isotonic.py   setup.py
conftest.py   kernel_approximation.py  svm
covariance   kernel_ridge.py   tests
cross_decomposition  linear_model   tree
datasets   manifold   utils
decomposition   metrics
discriminant_analysis.py mixture
そしてその中のdatasetsフォルダをみてみると、
$ls /Users/hiroshi/opt/anaconda3/lib/python3.7/site-packages/sklearn/datasets

__init__.py     california_housing.py
__pycache__     covtype.py
_base.py     data
_california_housing.py    descr
_covtype.py     images
_kddcup99.py     kddcup99.py
_lfw.py      lfw.py
_olivetti_faces.py    olivetti_faces.py
_openml.py     openml.py
_rcv1.py     rcv1.py
_samples_generator.py    samples_generator.py
_species_distributions.py   setup.py
_svmlight_format_fast.cpython-37m-darwin.so species_distributions.py
_svmlight_format_io.py    svmlight_format.py
_twenty_newsgroups.py    tests
base.py      twenty_newsgroups.py
となっています。

ここに手書き文字認識以外にも、データセットが用意されています。

さらに、フォルダを深く入っていきます。
$ ls /Users/hiroshi/opt/anaconda3/lib/python3.7/site-packages/sklearn/datasets/data
boston_house_prices.csv  diabetes_target.csv.gz  linnerud_exercise.csv
breast_cancer.csv  digits.csv.gz   linnerud_physiological.csv
diabetes_data.csv.gz  iris.csv   wine_data.csv
ここに、sklearnを扱った記事でよく引用されるirisデータセットやboston_house_pricesデータセットなどがあります。

データセットのインポート方法

sklearnの公式ページのコードそのままではありますが。

以下作業はターミナルからpythonを起動して行っています。
>>> from sklearn.datasets import load_digits
>>> import matplotlib.pyplot as plt
>>> digit=load_digits()
>>> digit.data.shape
(1797, 64)      // (8×8=64列の行列として格納されている)

>>> plt.gray()
>>> digit.images[0]
array([[ 0.,  0.,  5., 13.,  9.,  1.,  0.,  0.],
       [ 0.,  0., 13., 15., 10., 15.,  5.,  0.],
       [ 0.,  3., 15.,  2.,  0., 11.,  8.,  0.],
       [ 0.,  4., 12.,  0.,  0.,  8.,  8.,  0.],
       [ 0.,  5.,  8.,  0.,  0.,  9.,  8.,  0.],
       [ 0.,  4., 11.,  0.,  1., 12.,  7.,  0.],
       [ 0.,  2., 14.,  5., 10., 12.,  0.,  0.],
       [ 0.,  0.,  6., 13., 10.,  0.,  0.,  0.]])
>>> plt.matshow(digit.images[0])
>>> plt.show()

そうすると以下のような画面が立ち上がります。



オリジナルのデータをダウンロード(28×28サイズのデータ)

Mnistオジリナルのデータはこちらにあります。 

ただし、ここで入手できるのはそのままでは使用できないバイナリファイルです。

なので、自分でデータを使える形にまで加工しなければいけないところですが、以下でみていくように、Mnistは非常に有名なデータセットなので、いろいろなライブラリにすぐに使えるように整備されているツールがあります。

このバイナリデータを自力で元に戻す方法ももちろん存在はするようですが、そこまでフォローしきれなかったし、そこに時間かけるのもどうかと思ったのでその方法については触れません。

sklearn経由でダウンロード(28×28サイズ)

ネット上の記事をみていると、古い記事では
from sklearn.datasets import fetch_mldata
としている記事もありますが、現在ではアクセスしようとしている先のページが使用できないためエラーになります。

なので現在では以下のようにfetch_openmlを使用するようです。
 (scikit-learn(sklearn)のfetch_mldataのエラーの解決法)

これも、ターミナルから起動してます。
>>> import matplotlib.pyplot as plt   // 上からの流れてすでにインポート済かもしれませんが、一応。まだインポートしてなかった場合はこれもやる。
>>> from sklearn.datasets import fetch_openml
>>> digits = fetch_openml(name='mnist_784', version=1)
>>> digits.data.shape
(70000, 784)
>>> plt.imshow(digits.data[0].reshape(28,28), cmap=plt.cm.gray_r)

>>>>>> plt.show()



tensorflow(28×28サイズ)

tensorflowのチュートリアルから入れる方法。
>>> from tensorflow.examples.tutorials.mnist import input_data
とすればいけるらしいのですが、自分の場合は以下のようなエラーが出てしまいました。

結論からいうと、どうやらtensorflowをインストールする際に、tutorialのフォルダがダウンロードされないことがあるらしいです。

Traceback (most recent call last):
  File "", line 1, in 
ModuleNotFoundError: No module named 'tensorflow.examples.tutorials'
実際のディレクトリの中身をみてみました。
$ls /Users/hiroshi/opt/anaconda3/lib/python3.7/site-packages/tensorflow_core/examples/
__init__.py __pycache__ saved_model
となっていました。

以下のページを参考にしました。

まず、Tensorflowのgithubページへアクセスし、zipファイルをどこでもいいのでダウンロードして解凍します。



tensorflow-masterというフォルダがあるので、そのなかのtensorflow-master\tensorflow\examples\の場所に、tutorialsというフォルダがあります。

このturorialsというフォルダをフォルダごと/Users/hiroshi/opt/anaconda3/lib/python3.7/site-packages/tensorflow_core/examples/の中にコピーします。

 ここまでできれば、
>>> import matplotlib.pyplot as plt   // 上からの流れてすでにインポート済かもしれませんが、一応。まだインポートしてなかった場合はこれもやる。
>>> from tensorflow.examples.tutorials.mnist import input_data
>>> mnist = input_data.read_data_sets("MNIST_data", one_hot=True)
>>> im = mnist.train.images[1]
>>> im = im.reshape(-1, 28)
>>> plt.imshow(im)

>>> plt.show()

とすれば、同様に画像が表示されるはずです。

keras(28×28サイズ)

>>> import matplotlib.pyplot as plt   // 上からの流れてすでにインポート済かもしれませんが、一応。まだインポートしてなかった場合はこれもやる。
>>> import tensorflow as tf
>>> mnist = tf.keras.datasets.mnist
>>> mnist
>>> mnist_data = mnist.load_data()
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz
11493376/11490434 [==============================] - 1s 0us/step
>>> type(mnist_data[0])
   //タプルで返ってくる。
>>> len(mnist_data[0])
2
>>> len(mnist_data[0][0])
60000
>>> len(mnist_data[0][0][1])
28
>>> mnist_data[0][0][1].shape
(28, 28)

>>> plt.imshow(mnist_data[0][0][1],cmap=plt.cm.gray_r)

>>> plt.show()
もう画像は載せませんが、うまくいけばまた画像が表示されます。

pytorch(28×28サイズ)

まずこれができないと先へ進めないらしいですが、
>>> from torchvision.datasets import MNIST
次のようにエラーがでてしまった。

torchvisionがないらしい。

自分の場合にはcondaでpytorchを入れる際に、単に
conda install pytorch
しか行っていないからのようでした。

付属物までいれるには以下のようにするらしいです。
conda install pytorch torchvision -c pytorch 
確認を求められるのでyを押します。

 (必要であれば)上記を行った上で、以下のようなコードを実行してみます。
>>> import matplotlib.pyplot as plt   // 上からの流れてすでにインポート済かもしれませんが、一応。まだインポートしてなかった場合はこれもやる。


>>> import torchvision.transforms as transforms
>>> from torch.utils.data import DataLoader
>>> from torchvision.datasets import MNIST
>>> mnist_data = MNIST('~/tmp/mnist', train=True, download=True, transform=transforms.ToTensor())
>>> data_loader = DataLoader(mnist_data,batch_size=4,shuffle=False)
>>> data_iter = iter(data_loader)
>>> images, labels = data_iter.next()
>>> npimg = images[0].numpy()
>>> npimg = npimg.reshape((28, 28))
>>> plt.imshow(npimg, cmap='gray')

>>plt.show()

番外編(はじめてのDeeplearningより)

オライリーから出ている『ゼロから作る Deep Learning』では、この本が提供しているファイルの中で独立して行われています。

具体的には、[『ゼロから作る Deep Learning』で使用されるファイルのgithubページ]でダウンロードしてきたフォルダの中で全て読み進めていきます。(もちろん、予めpythonやnumpyなどは準備しておく必要はありますが。

以下手順。

まず、上記で述べたGithubページからフォルダをダウンロードなりクローンしてきます。

ここでは、ダウンロードで行います。

そして解凍します。



そうするとdeep-learning-from-scratch-masterというフォルダができます。

 各章ごとにフォルダ分けされているので、その章のフォルダへ移動して読み進めていく感じになります。

フォルダ自体はch01からありますが、Mnistのデータが使用されるのは第3章なので、ch03に入ることにします。

$ pwd
/Volumes/SONY_64GB/deep-learning-from-scratch-master/ch03
pythonを起動して・・・
>>> import sys,os
>>> sys.path.append(os.pardir)
>>> from dataset.mnist import load_mnist
>>> (x_train,t_train),(x_test,t_test) = load_mnist(flatten=True,normalize=False)
Downloading train-images-idx3-ubyte.gz ... 
Done
Downloading train-labels-idx1-ubyte.gz ... 
Done
Downloading t10k-images-idx3-ubyte.gz ... 
Done
Downloading t10k-labels-idx1-ubyte.gz ... 
Done
Converting train-images-idx3-ubyte.gz to NumPy Array ...
Done
Converting train-labels-idx1-ubyte.gz to NumPy Array ...
Done
Converting t10k-images-idx3-ubyte.gz to NumPy Array ...
Done
Converting t10k-labels-idx1-ubyte.gz to NumPy Array ...
Done
Creating pickle file ...
Done!
>>> print(x_train.shape)
(60000, 784)
>>> print(t_train.shape)
(60000,)
>>> print(x_test.shape)
(10000, 784)
>>> print(t_test.shape)
(10000,)
>>> 
参考にしたページ

Mnistのオリジナルのデータ

sklearn

Tensorflow

Keras

Pytorch

その他

2020年4月13日月曜日

python3.8 on CentOS8


  • Pythonのディレクトリ構造
  • VirturalBoxの使い方
  • CentOS8に触ってみる
といったことを勉強したかったので、CentOS8にPython3.8をインストールをしてみました。

その時の手順を参考になればと思い記事を書きました。

それなりの枚数の画像が挿入されて記事が長くなると思われるので、この記事の要点を先に述べておきたいと思います。

この記事で触れること

  • CentOS8のインストール手順
  • Python3.8のインストール手順(二通り)
  • Python3.8をそれぞれの方法でインストールしたとき、ディレクトリはどうなるか

この記事で触れないこと

  • VirturalBox自体のインストールには触れません。他の記事を引用するに留めます。

自分の環境

  • MacOS 10.15.3 Catalina (今回はVirtualBoxインストール済みのところから話を始めるのであまり関係はないですが。。。)
  • VirtualBox 6.0.18

Python3.8のディレクトリ構造

まず、Python3.8のディレクトリ構造がどうなるか、述べてしまいたいと思います。

コマンドでインストール

  • python3.8の実行ファイル(バイナリファイル)は絶対パスの/usr/binにきます。
  • ライブラリなどは絶対パスの/usr/local/lib/Python3.8/site-packagesにきます。

インストーラーでインストール

CentOSの場合にはインストーラーというものはないようです。

公式サイトへいってもダウンロードできるのはソースコードしかないので、結局はそれを自分でビルドしていくことになるので、上記のコマンドを使う方法と同じことになります。

VirtualBoxのインストール手順

これは調べればたくさん記事が出てくるので、割愛。インストールは済んでいるところから話を始めます。 例えば、
などなど。

CentOS8のイメージファイルのダウンロード

CentOSの公式ページから、まずはCentOS本体のデータをダウンロードします。 この中にあるものであれば、どれも同じなのでどれでもいいのでダウンロードします。






CentOS8のインストール

まずはVirtualBoxを起動します。

下記の画面では、自分が試しに作った別用途のCentOSが表示されてしまっていますが、今回は新規につくるので「新規」をクリックします。



名前の欄は、「あとから起動する時に区別するため」の名前を適当に決めます。ここでは、わかりやすく「CentOS8」としました。

それ以外の設定は特にいじらず、名前の欄を入力したら、「作成」ボタンを押して先へ進みます。



次に、ファイルの場所を決めます。

これは、今から作る仮想マシン自体も、この今作業しているパソコン上に存在することになるわけですが、その場所やそのファイルの名前をどうするのか、ということです。

これも特別な理由がないのであれば、いじらなくていいです。

ファイルサイズは、デフォルトでは8GBになっています。

あとあと、CentOSをインストールする際に、いくつかバリエーションが選べるのですが、「本当に最小限」のものだけをインストールするのであれば、8GBでもいいのですが、そうでない場合には8GBだと足りないので、うまくいくように11GBにします。

最小限、ただ起動するだけだとしても、そのために必要なファイルなどがあるわけです。それらのファイルにも存在できる場所は必要なので、その合計値よりも多くなければいけないということです。

それ以外は、下記画像と同じようになっているか確認し、「作成」ボタンを押します。


そうすると、まずはCentOS8をインストールするための場所が確保できました。


次に、実際にインストールをしていきます。

今作成したCentOS8のところを右クリックして、「起動」→「通常起動」をクリックします。




そうすると、次のような画面になります。


ここで、ダウンロードしてある、CentOS8のイメージファイルを選択します。

選択したら、「Start」を押します。


そうすると、CentOS8のインストール画面が立ち上がります。

いくつか選択肢が表示されていますが、「Install CentOS Linux 8」が選ばれているはずなので、そのまま「Enter」を押します。(まぁなにも押さなくてもカウントダウンが終わればそのまま自動で選択されます。)


言語の設定をします。

操作に少し注意が必要です。

仮想環境の中と外では、別操作になります。仮想環境の画面上をクリックすれば、操作が仮想環境の中に移りますが、そのままでは今度は仮想環境の外の操作ができないので、(仮想環境の中ではなく)普通のPCの操作をしたい場合には「左のCommand」を押します。

日本語を選んで、「続行」を押します。


「続行」を押すと、以下のような画面になります。

画面が途中で見切れてしまっています。これはあとで別途設定することで直すこともできますが、ここでは一旦このまま進めます。

この画面から、
  • 時刻と日付
  • ソフトウェアの選択
  • ネットワークとホスト名
を設定していきます。


日付と時刻を以下のように設定します。

設定したら、左上の「完了」を押します。



「完了」を押すと、元の画面に戻るので、今度は「ソフトウェアの選択」を選択し、以下のように設定。

ここで、「最小限のインストール」を選択してもいいのですが、そうすると本当に最小限しかインストールされずGUIとかもなくCUI上でコマンド操作しなくてはいけなくなります。

なので、慣れないうちはある程度その他のツールも込み込みの「ワークステーション」を選ぶとよいと思います。

勉強して詳しくなってきたら、「サーバー」とか「最小限のインストール」とかでチャレンジしてみるのもいいかもしれません。

冒頭のほうでファイルサイズを8GBに設定しました。

仮に「最小限のインストール」をインストールする場合には、それで足りるのですがその他のツールも含めてインストールしようとするとそれでは足りなくなるので、そのために冒頭では11GBに設定したのでした。

右側の「選択した環境用のその他のソフトウェア」の中も、適当にいくつか選びます。

自分の場合は、以下の画像のように選択しました。




選択したら、まだ左上の「完了」を押して元の画面に戻り、今度は「ネットワークとホスト名」を設定します。

右上のEthernet(enp0s3)のところをクリックしてONにします。そうしたら左上の「完了」を押します。


元の画面に戻りますので、右下の「インストールの開始」をクリックします。


そうすると、インストールが始まります。

それなりの時間がかかるので、その間にrootのパスワードとユーザーの作成をします。


「rootのパスワード」を選択し以下の画面を表示させます。

パスワードを二回入力し、左上の「完了」を押します。

同様に、ユーザーの作成も行います。

ユーザー名とパスワードを入力。

「このユーザーを管理者にする(M)」もチェックをつけておきます。

設定したら左上の「完了」ボタン。


あとはインストールが終わるまでしばらく待ちます。



完了すると以下のような画面になります。そうしたら右下の「再起動」をクリックします。



このまま、何も操作をせずに待っているともう一度インストール画面になってしまうので、一旦イメージファイルを外します。

まずは再起動される前に、以下の画面のような元々のVirtualbox起動時の画面で、今作成中のCentOS8を右クリックして、「閉じる」→「電源オフ」で仮想マシンの電源を落とします。

以下のような画面になっていることを確認。

この画面で「設定」を押します。



設定の画面が開いたら、下記画面のように選択。

そして「仮想ドライブからディスクを除去」を選択。



以下のようになることを確認し、右下の「OK」をクリックし設定画面を閉じます。



VirtualBox起動時の画面へ戻ったら、CentOS8をダブルクリックして起動します。

少し待つと以下のような画面が表示されます。

License informationをクリックします。




「ライセンス契約に同意します。(A)」にチェックを入れて、左上の「完了」を押します。


右下の「設定の完了」を押します。


そうするとユーザー選択画面が表示されます。

作成したユーザーでログインします。



該当ユーザーのパスワードを入力し「ログイン」をクリックします。



無事ログインできれば、以下のような画面が表示されるはずです。


このあと、Pythonをインストールをするにしても、ネットへ繋がってなければなにも始まらないので、ネットが繋がるかどうかも確認しておきます。

これもいろんな方法があるとは思いますが、そのうちの一つ。

Firefoxを起動します。



そして、なんでもいいですが、googleの検索画面が表示できるか確認しましょう。




実は、CentOS8のインストール自体はこれでできているのですが、「画面を最大化」したり、「ホストOSからゲストOSへコピペ」とかいったりということがまだできません。

一通り作業が終わったあとにやるつもりですが、行う順番はどちらが先でもいいので、先に設定したい方はこちらの記事を先に読んでください。

VirtualBoxで画面を最大化する方法、クリップボードを共有する方法


python3.8のインストール

dnfを使用してインストールする場合

CentOS8のトップ画面へ戻り、「端末」を起動します。 これ以降はこの中での作業になります。



以下のコマンドを打ちます。

仮想環境の外から仮想環境の中へコピペもする方法はありますが、今この段階ではできないので、頑張って手打ちします。

$ sudo dnf groupinstall 'development tools’ 
何度か、確認を求めれるので全て「y」を押して進みます。

処理が終わったら、続いて次のコマンドを実行します。
$sudo dnf install bzip2-devel expat-devel gdbm-devel ncurses-devel openssl-devel readline-devel sqlite-devel tk-devel xz-devel zlib-devel wget
$VERSION=3.8.2
$wget https://www.python.org/ftp/python/${VERSION}/Python-${VERSION}.tgz
ここまで完了すると、/home/name(←いまログインしているユーザーの名前)以下に、.tgzのファイルが入ります。
$tar -xf Python-${VERSION}.tgz   // .tgzファイルを解凍
$cd Python-${VERSION}            // 解凍したファイルへ移動
$./configure --enable-optimizations  
$nproc

//自分の場合の出力
1
$sudo make -j 1 (←nprocで出力された数字を入力)
$sudo make altinstall
インストール自体はこれで完了なので、きちんとインストールされているか確認します。これも方法はいくつかあると思いますが、以下のようになれば成功しています。
//一例
$python3.8 —-version
Python3.8.2
あるいは実際に起動してみてもいいでしょう。
$Python3.8
Python3.8.2 (default ,Apr 10 2020, 00:51:32)
[GCC 8.3.1 20190507 (Red Hat 8.3.1-4)] on linux
Type "help","copyright","credits" or "license" for more information.
>>

そして、たびたびくどいようであれですが、「画面の最大化の設定」や「ホストOSとゲストOSでクリップボードの共有」などを設定した場合はこのあとに行っても構いません。

VirtualBoxで画面を最大化する方法、クリップボードを共有する方法


補足(万が一ネットにつながらないという場合)

基本、この手順を最初からなぞっていけば、ネットにも繋がっているとは思いますが、万が一つながらない場合には、以下のコマンドを実行してみましょう。
$nmcli d    // 接続の状態を確認、
                 // enp0s3のところ接続されていない状態になっている可能性がある。
$nmcli  connection up enp0s3   // 接続を確立
$nmcli d //念のため、もう一度状態が変わったか確認

VirtualBoxで画面を最大化する方法、クリップボードを共有する方法

この記事では、
  • VirtualBoxの中の画面を最大化する方法
  • ホストOSとゲストOSでクリップボードを共有する方法について説明します。
画面の最大化については、初期の状態では仮想化のウィンドウ自体を最大化しても、中の画面は大きくなりません。

そのままサイズで、周囲が黒く囲まれ、表示されるべきはずの画面が一部見切れているような状態になります。

これを通常の画面と同じように、スクリーン全体で表示できるように設定します。

また、同様に初期状態では、ホストOSとゲストOSでクリップボードが共有されていません。

どういうことかというと、例えばホストOSでコピーをしてゲストOSへ貼り付けようとしても、クリップボードが共有されていないので、貼り付けできません。

ゲストOSからホストOSへのコピペもしかり。

以上のことに対処するため設定していきます。

環境

  • MacOS 10.15.3 catalina
  • VirtualBox 6.0.18
  • CentOS8

VBoxGuestAdditionsのダウンロード

まず始めに、ここへアクセスしVBoxGuestAdditions をダウンロードします。


VBoxGuestAdditionsのインストール

続いて、該当の仮想マシンを起動し、「端末」を起動します。 

そして以下のコマンドを順次実行します。
$sudo yum update

パスワードを求められるので、入力します。(表示はされませんが入力はされています) 

場合にもよると思いますが、結構数が多いのでそれなりに時間がかかると思われます。

また、しばらくすると確認を求められるのでyを押します。

同様に、次のコマンドを実行します。

$sudo yum groupinstall "Development Tools”

これも、パスワードを入力し、確認が求められたらyを押します。 最後に次のコマンドを実行します。

$sudo yum install kernel-devel elfutils-libelf-devel

ここは確認しか求められないのでyを押します。

 続いて、先ほどダウンロードしたVBoxGuestAdditionsをインストールします。

 「Insert GuestAdditions CD images...」を選択します。



そうすると、仮想マシン上に次のような画面が表示されます。これは「実行」を選択します。





 ログインしているユーザーのパスワードを入力します。 




 そうすると、自動で処理が始まり、最終的には以下のような画面になります。



 Returnを押します。

 画面を最大化するだけであればこれで完了ですが、クリップボードの共有にはもう少し作業をします。

 一旦仮想マシンを終了します。

クリップボードの共有の設定

VirtualBoxの起動画面で、「設定」をクリックします。



 「一般」→「高度」と表示し、「クリップボードの共有」と「ドラッグ&ドロップ」を「双方向」にしておきます。

 設定したら「OK」を押して画面を閉じます。



これで設定は以上になるので、あとは起動して実際に確認すればできるようになっているはずです。

2020年1月31日金曜日

視覚からの情報量

現在の職業はエンジニアなので、仕事上体を酷使することはそれほどないはずなのだが、一日が終わると、なぜかどっと疲れていた。


勉強など、やらなければならないことはたくさんあるはずなのに、そこまでやる気力が起きない。


「気合が足りない」という意見もあるだろうが、基本的に精神論はあまり好きではない。


「気合」や「根性」というのは、最後の最後の最後で使う分にはいいと思うが、それまでにまだやるべき合理的な対処があるはずだ。




さて、なぜこんなにも疲れているのだろうか考えてみた。



一つは、姿勢がよくないと思った。


つい先日も姿勢が悪いと指摘をうけ、姿勢が悪いから自信がなさそうに見えると言われた。


よくよく自分の動きを見直してみると、その姿勢が悪い状態で仕事をし、一日の大半を過ごしているので、変なところに力が入り、肩も凝っていたような気がする。



さらに、楽器を弾いているときは姿勢がよいことに気づいた。



「姿勢がよい」という状態がいまいちイメージができていなかったが、「楽器を弾いているときの姿勢」で普段の仕事をしてみると、幾分かマシになった気がする。





もう一つある。満員電車だ。


「満員電車」という単語を聞いただけで、もう疲れそうだがそこをもう少し掘り下げてみた。


ただ電車に乗っているだけだが、実はその間にかなりの刺激を受け取っているように感じた。


目の前に広がる大量の人の姿、駅に到着するたびにある人の流れ、(場合によっては)至近距離にいる人の臭い、広告、窓の外を流れる景色、電車の音、そして電車の中では半ば習慣的にスマートフォンをみているのでスマートフォンからの情報。


さらに自分のコンフォートゾーンまで人が密着していることそれ自体もストレスだ。


そして職場では、ずっとパソコンをみている。


刺激が多いと自然と雑念を誘発するもので、電車の中などではいろいろなところに注意が跳び、とりとめのない考えがずっと頭の中を駆け巡っているようだった。


あまりにも情報が多すぎると思い、試しに時間さえあれば目を閉じてみることにした。


「きちんと睡眠を取らないと目だけ閉じたって意味ないじゃないか」と思っていたが、個人的には意外と効果がある気がした。


目を閉じて外界からの刺激を制限すれば、頭がニュートラルな状態になり、うまくすれば自分の内面にも気が届く。


刺激に(無意識的に意識的に問わず)いちいち反応して、あれもやらなきゃこれもやらなきゃと追い立てられていた感じが少し落ち着いたような気がした。





今まで、体力をつけようといろいろ試してみたこともあった。


そのときは、文字通り「基礎体力をあげる」ことだけに目がいってしまっていたが、「体力の消費を抑える」ことも重要だなと感じた、ここ最近であった。


2020年1月13日月曜日

まさかの祝日

日曜日の昼ごろまで、月曜日は普通に出勤する気でいたが、月曜日は祝日ということに気づく。


棚からぼた餅。



なんだかんだ起きたのはお昼ごろ。早起きする決意はどこへいった。


でも、単語集と口語集の日課はこなす。



それから外出。



先日ライトニングイヤホンを購入したので、駅までの移動時間もリスニングの復習。



隙間時間でもできることを探していくと、意外とあるもんだということを再発見。



効率よく時間を使っている気がして、最低限やらなければいけないタスクも片付いて、前進している気がして心地いいい。



あとは生活のリズムなどを直したい。。。

2020年1月11日土曜日

大戸屋でご飯

なかなか続かない。。。


新年、仕事が始まって最初の一週間が終わった。


休み中に、ペースを立て直そう。


今日のチャレンジ。


仕事中には、自分のタスクに少し余裕ができたので、gitのブランチ関連について調べた。


それでも正直まだよくわかってはないが、実務で使ってから改めていろいろ調べてみると、少しイメージが湧いてきた。



帰り道に電気量販店へよってイヤホンを購入。


自分の日常を改めて、改めて思い返してみると、Door-to-Doorで往復3時間は移動時間を無駄にしていることを発見。


この時間をなんとか勉強にあてられないか。


もう少し細かく分析すると、徒歩の移動中は本や紙は読めないし(人が多いし、階段などもたくさんあるので危ない)、電車の中も余程変な時間に乗らないと大体は満員電車。


それでもなにかできることはないかなーと考えたらリスニングやシャドーイングであればできそうだと思った。


携帯電話はポケットに入れておくだけでいいし。


でも、iphone用のLightning イヤホンを持っていなかったので、それを購入しにいく。


思ったよりポイントが貯まっていたので、現金は一銭も払わずに購入できた!やった!棚ぼた!


で夜は帰り道の途中にあった大戸屋でご飯。

定食屋へ入ると、だいたいヒレカツ定食やとんかつ定食を頼むことが多いけど、唐揚げ定食を注文してみた。

おいしい!



大戸屋で唐揚げを注文したことが、今日のチャレンジ!

2020年1月9日木曜日

あきらめない!

「毎日更新する」とか言ったそばから、早々に途切れてしまう。


でも、挫けずにまた更新する。


今日は少しチャレンジをした。


自分が抱えている業務タスクが少し余裕がでたので、より効率的にタスクを消化するために少し冒険をしてみたりもした。


STSで検索をかける際に、「ファイル検索」とか、「Java検索」とか検索のオプションがいろいろあるけれど、どう違うのかがいまいちわかってなかったので、丁寧に調べてみた。


なんとなくはわかったけど、検索をうまく使いこなせているとは言えない気がするので、どんどん使ってうまい使い方を見つけていこうと思う。



それと帰り道(定期券内の)普段は降りない駅で下車し、夕飯を食べた。


英語についても、電車の中など隙間時間を見つけて勉強。


口語集も、フレーズによっては20周目ぐらいになってきたので、サクサク口からついて出てくる。


パッとでてこないのも、数えるほどになってきたので、もう少ししたらもう一つ上のレベルに取り組もう。



2020年1月5日日曜日

2020年5日目

今日は大幅に寝坊。


元旦の「今年は早起きするぞ」という決意はどこへいったのか。。。


起きたあとは、いつものルーチン。口語集と単語集。


これも概ねサクサク終わる。





そのあと外出。


今日は新宿西口のthe 3rdBurgerへ行ってみる。


このお店自体は以前から何度も行ったことがあるのだけど、今日はいつもと違うメニューを注文してみた。


今日は、期間限定のモッツアレラチキンバーガーを注文してみた。(写真はないけど。。。)


美味しい!


これが今日のチャレンジ。

2020年1月4日土曜日

2020年4日目

今日も寝過ごしてしまった。。。


起きた後は、シャワー浴びて目を覚まし、ルーチン化させている英語の勉強はサクサクと勧められたと思う。


口語集(以前一回覚えてたことがある)と単語集(これも以前やったことがある)を再度回してるわけだが、復習作業もいい加減全部のフレーズ・単語(口語は300ちょっと、単語は700個くらい?)を10周目ぐらいになっているので、割とサクサク終わる。


他にもやることは山積みなので、欲張らずにルーチンが終わったらさっさと次の勉強へ。


毎日続けることが大事。




午後は少し外出。


今日のチャレンジは、また歩いたことのない道を歩いてみた。


別件の用事の兼ね合いもあり、中央線沿線、特に西荻窪から吉祥寺へ向けてあるく。


意外に距離があった。


吉祥寺って駅前は栄えて賑やかだけど、一歩住宅街へ入ると閑静な住宅街なので。


住みたい町の人気ランキング上位に入ってくるのもわかる気がした。

2020年1月3日金曜日

2020年3日目

5時に起きるとか決意しつつ今日も起きたのは6時半。


しかし、起きたあとはなんとなくダラダラ時間を過ごすのではなく、シャワーを浴びて、午前中のうちに、粗方の勉強のノルマを消化できた。


その後少しお出かけ。


今日のチャレンジとしては、荻窪駅近辺の行ったことがないエリアを散策してみた。


散策してみたはいいものそれほど面白いものは見つけられなかった。

2020年1月2日木曜日

2020年2日目

さて、新年二日目の記事を書こうと思う。


前回の記事で、「失敗を楽しむ」ことと「どんなに小さくてもいいから小さなチャレンジをする」ということを目標に掲げた。


で、そのチャレンジの一つ目が「朝型生活になること」にしてみた。


仕事が始まってしまうと、お昼寝とかは必ずしもできないが、休みのときであればできるので、日中眠くなったら昼寝をすることはOKにした。


まず、朝起きることを最優先。


とはいいつつ、起きたのは6時半。最初からつまづいてしまう。


めげずに頑張る。





そして、なんだかんだ夕方頃から外出。


カフェで、普段はほとんど注文することがない「宇治抹茶ラテ」を注文してみた。


本当、これだけだけと、これでもチャレンジにカウントしていいことにする。




英語の勉強。


昨年暮れから、NCCに通っていたときの課題の復習を始めた。


で、口語表現集と単語集があるのだけど、それもいい感じに毎日続いている。


いい加減10回ぐらい回しているので、かなり早いペースで全体を一周できるようになってきている。


一方で10回ぐらいやっても、まだ曖昧になるとこともある。


でも、続ければできるようになる、という実感はあるので、これは引き続き継続する。









今日はそんなところ。











2020年1月1日水曜日

2020年へ向けて

あけましておめでとうございます。

忙しかったりなんだりで、更新が止まっていた。

毎年毎年宣言している気もするが、年が変わったのを気に、また再開しようと思う。



2019年の振り返り

2019年についても簡単に振り返っておく。

2019年は、ここ数年で一番激動だった。

本当に1年間で起こったことなのか信じられないくらいの激動。

一番大きいのは、転職をしたことだ。
(詳しくは、未経験からエンジニアに転職するまで を参照)

転職が成功し、研修2ヶ月ほどを終えて、現場に着任。

現場着任し1ヶ月ほどしてから、開発のフェーズが繁忙なモードに入り、そのあたりから、ブログや英語の学習が停滞してしまって、なかなか復帰するのが難しくなってしまった。






2020年の抱負

  1. 失敗を楽しめ

  2. 去年、転職をする前、前の職場にいるときに、できた自分のモットーである。
    これは引き続き2020年もこれを心にもっていきたい。

    で、これに関連して、毎日どんな小さなことでもいいから、挑戦をして積極的に失敗をしに行きたいとおもう。

    失敗をすることが楽しみとなり、積極的に失敗を求めるようになってから、自分の性格や行動が全体的に変わった気がする。

  3. 完璧に固執しない

  4. これは昨年から引き続き。

    いろいろな事情で完璧にできなかったとしても、それで挫けない。



その他具体的目標としては、たくさんあるけども、英検準1級や1級、TOEICハイスコアなども目指して行きたい。