ためすう

MySQL のインデックス追加、変更、削除

2018-09-23

目的

mysql のテーブルでインデックスを追加・変更・削除します。

よく調べ直しているので、メモしておきます。

方法

使用テーブル

CREATE TABLE test_2018 (
    id int,
    id2 int
);

ユニークキー

追加

ALTER TABLE test_2018
ADD UNIQUE uk_id2 (id2)
;

削除

ALTER TABLE test_2018
DROP INDEX uk_id2
;

インデックス

追加

ALTER TABLE test_2018
ADD INDEX idx_id2 (id2)
;

削除

ALTER TABLE test_2018
DROP INDEX idx_id2
;

参考

MySQL のテーブルのカラム追加、変更、削除

2018-09-22

目的

mysql のテーブルでカラムを追加・変更・削除します。

よく調べ直しているので、メモしておきます。

方法

使用テーブル

CREATE TABLE test_2018 (
    id int
);

追加

ALTER TABLE test_2018
ADD id2 int AFTER id
;

変更

change を使用する場合

ALTER TABLE test_2018
CHANGE id2 id2_changed int
;

modify を使用する場合

ALTER TABLE test_2018
MODIFY id2_changed text
;

削除

ALTER TABLE test_2018
DROP id2_changed
;

参考

unix のln について調べた

2018-09-22

目的

unix で ln をいまいち理解できていないので、調べてみました。

リンクについて

まず、リンクには2種類あります。

  • ハードリンク
  • シンボリックリンク

ハードリンクとは

(以下 man コマンドより引用)

     By default, ln makes hard links.  A hard link to a file is indistinguishable from the original direc-
     tory entry; any changes to a file are effectively independent of the name used to reference the file.
     Hard links may not normally refer to directories and may not span file systems.

シンボリックリンクとは

(以下 man コマンドより引用)

     A symbolic link contains the name of the file to which it is linked.  The referenced file is used when
     an open(2) operation is performed on the link.  A stat(2) on a symbolic link will return the linked-to
     file; an lstat(2) must be done to obtain information about the link.  The readlink(2) call may be used
     to read the contents of a symbolic link.  Symbolic links may span file systems and may refer to direc-
     tories.

使ってみる

ハードリンク

$ ln test1.txt test1_to_hard.txt
$ ls -l
-rw-r--r--  2 xxxxx  staff     4 10  4 20:14 test1.txt
-rw-r--r--  2 xxxxx  staff     4 10  4 20:14 test1_to_hard.txt

シンボリックリンク

$ ln -s test2.txt test2_to_symbolic.txt
$ ls -l
-rw-r--r--  1 xxxxx  staff     5 10  4 20:14 test2.txt
lrwxr-xr-x  1 xxxxx  staff     9 10  4 22:55 test2_to_symbolic.txt -> test2.txt

リンクを消す方法は下記です

$ unlink test1_to_hard.txt
$ unlink test2_to_symbolic.txt

unix のコマンド履歴を見て、実行する方法

2018-09-22

目的

unix のコマンドの履歴を一覧で見て、それを実行します。

方法

$ history
502  ls
503  git diff

history の結果が上記のとき

$ !502

とすると、 ls を実行することができます。

おまけ

シェルが bash のとき、履歴の保存数は下記に設定されています。

$ echo $HISTSIZE

JavaScript の object

2018-09-09

目的

JavaScript の object についての説明です

やってみる

オブジェクトは、名前のついたプロパティの集まり、つまりキーと値の組のリスト(他の言語でいう連想配列とほぼ同じ)にすぎません。

var book = {
    title: 'book_title',
    getTitle: function () {
        return this.title;
    }
};
console.log(book.title);
console.log(book.getTitle());

// 結果
book_title
book_title

unix で os の時間を設定する

2018-08-19

目的

os の時間設定ををします。

Cent OS で時刻設定する

$ sudo cp /etc/localtime /etc/localtime.org
$ sudo ln -fs /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

$ sudo vi /etc/sysconfig/clock
[変更前]
UTC=false

[変更後]
ZONE="Asia/Tokyo"
UTC=false
ARC=false

補足

UTC について

引用 > UTCとは、全世界で時刻を記録する際に使われる公式な時刻。天体観測を元に定めるGMT(グリニッジ標準時)とほぼ同じ

ARC について

引用 > true 又は yes — ARC コンソールの42年の時間オフセットが有効になっています。このセッティングは、ARC- 又は AlphaBIOS ベースの Alpha システム のみの為のものです。この値は、通常の UNIX エポックが使用中という意味です。

参考URL

サイトの URL を変更するときにやること

2018-08-19

目的

運営しているブログの URL を変更するときにやることをまとめました。

やること

1. Google の検索インデックスから削除する

