caerulaのあたま

日々学んだことの忘備録と雑記

「傷口から人生。」やっぱり飲み会が嫌いだ

飲み会に参加すると、その場は楽しいのだが、その後、ひどく落ち込むのだ。 多くの人と話したあとの、あの落ち込み。

この感覚は私も良く経験する。ただし、これは、飲み会が楽しめたときに限る。

楽しい飲み会とそうではない飲み会は、5:5くらい。楽しめた飲み会の後は、脳内反省会が開催され、

約半日ほど、落ち込んでいる。

残りの半分は、やっぱり楽しくなかったと、未来を予知した気分になり落ち込む。

私にとって、飲み会なんて百害あって一利なしなのだ。

楽しめても楽しめなくても落ち込むのだから。

12月。飲み会ラッシュがやってくる。

飲み会に飲み会を重ねて、脳が麻痺して、何も感じなくなれば良いのに。

とも、思ってしまう。

「コンピュータはなぜ動くのか」その1

4月からSEとして働き始めました。

プログラミング経験はあったのですが、情報系出身ではないので知識は積極的にインプットしたいと思っています。

そこで、様々な方がおすすめされている「コンピュータはなぜ動くのか~知っておきたいハードウエア&ソフトウエアの基礎知識~」を、GW中に読んでいました。

コンピュータの三大原則

コンピュータ業界は日進月歩で進歩していますが、以下の3つの基礎は不変です。この3つの基礎と照らし合わせることにより、新たな技術の理解が深まります。

  1. コンピュータは、入力、演算、出力を行う装置である
  2. プログラムは、命令とデータの集合体である
  3. コンピュータの都合は、人間の感覚と異なる場合がある

コンピュータはなぜ動くのか~知っておきたいハードウエア&ソフトウエアの基礎知識~より引用

3の例として、コンピュータが理解できるのは0と1の数値だけです。そのため、プログラムを実行するためにはコンパイルが必要です。

紙上マイコン作成体験

コンピュータの根本的な動作原理を理解するためには、実際にマイコンを作ってみるのが良いそうです。とはいえ、材料を集めるのも一苦労・・・

本書の第二章では、コンピュータを作ってみようと題し、解説に従ってマイコンの回路図の配線を行います(線をなぞる)。回路図上には、CPU、メモリ、I/O、その他ICが配置されています。それらのピンを繋ぎ合せることで、擬似的に配線を体験しました。

作ってみてわかったこと理解したこと2つ

-コンピュータはバイナリしか理解しない

コンピュータが0と1の世界だということをやっと実感しました。クロック信号の電圧の低い高いが、0と1に対応しているのですね。

-論理演算の重要性

また、CPUからデータを送る際、メモリとI/Oの区別も01で表現できるとわかり、論理演算の重要性も理解しました。

以上が第二章までの内容のまとめです。

Tomcat メモ

サーバーの老朽化に伴うgitbucketの移行作業で、先輩が作ったシステムを触る機会がありました。 自分の知らないソフトウェアがいくつか使われていたので、メモ。

Tomcatとは?

The Apache Tomcat® software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies.

引用 http://tomcat.apache.org/

ん?

Java Servlet とは、Webサーバ上で動くJavaプラグラムのこと。

Java Servletは単独では、動作できずサーブレットコンテナというソフトウェアが必要。

Tomcatサーブレットコンテナの一つ。

参考 http://wa3.i-3-i.info/word12843.html

つまり、TomcatJavaプラグラムをWebサーバで動かすソフトウェアのこと。

「老人の取扱説明書」感想

帰省をして、祖母とのコミュニケーションが年々難しくなるなと感じていたら、ちょうど良い本に出会いました。

90歳間近の祖母は、同じ話をさも初めてのように繰り返します。今回の帰省でも、私の小学生の頃の話を5回ほど聞きました。

まあ、この話は通算したら100回以上は聞いてんじゃないかな。もう覚えてしまったので、真面目に聞くのも嫌になっちゃうんですよね。

一人暮らしを初めて、祖母と会うのも年に数回になりました。

同じ家に住んでいると、どうしても不可解な行動や言動に困惑したり、イライラしたりしていました。

やはり毎日一緒に過ごす私の母や父は、どうしてもきつくあたってしまうようです。

久しぶりに会えば思いやりを接することができるんですが・・・

「老人の取扱説明書」では、老人と接する機会が多い眼科医である著者が、老化による体の変化をわかりやすく解説し、対処法や予防法を提案しています。

老人と関わる機会の多い方には、一読の価値があると思います。もっと早く出会えればよかった。相手の状況を想像できるかできないかは大きいので。

たとえば、私も悩んでした「同じ話をなんども繰り返す」のは、昔の記憶が残りやすく、最近の記憶が失われやすいからだといいます。

