masatoの日記

やっていきます

ぼっちが自己表現についておもうこと

自分を人に向かって表現することは、人との関係をもつために必要なことですね。だがしかし、自分には自己を表現すると言うことに苦手意識がある。そんな私はとっくに30歳を越え、まもなく32になろうとしている。

ここでは、自己表現といっても幅広すぎるので、ざっくりと、自己表現=「自分という人間を他人に伝えること」程度の意味として、これについて考えてみたい。ちなみに、何が何でも表現すればよいとは思っているわけではない。普段表現することに苦手意識があって、もうちょっとくらい出した方がいいんじゃないか、と思われる人物がどうやって自己を表現できるようになるか、について興味がある。そもそも、なぜ自己表現がたいせつかとひと言でいえば、それによって他人との関係性が決まるからだ。で、自分をよく表現できれば、自分に合った関係性を他人と持つことができるという感覚を私はもっている。この前提のうえで、それについて考えたことをとりとめもなく書いてみる。

さて、自分が何者であるかということを伝えるには、たとえば、自分が大切にしていることとか、価値観とか、やりたいこととか、を言うという方法がある。これを本心から言えることが大切だとおもうんだけど、全然言えてない気がする。でも、自分にだって一応大切にしている価値観とか伝えられる何かを持ってるはず(相手にとって価値があるかはまったく別だけど)。まあ、そういうことにしておいて、それで、持ってるのに言えないのはなぜかっていうと、きっと、話は単純だ。それは、普段から言い慣れていないからだ。普段やってないことはいきなりやろうとしてもできないのだ。単純だけど、こう考えると表現できるようになるためには、普段からそれをどんどんやっていくことが大切ということになる。ひとつの方針としてこれはアリという気がする。

表現には様々な方法があって、自分の価値観を出すということは、必ずしも口に出して「私はこれを大切にしている」などと言うことではない。自分の感情やエネルギーをに外部に出すことはひろく表現とみなせるとおもう。この意味で、表現をしないというのは、表現するものを持たないというより、むしろ出てこようとするものを押さえ込んでいるということなのではないか。押さえ込んでしまう理由は人によっていろいろあるんだけど、でも、そこは沼なので深入りはやめておこう。(「原因」を分析することが行動につながる場合もあるかもしれないから否定できないけど、あくまでも個人的な感覚でいえば分析的思考から何かよいものが生まれてきたということはなかったので。)

では、抑圧するから表現できないのだとしたら、どうしたらいいのか? これは、とにかく、表現してしまえばいいのじゃないか?とおもう。好むと好まざるかとにかかわらず、いまの自分ができるところからはじめるしかないのだから。そう、まずは実行することが大切だとおもう。実行をつうじて表現していくということ。だれか有名な人も、世界が変わるのは、思考によってではなく、行動によってである、と言っていたよね。

行動ってなにかといえば、思ってることを文章を書くことでも、人に話すことでも、写真を撮ってSNSに投稿することだって、何だって自己表現になる。しかし実際問題として、何かを作ってみると、やっぱり最初は全然できない。で、その出来映えにがっかりすることが多い。世の中には同じ事をやるにしても、ずーっとずーっと上手な人がたくさんいるわけで、そういう人達と自分とをどうしても比べてしまうものだ。それで気落ちして、結局自分の表現を引っ込めてしまいがちなんだけど、でも、そもそもすぐれた表現者になることがはじめの目的ではなかったはずだ。そうではなく、いま自分を表現することに慣れていない人がまずやるのは、たとえ下手くそでみじめであってもその表現を外に出すことだ。それが文章であってもスピーチであってもダンスであっても。それが自分なわけで、逃げることはできない。みじめであっても、そんな自分と折り合いを付けてなんとかやっていくしかないし、今の限界のなかで自分に可能なことを提案するということやっていくことで、その先の自分の人生が生きやすくなっていくという希望がもてる。

