k01ken’s b10g

He110 W0r1d!

RailsでデータベースをSQLiteからpostgreSQLに変更する

開発環境はWindows7 Professional(32bit) + Rails 4.2.1 + Ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32] + SQLite version 3.24.0。

すでにSQLiteにデータを入れているデータベースをpostgreSQLに移し替える作業を行う。

1.カレントディレクトリをRailsのルートディレクトリ内にあるdbディレクトリにする。

2.以下のコマンドを入力しSQLite3を実行する

sqlite3 development.sqlite3

3.development.sqlite3内のitemsテーブルを、sqlite_dumpfile.sqlとして出力するため、以下のコマンドを入力して実行。同じディレクトリ内sqlite_dumpfile.sqlが作成されている。

.output sqlite_dumpfile.sql
.dump items

4.別のディレクトリにて、データベースをpostgresqlに指定して、railsで新しくアプリを作成する

rails new app -d postgresql

database.ymlを見ると、postgreSQL専用になっている。
Gemfileをチェックすると、pgがすでにインストールされている。



参考リンク
sqliteからpostgresへの移行
[*Rails*] 開発環境用DBをSQLite3からPostgreSQLに変更する
データベースをダンプ(.dumpコマンド) - SQLite入門
Rails:SQLiteをやめてPostgreSQLを使う - Hello world, I am kgmx.

PostgreSQLを使う

開発環境はWindows7 Professional(32bit)。

1.公式サイトへアクセスする
PostgreSQL: The world's most advanced open source database

2.ページ上部のDownloadをクリック

3.Windowsをクリック

4.Download the installerのリンクをクリック
5.Select your versionをPostgreSQL 9.5.14に選択し、Select your operating systemを、
Windows x86-32に選択し、DOWNLOAD NOWをクリック。
そのまま待っているとインストーラをダウンロードできる。

6.インストーラを実行する

7.Nextボタンをクリック
f:id:k01ken:20180909124215p:plain

8.Nextボタンをクリック
f:id:k01ken:20180909124233p:plain

9.Nextボタンをクリック
f:id:k01ken:20180909124245p:plain

10. Password, Retype password(同じもの)を入力して、Nextをクリック
※別に入力しないまま、Nextボタンをクリックしても良い
f:id:k01ken:20180909124302p:plain

11.Nextボタンをクリック
f:id:k01ken:20180909124324p:plain

12.Nextボタンをクリック
f:id:k01ken:20180909124335p:plain

13.Nextボタンをクリック
f:id:k01ken:20180909124353p:plain

14.Stack Builder~のチェックを外してFinishボタンをクリック
f:id:k01ken:20180909124547p:plain

15.環境変数PATHに;C:\Program Files\PostgreSQL\9.5\binを追加

SQLiteを使う

開発環境はWindows7 Professional(32bit)。

1.公式サイトへアクセスする
SQLite Home Page

2.ページ上部のDownloadというリンクをクリック

3.Precompiled Binaries for Windowsの欄のsqlite-tools-win32-x86-3240000.zipのリンクをクリック

4.ダウンロードしたものを解凍する

5.c:\にsqlite3というディレクトリを作成する

cd c:\
mkdir sqlite3

6.3つのファイルをsqlite3ディレクトリへドラッグ&ドロップする

7.sqlite3をパスに通す
※これによって、どのディレクトリからでも、sqlite3.exeを実行できる。
7-1.デスクトップ左下のWindowsボタンをクリック
7-2.コンピュータをクリック
7-3.システムのプロパティをクリック
7-4.システムの詳細設定をクリック
7-5.環境変数をクリック
7-6.~のユーザー環境変数PATHをダブルクリック
7-7.末尾に;C:\sqlite3を追加。
7-8.OKボタンをクリック
7-9.OKボタンをクリック
7-10.OKボタンをクリック

参考リンク
SQLiteコマンドラインツールのダウンロードとインストール | SQLiteインストール

Rubyのif文とcase文で正規表現を用いたときの違い

開発環境はWindows7 Professional(32bit) + ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]。