さらに、直近の記憶は残りやすいので、1日のうちに同じ話を繰り返すことはそうありませんが、次の日になると話したことを忘れて、

また同じ話を繰り返してしまうそうです。

この状況を解決するためには、1日のうちになんども同じ話しをしてもらって、話したことを覚えていてもらうのが有効だとか・・・

正直、何十回も聞いた話を自分から持ち出すなんて気が進みませんが、試してみても良いかもしれないですね。

故障!?Windows10 Error code 0xc000014c

木造アパートで、朝の4時にトイレに行くのが気まずい。

経緯

週末、マシンの電源を切らずに帰宅し、月曜の朝モニターの電源を付けると、画面が真っ黒でマシンからのシグナルが来ていないようでした。 仕方がないので、電源長押しでマシンを落とし、再び電源を付けるとなんとブルー画面が。

データのバックアップはとってあり、最悪マシンが壊れても問題がなかったため、自力でリカバリを試みました。私の場合は、電源を正常に(強制終了ではなく)落とすことで、ドライブが修復されました。

OS: Windows 10 (8からアップデート)

実施したこと

1.ブルー画面でEsc

2.システムリカバリ(うろ覚え)

3.PCの電源を切る

4.起動

5.【ドライブのスキャンおよび修復】が始まる

6.ログイン画面!

教訓

今回は、電源を正常に落とすことで、PCを起動させることができました。 以下のページでは、データ救出をしたいなら、色々な作業はしないようにとのこと。 https://pasokon360.com/error-code-0xc000014c.html PCの電源を落とすことが色々な作業に該当するかは、わかりませんが、意外と簡単に復旧して良かった。 今度からは、しっかり電源落としてから週末を迎えたいと思います。

Mysqlでリモートからアクセスしようとしたときのエラー

自動販売機で暖かい水が売っていたら良いのに、と思う今日この頃。
あ、お湯か。白湯か。
 
Mysqlでリモートからアクセスしようとしたときのエラー対処ログです。
 

環境

CentOS 6、Mysql 5.6
 

エラー内容

遭遇したエラーは以下
ERROR 2003 (HY000): Can't connect to MySQL server on 'IPアドレス' のエラー
 

原因

Firewallの設定を弄らないといけないみたい
 

問題の切り分け

いったんFirewallをOFFにして
    # service iptables stop
 
リモートからアクセスすると
成功!
 
FirewallをONする
 
    # service iptables start
 

対処 

原因がわかったので、iptablesの設定方法を検索
以下のサイトを参考に設定
 
外部からのアクセスができることを確認

MySQLデータのサーバー移行作業中遭遇したエラー

冷凍のブロッコリーって足の上に落とすと結構痛いんです。

環境

MySQL 5.6

エラー

データディレクトリ以下をそのままコピーしたところ、以下のように怒られました。

mysql> SELECT * FROM test1;
ERROR 1146 (42S02): Table 'test1' doesn't exist

testテーブルがないとのこと。show tables;で確認

mysql> show tables;
+---------------------------+
| Tables_in_test |
+---------------------------+
| test1 |
| test2 |

あります。

他のテーブルもデータを参照できないか、確認したところ、 データを見られるテーブルとみられないテーブルがありました。

ログ確認

$ tailf -n 1 mysqld.log
 [Warning] InnoDB: Cannot open table test/test1 from the internal data dictionary of InnoDB though the .frm file for the table exists. 
See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.

どうやら、データディレクトリを単純にコピーはできないようです。

参考)https://dev.mysql.com/doc/refman/5.6/ja/innodb-troubleshooting-datadict.html

この時点で、データを参照できないテーブルが最近(1年以内?)作られたものだと気が付きました。

検索エンジンの確認

mysql> SHOW TABLE STATUS;にてテーブルのエンジンを確認すると、

データが参照できないテーブルはステータスが表示されませんでした。

移行元のステータスを確認すると、データが参照できないテーブルは、検索エンジンInnoDBでした。

MySQL 5.5 からデフォルトのエンジンがInnoDBに変わって、データベース内にMyISAMInnoDBが混在していたようです。

普段はmysqldumpでデータの移行をしてたので、今回のようにデータディレクトリをまるっと移動することはほぼありません。しかし、今回はデータ量が多いからか、dumpはできても、インポートの途中でSleep状態になってしまいました。

今回の対応

今回はどうしてもデータディレクトリごと移動させたいので、InnoDBMyISAMに変えました。

移行元にて

mysql> ALTER TABLE test1 ENGINE='MyISAM';

移行先にて

# chmod 660 test1.*
# chown mysql:mysql test1*
# service mysqld restart

データベース名変更

ついでに名前も変えたかったので、

# mv test1 test
# service mysqld restart

無事移行出来て良かったです。