突発的に降りかかる不安とどう生きるか

ひきこもりから脱しようとしたときに、言葉にならないイメージが頭の中に一瞬ふっと湧いて怖くなってくる不安を分類すると、だいたい、以下の3つになります。

  1. 経済的不安
  2. 孤独の不安
  3. (肉体/精神)健康の不安

上の三大不安がない状態で、いかに、毎日楽しく暮らせるか?が自分の目標ですが、とりあえず、具体的な行動を書いてみると、

1.経済的不安

  • 収入を増やす
  • 生活コストを下げる

【具体的な行動】
・仕事で実績を上げて周囲の自分に対する評価を上げる
 ・トップの人を観察したり、色々と質問して、分析し、方法を真似る
・ゆるいつながりからより良い仕事を紹介してもらう
・できるだけ外食せず、自炊する
・将来的に起こる可能性が高くて、お金のかかることを勉強し、その額を調べて、リストし、お金を用意しておく。
・必要なこと(三大不安を解消すること)には惜しまず、出費する。ケチにならない。必要じゃないことだけケチになる。

2.孤独の不安

  • 友達を作る
  • 家族を作る
  • 多くの人とゆるいつながり(人的ネットワーク/人脈)を持っておく
  • 没頭できる趣味を見つける

【具体的な行動】
・対人恐怖症を治す
 ・挨拶をする
 ・しっかりと受け答えをする
 ・自己開示することを恐れない
 ・大勢の人が同じ空間にいても反射的に逃げないようにする
 ・すぐに不機嫌にならないようにする
 ・できるだけ笑いになるようにする。自分を笑えるようにする。
 ・思ったらすぐに聞いて会話の糸口にする。そして、会話が継続すること。
 ・分からないことがあれば、積極的に聞くことで、会話をする。
 ・趣味のない場合、相手の趣味に合わせて、自分もそれを行う。
 ・ネガティブな結果を想定して行動を自主規制することをやめる
 ・こちらから相手に会いに行く
  ・相手に動いてもらうのではなくて、こちらから動くことの重要性。
  コントロールできることに集中する。
・趣味を作って共通の趣味で友人を作る
・相手と遊びに行く
・自分で何かを主催して、人を集める
・出会った人とメールアドレスなり交換する
・下手なプライドを捨てて、気軽に相談できる人になる(人に相談できるスキルはかなり重要だと思っている)
・相手が付き合いやすい、助けたくなる、付き合いたくなる人物になる
・相手好みの情報があれば教え、貢献する(話のネタをたくさん仕入れて、記憶しておく)。積極的にGiveする。
・相手の不平や不満や問題を聞いて、自分に解決できるならば解決してあげる(特にプログラミングの技術で解決できるなら)。
・積極的に会話をしてそこから、何かをするアイディアを思いついて、その場で話す
・色んな人に積極的に会って、インタビューする(色んな人の人生が知りたい。対人恐怖症だが、人に興味がある。)

3.健康の不安

  • 運動する
  • バランスの良い食事を取る
  • しっかりと睡眠を取る
  • リスクの高い病気を防ぐ生活習慣をする

【具体的な行動】
・腹の虫が鳴らない限り、食事は取らない(食費の節約になる)
・一口20回以上噛む(すぐに満腹になるようにする)
・散歩をする
・瞑想する(頭に浮かんでくる考えを一切解釈せずに、呼吸だけに意識を集中する)
・何か今までしたことのないことや解決したい問題を目標として、それを達成することを繰り返す。

Vue.jsを使う

開発環境は、Windows 7 Professional(32bit)。

vue-cliがインストールされていることが前提。

vue init テンプレート名 プロジェクト名

を入力する。プロジェクト名で指定したディレクトリが作成されて、テンプレート名で指定したものでディレクトリ内にプロジェクトが作成されます。

1.カレントディレクトリをc:\にして、以下のコマンドを実行する。

vue init webpack-simple vue-test

Project name
Project description
Author
Licence
Use sass?
と続けて質問されるので、Use sass?以外はEnterキーを押して、Use sass?はyかnで判断する。

2.続けて以下のコマンドを入力する。

cd vue-test
npm install
npm run dev

localhost:8080へ自動的にアクセスすると思います。しなければ、URLを打ち込んでアクセスしてください。そうすると、以下のページが表示されます。

f:id:k01ken:20180820230811p:plain

vue-testディレクトリ内のsrcディレクトリ内にある、App.vueかmain.jsの中身を変更すると、ブラウザをリロードすることなく、自動的にページの内容が変更されます。

JavaScriptで値渡しと参照渡しについて

開発環境は、Windows7 Professional(32bit) + Firefox 61.0.1(32bit)。

