KazuminEngine

プログラマーの日記

Golangでmysqlを操作するライブラリgorp

golangのrevelをやろうとしたんだが、Mは、mysqlを操作するためにライブラリgorpを使わなくちゃいけないので、その勉強まとめ。

そもそも、mysqlクリエを直接打ち込んだことがないので、そっから始まった。ユーザー作成とか

$ mysql -u root

mysql起動

CREATE USER kazumin IDENTIFIED BY [PASSWORD] 'kazumin';

でkazuminユーザーを作成

GRANT ALL PRIVILEGES ON *.* TO 'kazumin'@'localhost';

でkazuminユーザーにALL PRIVILEGES権限を与える。

control+Dでmysql抜けて

$mysql -u kazumin -p

でさっき設定したパスワードを聞かれて、入れればオッケー

で、下のgolangスクリプトを実行すれば、kazuminがgorpデーターベースを作ってくれています。

テーブルとかは、後ほどやっていきます。

感想。

何もトラブルがなかったように書いてますが、RailsとかDjangoを使用していたので、正直MySQLを知らべるのに苦労しました。

特に、権限。権限与えたのに、permissionエラーが出た。

Host名が違う同じ名前のユーザーがいたのが、ツマせる原因だったみたいで、それを見つけるのに苦労しました。

MacのDockerで怒られた。

1年前ぐらい久々に、MacのDockerでdocker run hello-worldすると怒られたので、メモ

  • Dockerの怒り
FATA[0000] Post http:///var/run/docker.sock/v1.17/containers/create: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?
  • 解決策
$ boot2docker start  

でboot2dockerスタート

そしたら

To connect the Docker client to the Docker daemon, please set:
    export DOCKER_CERT_PATH=/Users/kinoshita/.boot2docker/certs/boot2docker-vm
    export DOCKER_TLS_VERIFY=1
    export DOCKER_HOST=tcp://192.168.59.103:2376

って言われたので、

  • .zshrcにexport3行を追記

これで

MacOSでdockerが使えるようになりました。

サーバーによって鍵を分けよう。

学校の課題の一部で、公開鍵設定して、鍵で入れ!ってやつがありまして、その設定メモ

(9か月ぐらい前に、設定したが、忘れたので、自分がぱっと見てわかるように、メモを取りましょう(戒め

  • 名前は、わかるようにつけよう。

yomitanの.ssh/id_rsa.pubに公開鍵があるのだが、肝心の秘密鍵が見当たらない。ファイル名も適当にしちゃったし、configも消しちゃったので、再設定。

  • ファイルを指定して、キーを作成

すでに、いろんなサーバーのキーがあるので、分けて作成するために、-fオプションでfile指定

(鍵のパスを指定しないと、デフォルトで、id_rsaを見るんだっけ?

$ ssh-keygen -f ~/.ssh/id_rsa.yomitan

(権限の設定面倒だな...

  • キーを指定して、ssh
$ ssh -i ~/.ssh/id_rsa.yomitan hoge@ie.u-ryukyu.ac.jp
  • めんどさ解消

毎回毎回、鍵を指定するの面倒なので、~/.ssh/configを設定

Host yoo
  HostName  xxxxxxkyu.ac.jp
  Port      22  
  User      e145702
  IdentityFile  ~/.ssh/id_rsa.yomitan

これで、

$ ssh yoo

で入れる。

MySQLやらなくちゃ〜〜。

MySQLやらなくちゃ〜(10月末までの、database講義の課題)。Golangやりたいなー。ってことで

medium.com

をやっていました。

todoリストを作成するアプリケーションを立てて、jsonポストでtodoを追加したり、削除したりするライブラリです。 todoリストは、webからアクセス可能。

このライブラリを使う際のMysql操作で、

qiita.com

を参考にしてやれば、Mysqlのめっちゃ基本的操作、golangを学べる(詰んだ時に、コードを読むので)と思います。

僕は、kazuminってUserを作成してgrantで権限を与えましたが、出来ず .....

(なんかね。kazuminってuser二人いて、それでダメなのかな。?)

最終的にrootでやりました。w

あと、postできなかった。なんでだろう

package main


import (
    "net/http"
    "bytes"
)

func main(){
    url := "http://localhost:9090/tasks"
    var jsonStr = []byte(`{ "id": "task-id", "periodicity": "@every 1h", "command": "docker run demoApp" }`)
    _,err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))

    println(err)
}

El capitanにしたら、Vimが使いにくくなった話

El capitanに updateすると

vim エディターの文字をカーソルでコピーすることができなくなった。

version:VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Aug 6 2015 19:16:33) MacOS X (unix)

こんな状態だと、vimのコードをぐぐる時に、 直打ちなので、面倒です。

結構放置してたが、いい加減頭にきて、直しました。

mouseの設定は、確か

set mouse=a

でやっていたので、削除。

  • 治った。

めでたし、めでたし。

el capitanにupdateしたのが原因か知らないが、治ってよかった

Swiftyな日々

こんばんは、かずみんです。

最近は、学校のことを重点的にやっているので、

ブログにすることがあまりないのです。

モデリングの授業で、Swiftを使うことになったので、サンプルプログラムを作成しました。

場所: github.com

真ん中のスイッチを押すと、音がなります。

スライドバーで音量を変えられます。

また、スイッチのフリー素材を探すのが、めんどくさかったので、Blenderでつくってみました。 頂点が少ないので、変です。

Swift思ったより楽しいですね。

僕、全然プログラミングできなくて、みんなの方ができるようになると思うので、

結構,他力本願な感じですw

Perlのインクリメントの便利さ・凄さ!

こんにちは、かずみんです。

みんなでPerlしてたときに

Perlインクリメントの凄さを見つけた。

何かは、最後に書きます。

見つけた経緯として

やりたかったことは、

  • 辞書の存在しないkeyに1ずつ足していく。

ここで問題が、

  • 存在しないvalueに1を足せない。

gist.github.com

この問題解決として

  • keyが存在しないなら、0を代入する。存在するなら何もしないって処理が、手前に必要。

こんな処理を書かなくても、インクリメントはすごい便利。

  • インクリメントは、valueがなくても+1してくれる。つまり、変数は1からスタートできる。

gist.github.com

これでコードが短くなりました。

以上、かずみんでした。