Google の Search Console から既にインデックスされている URL を削除します。 下記から削除したい URL を登録します。

2. 変更する前の URL にアクセスされた場合、リダイレクトする

既にリンクを貼ってもらった URL の可能性があるので、

301 Moved Permanently(恒久的な移転)リダイレクトするようにします。

参考

Python で CSV ファイルを読み込むときに発生したエラー「UnicodeDecodeError」を解決する

2018-08-12

目的

Python から CSV ファイルを読み込むとしたら下記のエラーが発生しました。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/anaconda3/lib/python3.6/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8e in position 0: invalid start byte

このエラーの解決していきたいと思います。

ファイルを utf-8 で読み込むようにする

import csv

with open('data.csv', 'r', encoding="utf_8") as file:
    reader = csv.reader(file)

    for row in reader:
        print(row)

※ data.csv は自分が読み込みたいファイルに変更してください。

しかし、エラーが発生しました。

Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
  File "/anaconda3/lib/python3.6/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8e in position 0: invalid start byte

ファイルを utf-8 に変換する

ここで nkf 「Network Kanji Filter」を使い文字コードを変換します。

まず nkf コマンドをインストールします。

(すでにインストールしている人はスキップしてください)

$ brew install nkf

文字コードを変換していきます。

# 現在の文字コードの確認
$ nkf -g hogehoge.csv
Shift_JIS

# 文字コードを UTF-8 に変換します
$ nkf -w --overwrite hogehoge.csv

# 変更後の文字コードの確認
$ nkf -g hogehoge.csv
UTF-8

文字コードが変わったあと、下記のコードを実行すると読み込むことができました。

import csv

f = open('hogehoge.csv', 'r')
dataReader = csv.reader(f)
for row in dataReader:
	print(row)
f.close()

参考

Anaconda 環境に pip コマンドでインストールする

2018-08-12

目的

Anaconda を利用している時、 conda コマンドでインストールできないライブラリがありました。

pip コマンドでインストールした時のメモになります。

方法

Anaconda 環境の確認

$ conda info -e
# conda environments:
#
base                  *  /anaconda3
hogehoge               /anaconda3/envs/styletrans

任意の Anaconda 環境を activate する

今回は base 環境にインストールしたいので、

$ source activate base

とします。

pip コマンドでインストールする

(base) $ pip install hogehoge

※ hogehoge はインストールしたいライブラリに変更してください

これで無事にインストールすることができました。

参考

静的サイトのホスティング先を Github Pages から Netlify へ移行する

2018-08-05

目的

静的サイトを Github Pages で運用していたのですが、 Netlify へ移行することにしました。

理由としては、 jekyll でサイトを構築しており、利用したいプラグインが使えなかったためです。

Github 側でビルドするときに --safe オプションが true になるため、利用できないプラグインがあります。 (自作のプラグインも不可)

ローカルでビルドしてから、Github に push するという手もありましたが、

Netlify という良さそうなホスティングサービスを見つけたので

思い切って移行することにしました。

大まかな手順を記します。

手順

Github Pages で利用しているリポジトリをコピーする

Github のリポジトリで1度、Github Pages の設定をしてしまうと、

Github Pages ではないようにするには

  • ブランチ削除
  • リポジトリ削除

しかないようでした。

Github Pages で初期に発行されるデフォルトのドメインが残るのが嫌だったので、

Github のリポジトリをコピーします。

Netlify でアカウントを作成して、リポジトリを指定

次に Netlify に先ほど作った、リポジトリを指定してあげます。

Netlify についてはこちら

Netlify: All-in-one platform for automating modern web projects.

設定するのは数分で出来ました。

すると、ビルド、デプロイと実行されていきます。

Netlify が付与してくれた新しいドメインでサイトが閲覧できるようになるまでも、数分でした。

Netlify に独自ドメインを設定する

自分が持っているドメインに Netlify のネームサーバーを指定します。

ネームサーバーの設定変更が浸透するまで待ちます。

※ 自分は手順を間違えてサイトが閲覧できなくなる状態が数時間続いてしまいました。

Github Pages のドメイン設定を外して、リポジトリの削除

Netlify のネームサーバーが浸透したら、以前使っていた Github Pages のリポジトリに設定してある

自分が所有しているドメインを削除します。

問題ないことが確認できたら、リポジトリを削除します。

(注意) Goolge Analytics について

Google Analytics で計測されなくなるという問題がありました。

Github Pages では下記の設定をすれば、Goolge Analytics で計測できるようになります。

_config.yml

google_analytics: UA-XXXXXXX

今回、Netlify に移行したので計測できなくなっていました。

トラッキングコードを Netlify の

Settings > Build & deploy > Snippet injection

に埋め込みます。

どのサーバーでも計測できるように、トラッキングコードをソースコードに記載するのも良いかもしれません。

参考