値渡し - 値を変更しても元のデータは変わらない

let x = 10;
let y = 12;
y = 12;
console.log(y); // 12
console.log(x); // 10

参照渡し - 値を変更すると元のデータが変わってしまう
データの値を別の変数にコピーして、それぞれで違う処理をさせようと思ったら、詰まってしまう。

// 配列
let arr = [1,2,3];
let arr2 = arr;
arr2[1] = 10;
console.log(arr2); // [1,10,3]
console.log(arr); // [1,10,3]

// オブジェクト
let obj1 = { value: 10 };
let obj2 = obj1;
obj2.value = 20;
console.log(obj2); // Object { value: 20 }
console.log(obj1); // Object { value: 20 }

OpenCV(Python)を用いてディレクトリ内にある画像をリサイズする

開発環境は、Windows7 Professional(32bit) + Python 2.7.10。

imgディレクトリに画像を入れて、その画像のサイズをすべて、指定のサイズ(幅は250px、高さは幅に合わせて自動調整)へリサイズするスクリプトを作ります。縮小する前に、画像を平滑化すると、滑らかになります。

ディレクトリ構成

-test.py(下記のスクリプト)
+img
 -test.jpg(適当な画像)
# -*- coding: utf-8 -*-

import cv2
import numpy as np
import glob

arr = []
arr.extend(glob.glob("./img/*.jpeg"))
arr.extend(glob.glob("./img/*.jpg"))
arr.extend(glob.glob("./img/*.png"))

for i in arr:
	img = cv2.imread(i)
	height, width = img.shape[:2]
	if width > 250:
	  x = float(width) / 250
	  width = 250
	  height = int(height / x)

	  img2 = cv2.GaussianBlur(img,(5,5),0)

          img2 = cv2.resize(img2,(width, height))
	  cv2.imwrite(i,img2)

■参考サイト
画像をリサイズする | OpenCV画像解析入門
[OpenCV Python]画像の幅、高さ、チャンネル数、depth取得 · atinfinity/lab Wiki · GitHub
Pythonでフォルダ内のファイルリストを取得する
要素の追加と連結(appendメソッド, extendメソッド) - リスト - Python入門
画像の平滑化 — OpenCV-Python Tutorials
Image Filtering — OpenCV 3.0.0-dev documentation

RailsでRspecを使ってテストを行う

開発環境は、Windows 7 Professional(32bit) + ruby 2.3.3p222 + Rails 4.2.1。

Rspecは、Rubyでテストコードを書くためのパッケージです。今回は、rails専用のrspec-railsをインストールして、Rails上でテストコードを書いてみたいと思います。

TDD(テスト駆動開発)は、
1.テストコードを書く
2.テスト実行が失敗するようにプログラムを書く
3.テストが成功するようにプログラムを書く
4.初めに戻る
の繰り返しをしながら書く。

Rspecでは、テストコードのことをスペックという。

1.カレントディレクトリを、テストを実行したいrailsのアプリのルート部分に設定する。
そして、gemfileに以下を追加する

group :development, :test do
	gem 'rspec-rails'
end

そして、

bundle install

を実行し、インストールします。

2.初期設定を行うために以下のコマンドを入力

ruby bin/rails g rspec:install

そうすると、specディレクトリが自動的に作成されている。

3.モデルを作成

ruby bin/rails g model name first_name:string last_name:string

4.マイグレーションする

ruby bin/rake db:migrate RAILS_ENV=test

5./spec/modelsディレクトリに、name_spec.rbというファイルが自動的に作成されているので開く。
RSpec.describe Name, type: :model do~endのブロックの中に以下のコードを追加する。

it "test" do
  	name = Name.new(
  			last_name: "ken",
  			first_name: "koi"
  	)
  	expect(name.full_name).to eq "koiken"
end

/app/models/name.rbを開いて、class Name < ActiveRecord::Base~endに以下のコードを追加します。

	def full_name
		last_name + first_name
	end

6.Rspecを実行します。

ruby bin/bundle exec rspec

実行結果
f:id:k01ken:20180804154915p:plain
本来、koikenと表示されることが期待されているのに、kenkoiと表示されたエラーとなっています。
ここで、name_spec.rbを以下のように修正します。

it "test" do
  	name = Name.new(
  			last_name: "koi",
  			first_name: "ken"
  	)
  	expect(name.full_name).to eq "koiken"
end

そして、もう一度、rspecを実行します。

ruby bin/bundle exec rspec

実行結果
f:id:k01ken:20180804155404p:plain
今度は正しく実行されました。


