write ahead log

ロールフォワード用

gitのfirst commitをビルドする

Git C

興味わいたのでやってみたけど意外とうまくいかなかったのでメモ. ソース自体はgithubにミラーがあって, ここから手に入る. ubuntu trustyの64bit環境でやった. そのまま素直にビルドしようとすると以下のエラーが出た. vagrant@vagrant-ubuntu-trusty-64:~/…

vim-goを使う

vim-go, 使い方がよくわかっていないのでチュートリアルをやってみた. (gocodeのコード補完だけでも便利だけど) チュートリアルは作者さんのを見るのが一番だろうけど, ありがたいことにhnakamurさんが日本語訳してくれている. fatih/vim-go-tutorial hnakam…

テキストでER図を作る記法と処理系を作った

作りました. 実装は正規表現ゴリゴリでアレですが, とりあえず動きます. github.com サンプル こんなのを書いて. system.erdot // estimate print system # Tables // master customers (顧客) id (ID) INTEGER PRIMARY KEY name (顧客名) VARCHAR(100) NOT …

minttyのロケールを設定する

msys2を入れてフォントや透過度を変えて満足して使っていたが, svnをコマンドで使うとロケールがおかしいと怒られた. $ svn update svn: warning: cannot set LC_CTYPE locale svn: warning: environment variable LANG is ja svn: warning: please check th…

SVNで証明書を使う

今更SVNを使う事になったので. 証明書ファイルのパスは絶対パスじゃないと動作しなかった. typoなのか, msys2環境だからなのかはよーわからん. ~/.subversion/serversを以下の通り編集. ssl-client-cert-file = [証明書ファイルのパス] ssl-client-cert-pass…

ubuntuでタイムゾーンの変更

ちょっと古いけど, バージョンは以下でやった. vagrant@vagrant-ubuntu-trusty-64:~$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION="Ubuntu 14.04.5 LTS" 現在のタイムゾーンを確認する. $ t…

Apple Musicへのリクエスト方法

技術ネタじゃないけど. Apple Musicを使ってるんだけど, 欲しい曲が無い時にリクエストの出し先がわからなくて困ってた. やっと見つけたので. iTunes Store Requests どんどん曲数増えればいいなぁ.

goでbrainfuckを書いた

こんな面白そうな記事があったので作ってみた. github.com 全ての最適化を実装するのはちょっとしんどかったので(というか途中で飽き始めた)2段階目まで作った. 実行速度を見ると元記事通り, 明らかに差が出るのが面白い. 試行回数1だけど. $ go test -bench…

CentOS6にOracle 11g XEを入れる

vagrantでCentOS6.7を入れて試している. (CentOS7はちょっと今回スルーで....) 1. ダウンロード ここからライセンス同意すればダウンロードできる. RPMで配布されている. 何気にアカウント登録を求められるのがめんどい... 64bit版しかないけど, 今時32bitも…

Microsoft IMEでON/OFFをCtrl+Spaceに割り当てる

Windows10で. IMEバー右クリック プロパティを開く Microsoft IMEの設定画面で詳細設定ボタンクリック 全般タブ 編集操作 => キー設定の変更ボタンをクリック GridViewのCtrl+SpaceにIME-オン/オフを設定

templateパッケージのblockアクションを使う

テンプレートが定義済みの場合と未定義の場合で処理を分けられる. 割と便利そう. とりあえずコードを置いておく. {{define "layout"}} <html> <head></head> <div> {{block "contents" .}} not found {{end}} </div> </html> {{end}} {{define "contents"}} <h1>contents</h1> {{end}} package main import …

html/templateでカスタム関数を追加する

golangのテンプレートエンジン(html/template)ではデフォルトで組み込み関数が用意されていますが, 物足りない場合は自作する事になります. 考え方 基本は以下です. template.FuncMapを作る(関数名と関数のmap) このmapをテンプレートのFuncs関数に渡して登…

Lubuntuでターミナルを透過させる

いつも小さいディスプレイで作業しているので半透明にならないと辛い. デフォルトのLXTerminalのPreferenceでOpacityを変更しても, デスクトップの壁紙がBackgroundに表示されるだけで全然意味がない. (透明にはなってるけどさ….) xcompmgrを入れる どうもxc…

golangでテンプレートエンジンを使う(その2)

以前, templateパッケージを利用する方法を調べたけど, 構成的な意味でもうちょっと実用的な例が欲しいので書き残しました. コードはgithubに置いておきます. github.com やりたいこと どのページでも使うlayoutをまとめたい 部品的なHTMLを使いまわしたい …

vimのnetrwを使う

vim

vimには標準プラグインとしてnetrwというファイラが付属している. あんまり触ってなかったんだけど,ふと思い立って使い方を調べてみた. 起動 コマンド 機能 :Ex カレントバッファでnetrwを開く :Tex タブを開いてnetrwを開く ディレクトリ移動 操作 機能 Ent…

