うすのブログ

初心者プログラマです。

Node-Red 初心者 導入

Node-Red 導入方法(debian系)

Ubuntu16.04とDebianに入れた時手こずったので導入方法書いておきます。

グーグル先生や他の人は、普通にうまくいけば以下のコマンドでいけるらしい?

$ sudo apt install nodejs npm

$ npm install node-red

私の場合は、うまくいかなかったので以下のようなやり方です。

$ sudo apt install nodejs nodejs-legacy curl

$ wget http://www.npmjs.org/install.sh --no-check-certificate
sudo sh install.sh

npmがインストールできたら

$ sudo npm install -g --unsafe-perm node-red

curl installしてwget使ってるあたり 本当にcurlインストールしてるのが謎なんでcurl入らないかも。

mariaDB 初心者 チートシート

Mysqlをインストールして起動するとなぜかmariaDBになったので せっかくなので使ってみる。 入力する場所は、{ここの部分}

テンプレの作業工程

ログイン ↓ ユーザ作成 ↓ DB作成 ↓ テーブル作成 ↓ データの登録

ログイン

$ mysql -u '{username}' -p

パスワードを入力してログイン 初期ログインは、スーパーユーザで

# mysql

だけで良い。

ユーザ作成

mariaDB[]> create user '{username}'@'localhost' identified by '{passwd}';

usernameとpasswdは同じ人が結構いる

ついでに権限も与える。 権限は、ALL権限を与える人が多い

mariaDB[]> grant all privileges on *.* to '{username}'@'localhost';

userの確認

mariaDB[]> select user,host FROM mysql.user;

userの削除

mariaDB[]> drop user FROM {user_name};

DB作成

mariaDB[]> create database {testdb};

テーブルの作成

まず、DBに入る

mariaDB[]> use {testdb}

テーブル作成

mariaDB[testdb]> create table {example_table}(num int,name varchar(50));

テーブルの確認

mariaDB[testdb]> show tables;

データの登録

mariaDB[testdb]>insert into {example_table} values(1, aaa);

mariaDB[testdb]>insert into {example_table} values(2, bbb);

データの確認

mariaDB[testdb]>select * from example_table;
+------+------+
| num  | name |
+------+------+
|    1 | aaa  |
|    2 | bbb  |
+------+------+
2 rows in set (0.00 sec)

Vagrant 初心者 Network 設定

初心者ができるvagrantの設定

Vagrantとは CUI上の仮装環境の構築、およびネットワークなどの設定が簡単にできます。 また、他人が作った設定(Box)を利用することで 複数人が全く同じ仮装環境を構築できる優れもの

なぜ仮装環境が流行っているか - 最近、仮装環境が流行っています。 なぜかというと、ある程度PCのスペックが上がってきて 処理負荷に耐え、速い処理で本物みたいに仮装環境を動かせるので もはや、仮装環境は本物と同じと言っていいくらいです。 - 仮装環境のメリットとは、 同じ環境の複製を大量に作れる 別の環境で同じ動作ができる環境を瞬時に作ることができます。 環境構築に失敗してもすぐに捨てて一から作れる利便性

本題

vagrantの設定は、まずVagrantの構築ができている人前提で話を進めます。 Vagrantの設定は、全てVagrantfileで設定します。 デフォルトの内容は、コメントアウトだらけです。 有効な内容は、

Vagrant.configure("2") do |config|
~~
config.vm.box="~~"
~~
end

これだけですね。

ここに必要なものを足して(コメント外して)いきます。

HostPCとVagrant間の通信のみを考えている人

config.vm.network "private_network", ip: "192.168.33.10"

という行のはじめの#をとって有効にしてください。

他の端末でvagrantで作ったwebsiteを見たい人は

config.vm.network "public_network"

の行の#をとって有効にしてください。 また、途中で何か聞かれたらwi-fiの1でいいと思います。 なんなら、設定書いた方がいいです。

config.vm.network "public_network", ip "192.168.1.10", bridge "en0: Wi-Fi (AirPort)"

ipaddress → 192.168.1.10に指定 bridge → en0: Wi-Fi (AirPort)に指定

独自のドメインを楽しみたい人

まずプラグインのインストール

$ vagrant plugin install vagrant-hostsupdater

vagrant-hostupdaterと間違えないでください(自分...)

その後Vagrantfile内(using a specific IP.の下)に

config.vm.hostname = "好きなドメイン"

を追加してください。(私の場合「myraspi.com」)

 35   # Create a private network, which allows host-only access to the machine
 34   # using a specific IP.
 35   config.vm.hostname = "myraspi.com"
 36   config.vm.network "private_network", ip: "192.168.33.10"