case文を用いていたら、思ったように動作しなかったのでメモしておく。

# -*- coding: utf-8 -*-

url = "http://k01ken.hatenablog.com/"

case url
    when /^http:\/\/k01ken\.hatenablog\.com/.match(url)
        p true
    else
        p false
end

if /^http:\/\/k01ken\.hatenablog\.com/.match(url)
  p true
else
 p false
end

実行結果
f:id:k01ken:20180909110224p:plain

1つ目はfalseになり、2つ目はtrueになる。
case文ではどうやら、対象となる数値や文字列が完全に一致しないと一致したことにはならないみたいだ。

参考リンク
正規表現 (Ruby 2.5.0)
Rubyのcaseを〇〇(言語名)のswitch文だと思っている人たちにぼくから一言ガツンと申し上げたい
case文の条件で正規表現を使って内部でマッチ部分を使いたいとき
Ruby の case 文
instance method Regexp#match (Ruby 2.5.0)

Rubyを用いてhttpsプロトコルでサイトからデータを取得する際の注意点

開発環境はWindows7 Professional(32bit) + ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]。

httpsプロトコルYouTubeのとあるページから、データを取得して、そのデータをsampletest.txtとして保存するプログラムを作りたいと思います。

require 'open-uri'

result = ""
open('https://www.youtube.com/watch?v=k3KqqOlJKsQ'){|f|
	f.each_line{|line|
		result += line
	}
}

File.open('sampletest.txt','w'){|f|
	f.puts(result)
}

これで実行すると、certificate verify failed (OpenSSL::SSL::SSLError)のようなエラーが出現するので、以下のように修正、

require 'open-uri'
require 'openssl'

result = ""
open('https://www.youtube.com/watch?v=k3KqqOlJKsQ', :ssl_verify_mode =>
OpenSSL::SSL::VERIFY_NONE){|f|
	f.each_line{|line|
		result += line
	}
}

File.open('sampletest.txt','w'){|f|
	f.puts(result)
}

いくつか方法はあるようですが、今回は証明書を検証しない方法を取っています。
これで問題なくページを保存できています。

参考リンク
library open-uri (Ruby 2.5.0)
[Ruby] open-uri の HTTPS リクエストで certificate verify failed | mofu犬blog
Rubyでファイルの書き込み・読み込みを行う方法 | UX MILK

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

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

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

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

1.経済的不安

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

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

2.孤独の不安

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

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

3.健康の不安

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

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

Vue.jsを使う

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

1.node.jsをインストールしている前提で、vue-cliをインストールする

npm install -g vue-cli

2.カレントディレクトリをC:\に移動して、以下のようなコマンドを入力する。

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

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

具体的なコマンドはこちら。

vue init webpack-simple vue-test

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

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

cd vue-test
npm install
npm run dev

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

f:id:k01ken:20180820230811p:plain

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

試しに変更してみます。src/App.vueを開いて、Welcome to Your Vue.js Appの部分をHello, Vueに変更してみます。ファイルを保存した段階で、すぐに、ページの内容が変更されることを確認してみてください。
f:id:k01ken:20190102125345p:plain

vue-cliを使わないで初めてみる

はじめに — Vue.js
Vue.jsの公式ページのチュートリアルを見てみると、vue-cliを初心者がいきなり使用することはすすめていないみたいです。
そこで、vueのjavascriptファイルをネット経由で読み込んで使用してみたいと思います。
それが以下のコード。実行すると、{{ message }}の部分が、Hello Vue!に置換されています。

<html lang="ja">
<head>
 <meta charset="utf-8">
<style>

</style>
<script>

</script>
</head>

<body>
<div id="app">
{{ message }}
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
	var app = new Vue({
		el: '#app',
		data: {
			message: 'Hello Vue!'
		}
	})
</script>
</body>
</html>

Webブラウザのコンソールから、app.message = "太郎"と入力すると、値が、Hello Vue!から太郎に変更します。



参考リンク
Vue.js
はじめに — Vue.js