会社の人が近く退職することになった。その人との間柄は、2年くらい入社が先の私が、一応先輩。職種が違うので一緒に仕事することはなかった。とはいえ、事務所は一緒だから互いが事務所に出勤しているときは顔を合わせていた。2歳年上で子供が一人いる家庭持ちの彼と独身の私。退職がきまったいま、もはや会社の人にさほど気を遣う必要もその義務もなく、彼と私の力関係が逆転しはじめた。なにが起こったかとかいうわけではない。それは、まもなく退職するということで、半分会社の人、半分ただの人間となった彼が、私と素で一対一になっているからだ。関係性が変わってきている。そういう状況にあっては、地の人間力がものを言うのだ。妻子持ちだし、年上だし、好青年な彼は、やはり人の器というようなもので私よりも上なのではないかと前から気づいていた。それでも、これまで私がきままに振る舞うのを許してくれていたのは、自分が単に(一応)先輩だったからかなとおもう。きっと先輩風をふかせてしまっていたのだろうなー。これから気をつけよう。これと似た機会はそんなにたくさんないかもしれんけど。

インタビューゲーム会にいってきた

今回は相手の話をちゃんと聴けたような気がした。

どうしてだろう。

振り返ってみると、相手が話しているあいだ、なるべくそのまま聞いていた気がする。短く質問して、それにまた答えてもらう、ということを繰り返した。 でも正直にいうと、途中で口を挟みたくなった場面は何度かあった。結局、そうしなかったのは、Oさんの情熱的な語りに口を挟む隙間がみつからなかったからだ。 でもそれがよかった。たくさん話せてもらえた気がする。

質問をするときはついつい相手を自分側に引き寄せようとしてしまいがちだ。でもそれだと誘導尋問みたいになる。これではインタビューされる側は話しにくくなるだろう。コントロールしようとしていることは、確実に伝わるし、それでいい気持ちはしないはずだ。

コントロールしようとしてしまうのは、自分が主役になりたいという気持ちのせいではないか。今回はそういう気持ちがうすかった。なにより、おだやかな気持ちで聞けたのが自分としてはよかった。今までは「相手の隠れた面を引き出してやろう」と頑張っていたので、焦っていた。頑張らないほうがいいことは確かにある。

相手が自主的に話してくれると、想定外のことを聞けるということにも気づいた。これが、特定の答えを期待して質問ばかりしていると話がふくらみにくい。相手が話したそうなことを想像してみたつもりでも、これまでの経験上、ほとんど当たったことはなかった。思考の中の相手ばかりを考えて、実体を見落としている感がある。そうではなく、本当の相手が何を話したいのかを知るには、まず考えるのをやめて、かわりに相手に注意をを向け、よく話を聞く。そうして相手の新しい面がみえたときは、自分の固定観念から自由になっているんじゃないか。人と話していて親しみを覚えるのも、そんな状態のときなのかもしれないとおもいました。

Perl入学式大阪 第2回に行ってきた

7月22日(土)、Perl入学式大阪にサポーターとして参加してきました。 ことのいきさつは、YAPC福岡で@xtetsujiさんとid:tomchaさんとお話したときに誘っていただいたことがきっかけでした。(ありがとうございます!)

勉強会にサポーターとして参加させてもらうのは、これが2回目。1回目はPerl東海という名古屋開催の同じくPerl系勉強会でした。 勉強会に参加される方は、年上の人から年下の人まで、経歴も様々です。そういった方と接することができるのはなかなかないですし、本職のプログラマーではない私にとって、勉強会はプロのプログラマーの方々と知り合えるまたとない機会です。

さて、今回はPerl入学式によるテキストの第2回構文編の回でした。内容は変数の説明、その使い方、標準入力、制御構文(if, while)、比較演算子など。サポーターとしての参加させてもらうので、ちゃんと理解しておかねば、ということで予習しました。内容はきっちりとした印象で、それなりに量もあります。これを午後まるまる使ってやってきました。

実は、私は普段人にものを教える機会はそれほどなく、あったとしても会社で同僚に何か教える程度のものです。それだって、聞かれたらの話でそんなに頻繁じゃない程度で。そういう自分が「教える立場」に回るということで、けっこう緊張しました。