シェルスクリプトで外部コマンドを組み立てて実行結果を得る

何度も調べたり考えたりしている気がする… 他にももっといい方法があるのかもしれない. 問題 シェルスクリプト内で引数をsha256化した結果を使いまわしたかった. コマンドラインで素直に書くとこんな感じ. echo -n 'pass'| shasum -a 256 | tr -d ' *-' これ…

gitで日本語ファイル名が文字化けする

Git

なんだこれと思いつつ放置していたけど, いい加減不便なので解消した. メモらないとどうせまた忘れる. 対処 現在のリポジトリのみの場合. $ git config --local core.quotepath false ずっと適用したいとき. $ git config --global core.quotepath false な…

Lubuntuを入れたときにやったこと

古いマシンにLubuntuをいれたのでメモ. 快適だし, メインマシンいらないんじゃないだろうか…. 1. lubuntuを入れる Lubuntu 17.0.4をディスクへ焼いてインストール. English設定で入れた. 2. パッケージを更新 $ apt-get update $ apt-get upgrade 3. 日本語…

w3mを使ってみる

テキストブラウザって意外と便利ですね. 使ったことなかったけど. vim, emacsのバインドである程度動くのでそれほど抵抗なく使えると思います. インストール こんなものを使う人はとっくに調べて入れているでしょうが… msys2環境では以下で入れました. $ pac…

vim-table-modeを使う

vim

markdown-vimを使ってみたけど, 高機能すぎたのでもうちょっとシンプルなものが欲しいなぁと. つまるところGFMのテーブルを書くのさえ楽になればmarkdown書くこと自体はそんなに苦痛じゃない. (っていうか, そういうシンプルな記法のはずだし) 良いのないか…

golangでzipを作る

archive/zipパッケージなるものがあります. The Go Programming Language - Package zip 使い方 zipアーカイブは複数のファイルが入るので, 1つのio.Writerから複数ファイルのwriterを作成する構成をとっているようです. zipWriter(io.Writerから作成) write…

curlでRESTっぽくやる時に使うオプション

毎回調べるのめんどくさい. HTTP Methodを切り替える Xオプションを使います. $ curl -X PUT [hostname] パラメータを与える dオプションを使います. GETでもPOSTでも使えるっぽいです. $ curl -d arg=param1 -d arg1=param2 [hostname] ボディへ直接データ…

golangでメールを送る

golangのメールパッケージnet/smtpはなんというか, 非常に薄いです. 他のパッケージも同じで思想がハッキリ出ていますが, smtpパッケージも例外ではありません. おかげでメールの仕組みを学ぶことが出来ました. ただまぁ, メールは外部パッケージ使ったほう…

golang(net/http)でBasic認証する

net/httpでBasic認証を使ったのでスニペットとしてメモ. package main import ( "fmt" "net/http" ) const ( basicAuthUser = "user" basicAuthPassword = "password" ) func main() { http.HandleFunc("/need", needAuthHandler) http.HandleFunc("/unneed"…

goでlifegame書いた

そういや書いたことないな.と思ったので書いた. github.com 作ってみると中々面白く, 色々なパターンを試してみたくなる. 引き込まれるというのも納得である. バグってなけりゃいいけど. (テストとか書いてないし) こんな感じ block glider ハチの巣 参考 ラ…

golangでTwitterもどき書いた

デザインを考える段階でいつも飽きる. リファクタリングもテストも書いてないけど, 自分用のサンプルコードぐらいにはなるしGitHubに入れておいた. github.com

CentOS7でsystemdを使ってgolangで作ったプログラムをデーモン化する

0. 始めに CentOS7で試します. UbuntuでUpstartを使った例の延長です. UbuntuでUpstartを使ってプログラムをデーモン化する 1. プログラムを作る プログラムは前回と同様のサンプルを使います. 挨拶するだけの単純なものです. package main import ( "net/ht…

ubuntuにvim8をソースからインストールする

aptで入れるvimは7系で古かったのでソースから入れた. 1. ソースを取得 # git clone https://github.com/vim/vim 2. ncurses-devを入れる 必要といわれるので # aptitude install ncurses-dev 3. configureを実行 オプションは好みでセッティングなんでしょ…

golangをvimで書くためにプラグイン入れた

プラグインは使わない主義でずっとやってきたけど, 便利すぎるので流石に負けた. ついでにMarkdownも良く書くからプラグイン入れた. 1.Vundleのインストール git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 2. vimrcを編…

退屈だしgolangでmemcachedサーバもどき作った

memcached, 使ったことないけどね. 最近仕事はExcelばかりで, 面白くないので. github.com 感想とか 分散はしないし, クライアントは無いしでなんか中途半端感がある. 本当は分散させたりしてみたいんだけど, 今の自分には厳しそう. DHTとかそのうちやりたい…