この後リロード(再起動)

$ vagrant reload

再起動中に何か聞かれる. 番号を聞かれたらpublicの時みたいにwi-fiの選択肢1を選ぶか,設定する

なお、publicかつオリジナルのドメインは、できない... できる方がいたら教えて欲しい...

privateとpublicは、同時に設定もできるが あくまで二つの機能を使えるだけで ホストPCでドメインを使えても 他の端末で使えないのであまり意味がないという結論に至った。

結果として、やりたかったpublic_networkができただけでもいいや。

Mysql 初心者 命令文

Mysqlの命令文一覧

userの確認

mysql> select user, host from mysql.user;

mysqlのDBにログインしている人は、mysql.user→userで

userの権限(grants)の表示(show)

mysql> show grants for 'vagrant'@'localhost'

vagrantと書いてあるところが一般ユーザ名です。書き換えて使ってください。

userの権限の追加

その前になんの権限が実際必要なのかよくわからないし そのような記事もなかなか見つからない。 そこで基本的な機能を次のリストに挙げた。

権限 意味
CREATE 表を作成する
ALTER 表を更新する
DROP 表を削除する
INSERT データを追加する
UPDATE データを更新する
DELETE データを削除する

そして、次にdumpファイルを作成するときに 必要な権限を表にした。

権限 意味
FILE SELECT ... INTO OUTFILE と LOAD DATA INFILE の使用を可能にする
SELECT SELECT の使用を可能にする
SHOW VIEW SHOW CREATE VIEWの使用を可能にする
LOCK TABLES SELECT 権限を持つテーブル上の LOCK TABLES の使用を可能にする

実際の命令文

mysql> grant create,alter,drop,insert,update,delete on *.* to 'vagrant'@'localhost';
mysql> grant file,select,show view, lock tables on *.* to 'vagrant'@'localhost';

userの権限の削除(revoke) example)createの権限の削除

mysql> revoke create on *.* from 'user'@'localhost';

Atom ショートカット 一覧 チートシート 厳選

Atomのショートカット

これだけ知っていたら非常に便利で すぐにでもAtomのユーザになりたくなります。 Macユーザ向けのショートカットですが Windowsの方も設定を開いてキーバインドというところを開けば 全て書いてあります。

ショートカット一覧

まずは、基本

ショートカット 動作
Cmd + c コピー
Cmd + v 貼り付け
Cmd + z 戻る
Cmd + y 戻るの取り消し
Cmd + f 文字列検索 & 文字列変換

Atomの便利なショートカット

カーソルのある行をまとめてコピーペーストしたり削除できます。 以下ではカーソルのある行を行で書きます。

ショートカット 動作
Cmd + / 選択した行全てをコメントアウト
Shift + Cmd + d 行のコピー+ペースト
Shift + Ctrl + k 行の削除
Cmd + Enter 行から改行(カーソルはどこでもOK)
Cmd + Shift + Enter 行の一つ上の行を改行
Cmd + d 選択した単語を一つずつ
検索して足して行く


裏技っぽい業でマルチカーソルというものがあります!

ショートカット 動作
Cmd + 左クリック マルチカーソル
ESC or 左クリック キャンセル

これは、本当にオススメ 複数の場所を選択して同時に編集できる
Atom側の表示などのショートカット

ショートカット 動作
Cmd + alt + \ ファイルツリーの表示,非表示
Cmd + , 設定ファイルの表示,非表示
Cmd + Shift + p コマンド検索の表示,非表示
Cmd + t ファイル検索の表示,非表示

終わりに

これらは、全てデフォルトでできます。 基本的に標準で予測変換もついてるのでtabキーでコーディング保管してくれます。

これらを使用すれば、コーディングが非常に速くなります。 Atomは、プラグインが豊富なので、もっと便利なものも見つかると思います。

ショートカットなどは覚えるのが大変かもしれませんが 非常に便利で無駄がないです。 これがAtomが人気な証拠なんだと思います。

Nginx PHP7 絶対にできる設定

簡単で絶対に設定できます。

php5や、一度設定したことがあれば、保証できません。 競合してめちゃくちゃになります。(体験談) nginxとphpを初めてインストールする人 さらに、debian系のディストリビューションなら間違いない。 うまくいかなければ、初期化して一からやることを進めます。 この記事は、初期化して一からやれば必ずできます。
Red-Hat系やMacOSは、参考程度によろしくお願いいたします。

それでは、始めます。

まず、installするものは、 nginx, php7.0, php7.0-fpmです。