独力でできる方に介入するのは単なるジャマ者だろうということで、困ってそうな人を探して、エディタを見て、みてほんとに詰まってたら様子を聞いてみる、という感じでやっておりました。しかし、PCに向かっている様子を見ただけでは、困っている加減が全然わからないということを発見。うろちょろしすぎて回りの方々の気を散らさない程度に、見て回ってみたりしてました。

そんなこんなで勉強が終わり、懇親会に突入。今回はサポーターオンリー。 まったくの新参者の私でしたが、分け隔てなく迎えいれてくださったサポーターの方々のおかげで楽しい時間を過ごさせてもらえました。 @nqounetさん、id:tomchaさんをはじめPerl大阪サポーターの皆さま、そしてサポーターとして参加できる機会をくださった方々に感謝です。 また機会があれば参加したくなるようなPerl入学式 大阪でした。

コーヒーを飲むと仕事に身が入る気がする。じゃあたくさん飲んでも大丈夫か。

おとつい、1日コーヒーをはじめとしたカフェイン飲料の一切を断ってみた。ひと言でいうと、カフェインをとらないと、機敏さは失われるが、代わりに落ち着き度合いが増すという印象だった。 きのうはコーヒーは引き続き飲まなかったが、緑茶は飲んだ。緑茶にもたっぷりカフェインが入っているので、覚醒効果を実感した。常にオンになっているとそれがある自体を感じられないが、オフにしてからオンしてみると存在に気づけるというヤツだった。 そして、今日。久々に、といっても2日ぶりだけど、コーヒーが飲みたかったので、2杯だけ飲んだ。1杯目は午前9時ころ。会社の始業すぐだ。飲むと直ぐにコーヒー的な充足感が得られた。ふにゃふにゃしていたが、ずいぶんてきぱきになった。2杯目は午後1時、昼食がおわって午後の仕事始めの頃。食後のコーヒーの効果なのだろうか、おとつい昨日と猛烈に眠かったお昼の時間でも一切眠くなることなく活動できた。以上が今日の2杯だった。

コーヒー1杯の効果は割と長いと感じる。3時間以上はあるだろう。午前10時くらいにちょっと疲れたのでおかわりコーヒーをしようと思ったが、やめた。コーヒーを投入すれば元気が回復するというわけではないのだ。むしろ、神経が過剰に興奮して逆効果だろう。何かの不足を補うために別のものをどんどん投入するというのは、食べ物とか飲み物とか薬とかではうまくいかないようだ。そういう場合、減らした方が調子がよいことが多い。不足に陥るととにかく増やすことで挽回しようとする傾向はかなり強くあるなあというのが自覚できたので、まあよかった。

毎日飲んでるコーヒーを止めたらどうなるか、コーヒー断ちをやってみた。

いつからだったかはっきり思い出せないが、毎日3,4杯のコーヒーを飲んでいる。ml換算にすれば、1000mlは行かなくても500mlはいっていただろう。 最近発表された研究結果によると、コーヒーは健康に様々な好影響をおよぼすとのことであった。コーヒー本もたくさん出版されていた。私の場合は、「シリコンバレー式 自分を変える最強の食事」でプレミアムコーヒーが絶賛されていたので、なるべく質の良さそうなコーヒーを探し求めて飲むようになった(それなりに高い)。コーヒーはがんがん飲むべきものだと認識し、毎日欠かさずに飲んでいた。おとつい、ストックのコーヒー豆が切れた(豆を買って挽いて淹れている)。そのとき、買いに行くのがめんどうだったので、ふと「今日はコーヒーをなしにしてみよう」と思い立ち、自宅でも会社でもコーヒーは一切摂らないようにしてみた。といっても、1日のみだけど。。
その時の感覚を書いておきたい。

ちょっとした禁断症状

おそらく1年以上はほぼ毎日コーヒーを飲む生活だったので、突然なくなると落ち着かない。あるべきものが、ない、というようなかんじでほんのり不安。ということで、コーヒー飲みたい欲求を抑える努力がすこし必要だった。

