write ahead log

ロールフォワード用

CentOS7にMariaDBを入れる

最初から入ってるかもしれない. 簡単だったけど, やったことなかったしメモ. 1. yumでインストール 入ってたら必要なさそうだけど. # yum install mariadb mariadb-server 2. エンコーディング指定を変える UTF8へ. 必要ならどうぞ. # vi /etc/my.cnf [mysql…

DBマイグレーションツール gooseを使う

データベースのマイグレーションツールで自分に合ったのを探していて, 割といいのを見つけたので使い方をメモしておく. 自分としては SQLで書ける 開発言語に依存しない 開発環境に依存しない テストデータ投入まで規約がある を備えているのが欲しかった. g…

CREATE TABLEで制約(Constraint)を付けたり外したり

SQL

追加する方法は知ってても, 削除する方法を知らなかったりする. そんな制約ですが, 何度調べても忘れるのでメモします, はい. MySQLでやります. テーブル例 例がないと困るので適当に用意しました. 会社と部署にしましょう. CREATE TABLE company( id INT PR…

LinuxからWindowsネットワークにアクセスする

要するに, CentOS7からSambaでWindowsネットワークをマウントしたい. 1. とりあえずsambaクライアントを入れる. # yum install samba-client cifs-utils 2. Firewall許可対象へ追加 # firewall-cmd --permanent --zone=public --add-service=samba 3. 共有フ…

CentOS7のKVMにCentOS7(ゲスト)をインストールする

CUIでやります. 0. KVMの設定 過去の記事に譲ります. 1. イメージをダウンロード ISOファイルが無いと始まらないのでダウンロードします. CentOS 上記から好きなバージョンを選べばよいかと. 今回はCentOS7で. # mkdir /var/lib/libvirt/iso # cd /var/lib/l…

golangで実行中のOSの種類を判別する

簡単だった.ポータビリティがすごい. package main import ( "fmt" "runtime" ) func main() { switch runtime.GOOS { case "windows": fmt.Println("running on Windows.") case "darwing": fmt.Println("running on Mac OSX.") case "linux": fmt.Println(…

vimrcを変えた

golangを良く書くようになってきたので, gofmtを保存時に自動実行するようにした. あとはMarkdownでfolding出来ると便利とようやく気付いたのでfoldingを足した. (今まで使ってなかったんですよね…) プラグインはホントわけわからなくなりそうなので極力使い…

UbuntuでUpstartを使ってプログラムをデーモン化する

golangで簡単なHTTPサーバを作ってこれをデーモン化してみましょう. 今後はSystemdが主流に代わっていくのでしょうが, まだまだUpstartも多いと思います. 1. サンプルプログラムの準備 サンプルプログラムは以下のような簡単なものです. Helloを挨拶してくれ…

golangで画像を扱う(imageパッケージを使う)

書店でInterface 5月号を見つけて, 画像処理が懐かしくなったので. (つい買ってしまった.他にも車載用OSとか面白いしね.) golangにもimageパッケージという2D画像用ライブラリが標準で備わってるようなのでちょっと使ってみる. 1. 概要 golangの他の標準パッ…

msys2(msys2-launcher利用下)で環境変数を引き継ぎたい

msys2を使っているとwindows標準の環境変数が引き継がれなくてしょんぼりする. 探していると対処法があるそうでめもらんだむ - MSYS2 で PATH が引き継がれない この記事はホントにありがたかったんですが, msys2-launchar使ってるせいか, うまくいきません…

Docker Toolboxを使ってWindows10 HomeでDocker環境を構築する

DockerをWindowsで使おうとするとHyper-VのあるProfessional以上の環境を要求されます. まぁ, 買えばいいんですが, そうはいってもない状況で使いたい場合もあるんですね. そういう方はVirtualbox上で構築できるDocker Toolboxというものがあるそうです. そ…

golangでcontextパッケージを使う

使わないから全然覚えられない. とりあえずサンプルを書いて覚えておく. 詳細や思想はdeeeetさんの記事が非常にわかりやすいのでこれ読めばそれでいいと思う. 大雑把な理解 context.Backgroundでcontextを作るか, よそからもらってきたcontextを使って With*…

golangでテンプレートエンジンを使う

【追記】もうちょっと例が欲しくなったので, その2も書きました golangではテンプレートエンジンが標準で用意されています. なんだけど, ちょっと癖があって僕はすぐにはなじめなかった. まぁ, テンプレートエンジンなんて慣れの問題な気がするけど. 調べな…

golangでRDBMSを扱う(MySQLの例)

まぁ, ドキュメント読めという話なんですが. 一々例を載せたら長くなってしまいました. とはいえ, 僕の様なコピペプログラマにはこれくらいしておいた方が… 準備 まずは有難くパッケージをgo getします. go get github.com/go-sql-driver/mysql 操作方法 で…

Windows10にPostgreSQLを入れる

Windowsに入れたことないので, メモ書き. ダウンロードする PostgreSQLの公式へ行くと, インストーラは別の場所で配布されているらしい. ここからダウンロードしてインストールした. インストールする 基本「Next」押しただけ. パスワードは普通に設定します…

golangのimport文で別名つける

golangのimport文は別名をつけることができる. 普通のimport文は package main import ( "fmt" //ここ ) func main() { fmt.Println("hello") } こんな感じで文字列でパッケージ名を指定するだけ. 別名をつける場合には以下のようになる. package main impor…

vimでよく忘れるやつらの一部メモ

vim

すぐ忘れるのでググるのめんどくさい. 下のほうには便利だけど職場でも知られてない可哀想なやつを入れた. (そもそもvim使う人ほとんどいないけど…) つーか, 実践vimとか読んだほうがいい.(俺, 何年使ってんだこのエディタ…..) ノーマルモード コマンド 内容…

golangでバイナリを操作する

golangは低レベルな処理(バイナリの取り扱いとかね)もちゃんと行うことができる. 基本(byte型を使う) golangは組み込みでbyte型が用意されている. これはその名の通りバイトを扱うための型で, 配列やスライスにすれば単純なバイトストリームを扱える. packag…

golangでfnvハッシュ関数を使う

FNVハッシュ関数は64bit or 32bitでの出力を行うことができるハッシュ関数です. SHAシリーズ(SHA-1など)やMDシリーズ(MD5など)などとは異なり, 衝突耐性よりも実装が効率的な事を重視しているっぽい. 逆にセキュリティなどを重視するところでは使っちゃダメ…

ピアソンハッシュ関数(?)を書いてみた(golangで)

子供が熱出して休暇もらったので, おかあさんといっしょを見ながらこれ書いてます. わけあって8bit出力のハッシュ関数を探していたんですが, 流石に標準ではなさそうなので簡単でそこそこ良いものを探していました. (32bitならFNVがありました.そのうち使い…

Windows10のスタートアップフォルダの場所

毎回調べないとならなくなってきて鬱陶しいのでメモ. Windows7と8でもたぶん同じ. C:\Users\ [ユーザー名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

golangで端末で使う単語帳を作った

作った. 学生の課題みたいですね. github.com これは何 端末上で使う単語帳です. こんな感じのデータを用意すると こんな感じになります. 実際にタイプしたり考えたりしないと覚えられないので, 作りました. ブラウザ上でもよかったのですが, 個人的事情で端…

golangでシグナルをハンドリングする

golangでコマンド作ってもctrl + cとかで止めたくなるじゃないですか. ちょっと調べた. package main import ( "fmt" "os" "os/signal" "syscall" ) func main() { sig_ch := make(chan os.Signal, 1) signal.Notify(sig_ch, os.Interrupt, syscall.SIGHUP, …

golangでtsv(csv)を読む

探せばいくらでも出てきそうだけど,メモしておく. コード見たほうが早いと思うので. package main import ( "encoding/csv" "fmt" "log" "strings" ) func main() { // テスト用文字列 str := "test\tテスト\nHello\tこんにちは" // CSVのReaderを用意 r := …

Windows10上のMSYS2でRictyを使う

面倒なので手順だけ. URLは変わるかもしれない. $ mkdir ricty $ cd ricty $ wget http://www.rs.tus.ac.jp/yyusa/ricty_diminished/ricty_diminished-4.0.1.tar.gz $ tar xvf ricty_diminished-4.0.1.tar.gz $ start . フォントをダブルクリックしてインス…

Windows10でDockerを使う

自宅のPCをWindowsにした直後に「そうだ, docker使ってみよう」とふと思いついた. 必要なものと前提 まず, WindowsにおいてはDockerは2種類あるようだ. VirtualBox上のLinux + docker(Docker Toolbox) Hyper-V上のLinux + docker(Docker for Windows) Docker…

App Engine + Golangでチートシートを作るだけのアプリを作った

作った. https://cheat-sheet.tech だって面倒なんだもの チートシートって 便利な割に作るのが面倒. 他人が作ったものはしっくりこない っていうパターンにいつもなるので, 多少は楽が出来るものを作りました. どんなものか Markdownの劣化版みたいな記法で…

vsftpdでディレクトリが削除できない

WindowsからFTPクライアントで(私の場合はエクスプローラで)ディレクトリを削除しようとすると以下のエラーが出た. 550 Create directory operation failed. 本当に原因がわからなくて30分くらい悩んだのだけど,どうも.付きのファイルがFTPで取得できていな…

golangでオブジェクトをシリアライズしたい

cacheに乗せたい時やちょっとしたものを作るときには簡単にシリアライズ/デシリアライズできる パッケージがあると便利だ. gobパッケージを使うと簡単にできるようだ. rpc向けのパッケージらしい. 他ではencoding/jsonやencoding/xmlだろうか.ここら辺はググ…

golangのtime型のゼロ値はどうやって判定するのか

と思ってちょっとググったらちゃんと公式に記載があった. time - The Go Programming Language 1年1月1日の0時だそうだ.特に驚かない. ここがこの言語のいいところだと思う. (Rubyにも驚き最小の法則ってあったね) いちいち判定に上記時刻を使うのは面倒なの…