$ sudo apt -y install nginx php7.0 php7.0-fpm

ちょっとした説明  aptは、apt-getの上位互換らしいです。 -yオプションは、選択を全てyesにします。

設定ファイルいじります。

はじめに indexにindex.phpを追加します。

その後、location ~ /.php{}の設定の中で includeの行と fastcgi_pass unixの行だけコメントはずします。

$ sudo vim /etc/nginx/sites-available/default
44 index index.html index.htm index.nginx-debian.html index.php;

56 location ~ \.php$ {
57 include snippets/fastcgi-php.conf;
58 #
59 # # With php-fpm (or other unix sockets):
60 fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
61 # # With php-cgi (or other tcp sockets):
62 # fastcgi_pass 127.0.0.1:9000;
63 }

次にfpmを編集します。

fpmとは phpを動作させるAppserverで Apacheなどでは、必要ない(Apacheが頑張る)が Nginxは、phpの仕事をしないのでfpmが必要。
それでは、やっていきましょう。

$ sudo vim /etc/php/7.0/fpm/php.init

760行目付近です。cgi.fixなどは、似たものがあるので気をつけてください。

760 cgi.fix_pathinfo=0

これだけで設定完了です。

あとは、リロードするだけ

$ sudo service php7.0-fpm restart
$ sudo service nginx restart
http://localhost/

でwebが表示されるはずです。

また、表示しているファイルは、 /var/www/htmlのディレクトリにあるファイルです。

以上です お疲れ様。

Gedit for Mac install

GeditをMacで使いたい人に

Geditは、Ubuntuで標準なのでそこで初めて出会った人も多いかと思います。
(AtomEclipseに比べて)非常に軽いのでオススメ。

 初心者向けに

Linuxは、(パッケージ管理ツールの)コマンドでインストールする
Debian系ならaptやapt-get
Red-Hat系ならyumや最近は、yumの後継のdef

Macは、基本brewというコマンドでインストールすることが多い。
brew コマンドは、Homebrewというやつ。

こちらを参考にすると良い。
「Home-brew macOS用パッケージマネージャ」
https://brew.sh/index_ja.html

 Gedit Macのinstall方法

とりあえずグーグル先生曰くこれでインストール
$ brew install gedit
すると、warningが出てきました。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Warning: Building python from source:
The bottle needs the Apple Command Line Tools to be installed.
You can install them, if desired, with:
xcode-select --install
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
しかし、警告レベルなので無視してたら
最後の方でエラーはきます。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Error: An unexpected error occurred during the brew link step
The formula built, but is not symlinked into /usr/local
Permission denied @ dir_s_mkdir - /usr/local/Frameworks
Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
なのでとりあえず、警告の指示通り
$ xcode-select --install
してみます。
すると、xcodegui上でアップデートしますか?
と聞いてくるのでアップデートする。

再び
$ brew install gedit
しかし、エラー文は、変わらない...
ここでちゃんとエラー文を読む...笑
Permission deniedのエラー
これは、許可がなくて拒否されているってこと。
エラー文でグーグル先生に聞いたところ
$ sudo chown -R $USER /usr/local
※コマンドchownは、所有権の変更
※オプション-Rは、ディレクトリ内全て処理してくれる
すればいいよだってさ。
実行してみると、なんかエラーはく。
chown: /usr/local: Operation not permitted
とりあえず
$ls -la
してみると
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
drwxr-xr-x 15 root wheel 480 11 2 04:04 .
drwxr-xr-x@ 10 root wheel 320 11 2 04:38 ..
~~~
drwxrwxr-x 17 username admin 544 10 26 21:38 Homebrew
drwxrwxr-x 156 username admin 4992 11 2 04:56 bin
~~~~
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
てな感じになっていておそらく、admin adminから変わったのかな
そこでもう一度、今度こそという願いを込めて実行
$ brew install gedit
通りました。

 感想

言いたいこととしては、geditってUbuntuで標準で使われているくらいだし
軽いとか聞いたことあるし、軽いし、インストール簡単だと思ってた。
しかし実際は、
依存関係が半端ないし、usr/localの下にファイル作ろうとするから
許可の申請必要で初心者すぎる私には、少しだけ辛かった。

ということで、無事にインストールできたので魅力だけでも伝えます。

 魅力

・一瞬で立ち上がり、コマンドのカラーなども標準で入っていて
 デフォルトのインストールでカラーを変更したりできます。

プラグインが豊富でターミナルを出したりもできるし
 ビルドなどもショートカットを登録して
 ビルド、実行ができるそうです。
 IDEのように使えるということですね。