リラックス度が高まった

コーヒーをのまないと、心拍数とか呼吸数とかがゆっくりに感じた。 コーヒーにはカフェインが含まれており、興奮作用がある。この作用を期待して、眠いときに目覚ましとしてコーヒーを飲むことはよく知られている。このように場合によっては緩んだ神経を適度に緊張させることが効能として役に立つということはある。だが、緊張しているときに飲んだら、その緊張をさらに張り詰めさせることにもなりかねないのではないか。私はけっこう緊張するタイプで、平均緊張レベルが高い気がする。こういう人間は節度を持ってカフェインを利用することが必要だとおもわれる。あと、カフェインの感受性も関係するはずだ。カフェインを摂取するとどういう風になるか他人にほとんど聞いたことがない。どうなんだろう。

ねむくなる

昼食後、めっちゃ眠い。大きな声では言えないが、机にすわって20分くらい半分寝ていた。それだけ寝るとすっきりして起き上がれた。試しに同じくカフェインを含む緑茶をちょっとだけ飲んでみたら眠気が飛んだので、やっぱりカフェインは眠気に効く!という感じ。たまたまそういうことになっただけかもしれないが。プレシボ効果とかで。

以上が1日のコーヒー断ちをして得た気づきだった。いいこともあったわけだが、コーヒーはおいしいし、たまに飲みたくなるので、これからは節度をもって飲んでいきたいと思う。

WEBアプリにはデータベースが必要だ。MySQLに入門する。

データベース使えるとできることの幅が広がりますよね、っていうか使えないと致命的ですよね。 ということで、MySQLを手を動かして覚えていきたいです!

テーブルをつくる

早速、テーブルをつくってみよう!
ということで「はじめてのSQL」にあるスキーマを打ち込みます。

CREATE TABLE person (person_id SMALLINT UNSIGNED,
fname VARCHAR(20),
lname VARCHAR(20),
gender ENUM ('M', 'F'),
birth_date DATE,
address VARCHAR(20),
city VARCHAR(20),
state VARCHAR(20),
coutry VARCHAR(20),
postal_code VARCHAR(20),
CONSTRAINT pk_person PRIMARY KEY (person_id)
);

ターンッ(Enterキー)

ERROR 1046 (3D000): No database selected

データベースをまず選択しないといけないんですね・・・はじめてのSQLには書いてませんでした。 さっそく、「MySQL データベース 選択」でググります。

MySQL公式サイトの解説にヒット!

MySQL :: MySQL 5.6 リファレンスマニュアル :: 3.3.1 データベースの作成と選択

データベースを作成するには、次のコマンドを使います。

CREATE DATABASE <データベース名>;

データベース名では大文字小文字が区別されるそうなので、すべて小文字でつくってみます。

mysql> CREATE DATABASE learning_mysql;
Query OK, 1 row affected (0.01 sec)

OKです!

次にデータベースを選択します。作っただけでは選択されないとありました。明示的に選択してやる必要があります。

mysql> USE learning_mysql;
Database changed

選択できました!

ではいよいよ、さきほどのスキーマにしたがってテーブルを作ってみます。
personテーブルです。

(ところで、別の本でテーブル名には名詞の複数形を使う、とよみました。この本に出てくるテーブルには単数形が使われてます。そういうケースもあるのだろうか。)

mysql> CREATE TABLE person (person_id SMALLINT UNSIGNED,
    -> fname VARCHAR(20),
    -> lname VARCHAR(20),
    -> gender ENUM ('M', 'F'),
    -> birth_date DATE,
    -> address VARCHAR(20),
    -> city VARCHAR(20),
    -> state VARCHAR(20),
    -> coutry VARCHAR(20),
    -> postal_code VARCHAR(20),
    -> CONSTRAINT pk_person PRIMARY KEY (person_id)
    -> );
Query OK, 0 rows affected (0.08 sec)

いいですね!

テーブルのスキーマをかくにんしてみる