■参考サイト
【Rails入門】RSpecを使ったテスト方法を初心者向けに基本から解説 | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト
はじめてのRSpec - まずテスト書いてからコード書くシンプルなチュートリアル
Railsでテストコードは書こう | Railsの小技 | DoRuby

WordPressでJavaScriptを使う方法

開発環境は、Windows 7 Professional(32bit)+XAMPP Control Panel v3.2.2。

1.現在使っているテーマを調べる
管理画面の左サイドにあるペンキのアイコンにマウスを合わせて、テーマと書かれたテキストリンクをクリックする。そして、有効になっているテーマが現在使用しているテーマ。

2./wordpress/wp-content/themes/使用しているテーマ名/footer.phpをクリックして表示する。

3.</body>タグの直前に以下のコードを挿入する。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(function(){
  $("#submit").on('click',function(){
    alert("OK");
  });
});
</script>

4.WordPressで投稿する際に、テキストタブにして、以下のHTMLタグを書いて、投稿します。

<input type="button" value="クリック" id="submit">

そうしたら、投稿したページへ飛んで、ボタンをクリックすると、OKというメッセージが出現します。

Ajaxを使う

wordpress/wp-include/functions.phpを開き、一番下に以下のものを追加します。

function add_my_ajaxurl(){
?>
<script>
		var ajaxurl = '<?php echo admin_url( 'admin-ajax.php'); ?>';
</script>
<?php
}

add_action('wp_head', 'add_my_ajaxurl', 1);

function text_ajax_test(){
  echo $_POST["data"];
  exit;
}

add_action('wp_ajax_text_ajax_test', 'text_ajax_test');
add_action('wp_ajax_nopriv_text_ajax_test', 'text_ajax_test');

?>


タグの直前に以下のコードを挿入する。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(function(){
	$('#ajax_btn').on('click',function(){
		$.ajax({
			url: ajax_url,
			type: "POST",
			data: {
				'action' : 'text_ajax_test',
				'data' : 'data'
			}
		}).done(function(msg){
			alert(msg);
		}).fail(function(msg){
			alert("error");
		});
	});
});
</script>

WordPressで投稿する際に、テキストタブにして、以下のHTMLタグを書いて、投稿します。

<input type="button" value="クリック" id="ajax_btn">

参考サイト
WordPressでJavaScriptを読み込ませるならこうすると便利です(2018年)

ローカル環境(XAMPP)にてWordPressを起動する

開発環境は、Windows 7 Professional(32bit)+XAMPP Control Panel v3.2.2。


1.公式サイトへアクセスし、WordPressをダウンロードする。WordPress 4.9.7と書かれた(現時点で)青いボタンをクリックすると、自動でダウンロードが始まる。
日本語 « ダウンロード — WordPress
f:id:k01ken:20180730195030p:plain

2.ダウンロードしたWordPressを解凍し、中身のwordpressディレクトリを、XAMPPのhtdocsディレクトリへ移動する。

3.XAMPP Control Panelを実行し、ApacheMySQLを起動する
f:id:k01ken:20180730194727p:plain

4.MySQLのAdminボタンをクリックして、phpMyAdminを実行する

5.ページ上部のデータベースをクリックする
f:id:k01ken:20180730194742p:plain

6.データベースを作成するの欄で、データベース名のテキストフィールド部分にデータベース名を入力して、作成ボタンをクリックする
f:id:k01ken:20180730194755p:plain

7.http://localhost/wordpress/へアクセスする。

8.さあ、始めましょう!ボタンをクリックする
f:id:k01ken:20180730195737p:plain

9.データベース名、ユーザー名、パスワード、データベースのホスト名、テーブル接頭辞を入力し、送信ボタンをクリック。
ここでは、MySQLへ接続するための情報を入力。
データベース名には先ほど、作成したデータベース名を入力する。
自分の環境では、ユーザー名は、root、パスワードは、何も入力しない、データベースのホスト名はlocalhostと入力した。
f:id:k01ken:20180730195924p:plain

10.インストール実行ボタンをクリック
f:id:k01ken:20180730200742p:plain

11.サイトのタイトル、ユーザー名、パスワード、メールアドレス、検索エンジンでの表示を入力して、WordPressをインストールボタンをクリックします。自分の場合は、今回はローカル環境で行うので、検索エンジンでの表示にはチェックしませんでした。
※パスワードはログイン時に必要なのでメモしておくこと。
f:id:k01ken:20180730200947p:plain

12.ログインボタンをクリック
f:id:k01ken:20180730201209p:plain

13.ユーザー名またはメールアドレス、パスワードを入力して、ログインボタンをクリック
f:id:k01ken:20180730201301p:plain

14.見事、管理画面にログインできました。
f:id:k01ken:20180730201413p:plain