さきほどめでたくテーブル作成に成功したわけですが、列名、データ型などを確認したいときがあるとおもいます。
そんなときは次のコマンドを打ちましょう。

DESC person;

DESCはDescribeだそうです。Descending(降順)とは関係ありません。

mysql> DESC person;
+-------------+----------------------+------+-----+---------+-------+
| Field       | Type                 | Null | Key | Default | Extra |
+-------------+----------------------+------+-----+---------+-------+
| person_id   | smallint(5) unsigned | NO   | PRI | NULL    |       |
| fname       | varchar(20)          | YES  |     | NULL    |       |
| lname       | varchar(20)          | YES  |     | NULL    |       |
| gender      | enum('M','F')        | YES  |     | NULL    |       |
| birth_date  | date                 | YES  |     | NULL    |       |
| address     | varchar(20)          | YES  |     | NULL    |       |
| city        | varchar(20)          | YES  |     | NULL    |       |
| state       | varchar(20)          | YES  |     | NULL    |       |
| coutry      | varchar(20)          | YES  |     | NULL    |       |
| postal_code | varchar(20)          | YES  |     | NULL    |       |
+-------------+----------------------+------+-----+---------+-------+
10 rows in set (0.04 sec)

10行あると言われてます。つまり、このテーブルは10列あるわけです。 コマンドラインの表って案外見やすいですね。

テーブルのスキーマを変更する

上記のスキーマをみると、person_idの型がsmallint(5) unsignedとなっています。 これだと、データを挿入する度に手動でIDを入力する必要があります。 それはしたくないので、DBで自動で入力してくれるようにしましょう。 MySQLではAUTO_INCREMENTと指定します。person_id列にAUTO_INCREMENTを付けるにはALTER文を使います。

ALTER TABLE person MODIFY person_id SMALLINT UNSIGNED AUTO_INCREMENT;

要素を分解してみると次のようになっているらしいことがわかります。

  • ALTER TABLE <テーブル名> MODIFY <属性を変更する列名> <変更後の属性>

では、実行してみましょう。

mysql> ALTER TABLE person MODIFY person_id SMALLINT UNSIGNED AUTO_INCREMENT;
Query OK, 0 rows affected (0.12 sec)
Records: 0  Duplicates: 0  Warnings: 0

成功したもようです。

データを挿入する

さて、これでテーブルが作成できました。列とデータ型がスキーマの通りになっていることも確認できました。
しかし、テーブルはまだからっぽです。 なにか入力してみたい、入力してみよう。

テーブルにデータを挿入するにはINSERT文を使います。
INSERT文には次の3点を含める必要があります。

  • データを挿入するテーブルの名前
  • データを挿入するテーブルの列の名前
  • 列に挿入する値

これに従って作ったpersonテーブルにデータを挿入するコマンドは次のようになります。

INSERT INTO person (person_id, fname, lname, gender, birth_date) VALUES (null, 'Taro', 'Kitamura', 'M', '1985-08-26'); 

Enter。

mysql> INSERT INTO person (person_id, fname, lname, gender, birth_date) VALUES (null, 'Taro', 'Kitamura', 'M', '1985-08-26');
Query OK, 1 row affected (0.02 sec)

成功です! 対話式コマンドラインはレスポンスがサクサク返ってくるところがきもちいいですね。 成功すれば、ですが。

テーブルの中身をかくにんする

これで1レコード入ってるテーブルが作成できました。
ちゃんと登録されているか確認してみよう。

mysql> SELECT * FROM person;
+-----------+-------+----------+--------+------------+---------+------+-------+--------+-------------+
| person_id | fname | lname    | gender | birth_date | address | city | state | coutry | postal_code |
+-----------+-------+----------+--------+------------+---------+------+-------+--------+-------------+
|         1 | Taro  | Kitamura | M      | 1985-08-26 | NULL    | NULL | NULL  | NULL   | NULL        |
+-----------+-------+----------+--------+------------+---------+------+-------+--------+-------------+
1 row in set (0.00 sec)  

めでたくデータが確認できました。

次は、複数のテーブルをJOINさせて見たいとおもいます。