2021年9月24日金曜日

カッサ療法

今日は、朝ごはんにハッシュブラウンと目玉焼きとグラノーラを食べた。
コーヒーはマキネッタで作って飲んだ。

昼ごはんはクロワッサンを作った。かぼちゃのポタージュを温めた。 両方とも美味しかった。
コーヒー屋さんに行ってアイスコーヒーとアイスラテを買った。 アイスコーヒーは水筒にいれてもらった。 

夕方にカッサ療法を体験するために代官山周辺に行った。
カッサ療法は思っていたより痛かった。

晩ご飯は豚肉を焼いて、ボルシチとご飯を温めて食べた。

夜は初めてのGraphQLという本を少し読んだ。
その後、テレビを見てる時にスマホを触っていた。
前に行ったことのある店がテレビに出てきたらしく、 妻に声をかけられたが、僕がテレビに注意を向けた時には妻が見てほしい映像は映っていなかった。

コーヒーを水筒に入れていると、水筒にコーヒーの匂いが移る。 水筒を脱臭するために、重曹と水を水筒に入れて脱臭した。

2021年7月29日木曜日

Goの変数名とtestの境界値

Goの変数名 https://qiita.com/kskumgk63/items/f0f0ede86599514ee659 https://micnncim.com/posts/ja/go-naming-convention 境界値のテストをしましょう https://qiita.com/mtskhs/items/c9f69b036f0ab47b617e#table-driven-test%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E5%A2%83%E7%95%8C%E5%80%A4%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF https://www.qbook.jp/column/20180719_646.html

スタンプ

何種類かのスタンプが用意されていて、ユーザーはそのスタンプを自由に選んで、押すことができる。 スタンプを押した際にスタンプが押されたことを保存する 1日に1回スタンプの種類ごとに押されたスタンプの数を集計して、保存する スタンプが押された数の上位3つを表示する。

2013年4月7日日曜日

Vagrantについて

Oracle VirtualBoxをインストール

Virtual Box Old builds

Vagrantをインストール

$ gem install vagrant
1.1以上のバージョンはvagrantのサイトからインストール

vagrantのサイトへ


ダウンロードして、インストーラからインストール
この時、古いバージョンが入ってると消えます。あんど、ディレクトリ構成が変わってるので
前に使ってた仮想環境のboxとか使えなくなります。

でも、gemのvagrant は古いので、vagrantのサイトからインストーラーでインストールするのがいいかもですね。

まず、vagrant init して Vagrantfile作るのがいいかもですね。

$ vagrant init

これで実行すると box name は base  です。指定したい場合は

$ vagrant init test

これで、 boxを構築し終わったときに vagrant box list で test が出てきます。

さらに

$ vagrant init test http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box

で test って box (仮想環境?インスタンス?)に 指定したURLのOSを使います。
今回はcentos6.4ですね。

vagrantにbox(仮想環境のos)を追加の仕方
$ vagrant box add %name% %url%

ここから(Vagrantbox.es)、OSのイメージを選ぶ


※ただ、ここからインストールしたものが必ずしも安全ってわけじゃないので

veeweeってので、自分のboxを簡単に作れるみたい


vagrantにbox(osの)を追加
$ vagrant box add basebox  http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130309.box
追加されたか確認
$ vagrant box list
basebox
初期設定 Vagrantfile が生成される
$ vagrant init basebox
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
設定した仮想環境を起動する
この時に自動で環境設定も行われる
$ vagrant up
接続 起動した仮想環境にssh接続する
$ vagrant ssh
再起動 haltしてupするだけ
$ vagrant reload
停止 仮想環境を止める
$ vagrant halt
削除 ※よくわかってないけど 消すんだろうw
vagrant destroy
boxから削除 vagrant box listしてでてこなくなる
vagrant box remove basebox

Vagrant Docs

詳しくはこちらってやつです。がんばって英語を読んでください。
vagrant docs 1.0.x系
vagrant docs 1.1.x系

github

github.com/mitchellh/vagrant

sahara

sandbox rollbackできるプラグイン
vagrant1.1.x系ではforkしたバージョンしか動かない
github.com/ryuzee/sahara
↑使い方

vagrantfile

sshアクセスできるようにする

デフォルトのVagrantfileのコメントアウトをはずして

~/.ssh/configに仮想サーバの情報を登録する

$ vim Vagrantfile

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

$ vagrant ssh-config --host basebox

$ vagrant ssh-config --host basebox >> ~/.ssh/config

$ ssh basebox

2013年4月4日木曜日

Mac OS X でrubyのバージョン管理

Mac OS X でrubyのバージョン管理

rbenvを使います。 そのために、opensslとreadlineとlibyaml入れます。
# brew 入れてない場合入れて /usr/local に入ります
$ /usr/bin/ruby -e "$(/usr/bin/curl -fsSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)"
# 指定の場所 ~/brew 以下とかに入れたい場合
$ git clone https://github.com/mxcl/homebrew.git ~/brew

# OS X に標準添付されている opensslは、SEGV を引き起こす事があるため
$ brew install openssl

# OS X 標準添付の readlineは libedit なので
$ brew install readline

# 標準添付ライブラリの yaml パーサーの psych に必要
$ brew install libyaml

rbenvをgithub から インストールする

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ mkdir -p ~/.rbenv/plugins
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

~/.bashrc に以下の行を追加

$ vi ~/.bashrc
  export PATH="$HOME/.rbenv/bin:$PATH"
  eval "$(rbenv init -)"
# 設定し終わったら
$ source .bashrc

インストールできるrubyのバージョンを確認する

$ rbenv install --list

ruby buildを使ってruby をインストールする

$ RUBY_CONFIGURE_OPTS="--enable-shared --with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl) --with-libyaml-dir=$(brew --prefix libyaml)"  rbenv install 1.9.3-p429

$ RUBY_CONFIGURE_OPTS="--enable-shared --with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl)"  rbenv install 2.0.0-p0

$ RUBY_CONFIGURE_OPTS="--enable-shared --with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl)"  rbenv install 2.0.0-p195

インストールしたrubyを確認する

$ rbenv versions

バージョンを指定してrubyを有効にする

$ rbenv global 2.0.0-p0

pathを通るようにしておく

OS X なら /etc/paths に /Users/<ユーザ名>/.rbenv/shims を先頭に書いてあげて、pathが通るようにしておく

余談

というかメモ
# ちなみに、これを書いたときの brewのstableのrubyは 2.0.0-p0でした
$ brew info ruby
ruby: stable 2.0.0-p0, HEAD

# rbenv入れる前にインストールされてたrubyのバージョン
$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.4.0]

# gem list rubyのバージョンによってgem listは変わる
$ gem list

*** LOCAL GEMS ***

archive-tar-minitar (0.5.2)
bigdecimal (1.1.0)
chef (11.4.0)
childprocess (0.3.9)
diff-lcs (1.1.3)
erubis (2.7.0)
ffi (1.6.0)
highline (1.6.16)
i18n (0.6.4)
io-console (0.3)
ipaddress (0.8.0)
json (1.5.4)
log4r (1.1.10)
mime-types (1.21)
minitest (2.5.1)
mixlib-authentication (1.3.0)
mixlib-cli (1.3.0)
mixlib-config (1.1.2)
mixlib-log (1.4.1)
mixlib-shellout (1.1.0)
net-scp (1.0.4)
net-ssh (2.6.6, 2.2.2)
net-ssh-gateway (1.2.0)
net-ssh-multi (1.1)
ohai (6.16.0)
rake (0.9.2.2)
rdoc (3.9.4)
rest-client (1.6.7)
rspec (2.11.0)
rspec-core (2.11.1)
rspec-expectations (2.11.3)
rspec-mocks (2.11.3)
systemu (2.5.2)
vagrant (1.0.7)
yajl-ruby (1.1.0)

# そして
$ rbenv shell 1.9.3-p392
$ ruby -v
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin11.4.2]

$ gem list

*** LOCAL GEMS ***

bigdecimal (1.1.0)
io-console (0.3)
json (1.5.5)
minitest (2.5.1)
rake (0.9.2.2)
rdoc (3.9.5)

# vagrant(ベイグラント)を入れてみる
$ gem install vagrant

# えっw
$ vagrant
bash: vagrant: command not found

# gem install とか uninstall とかの度に必要になってくる
$ rbenv rehash

# 使えるようになる
$ vagrant

    -v, --version                    Print the version and exit.
    -h, --help                       Print this help.

Available subcommands:
     box
     destroy
     gem
     halt
     init
     package
     provision
     reload
     resume
     ssh
     ssh-config
     status
     suspend
     up

For help on any individual command run `vagrant COMMAND -h`

# めんどいので 下記を入れて 自動で rehashしてくれるようにする
$ gem install rbenv-rehash

# rehashされて、使えるようになってますね。
$ rails -v
Rails 3.2.13

おしまい

2013年3月30日土曜日

Chef Solo

Chef Server + Chef Client を 気軽に試せるのが Chef Solo


Chef の インストール


# from source むしろopscodeから
$ curl -L http://www.opscode.com/chef/install.sh | sudo bash
#  gem
$ gem install chef

リポジトリ作成

opscodeのクックブックのひな形を取得

$ git clone git://github.com/opscode/chef-repo.git
# forkしといたので
$ git clone https://github.com/yanap/chef-repo.git

クックブックの作成 with knife

knifeの初期設定、とりあえず、全部デフォルト

$ knife configure
# 実行したら色々でてくるけど、とりあえず、デフォルトで

クックブックの作成

$ cd chef-repo/
$ knife cookbook create moi -o cookbooks

クックブックの編集

$ vi cookbooks/moi/recipes/default.rb

moi chef code

Chef Soloの実行

knife-solo

$ gem install knife-solo

※途中ですね

2013年2月26日火曜日

git flow まとめ

git flow

install


$ brew install git-flow

 git flow
 usage: git flow 
 
 Available subcommands are:
     init      Initialize a new git repo with support for the branching model.
     feature   Manage your feature branches.
     release   Manage your release branches.
     hotfix    Manage your hotfix branches.
     support   Manage your support branches.
     version   Shows version information.
 
 Try 'git flow  help' for details.

git flow init

  Which branch should be used for bringing forth production releases?
     - master
  Branch name for production releases: [master] 
  Branch name for "next release" development: [develop] dev
  
  How to name your supporting branch prefixes?
  Feature branches? [feature/] 
  Release branches? [release/] 
  Hotfix branches? [hotfix/] 
 Support branches? [support/] 
 Version tag prefix? [] v

git flow feature

feature ブランチの流れ
  #機能追加を始めますよ
  $ git flow feature start [-F]  []
  
  #編集してコミットする
  $ git commit -a -m 'add code' 
  
  $ git checkout dev && git pull

  $ git checkout feature feature/

  #機能追加完了
  $ git flow feature finish [-rFkDS] [] # -k で branchが消えない
  
 #pull
 $ git pull
 
 #リモートのdevブランチにpush
 $ git push
git flow feature で使えるコマンド

git flow  help
  git flow feature [list] [-v]
  git flow feature start [-F]  []
  git flow feature finish [-rFkDS] []
  git flow feature publish 
  git flow feature track 
  git flow feature diff []
  git flow feature rebase [-i] []
  git flow feature checkout []
  git flow feature pull [-r]  []

git flow hotfix

 git flow hotfix start [-F]  []
 working...
 $ git add 
 $ git commit
 $ git checkout dev && git pull # 最新にしとく
 $ git checkout master && git pull # 最新にしとく
 $ git flow hotfix finish [-Fsumpk] 
 # master と dev にマージされてtagができるから 
git flow hotfix で使えるコマンド finishするまでの間にmasterが更新された場合は諦めてマージするのが正しい pull --rebaseもNG fetch & rebaseだからね rebaseはcommitIDを変える dev, masterが古かったことに気付いたときは、一旦dev, masterをcheckoutし直してfinishをやり直すと言う方法もある (git flow hotfix finish -k hogeでhotfixブランチを残しておけばそれも可能) ※masterを更新しわすれたりしたとき
$git fetch; git rebase -p origin/master
-pはhotfixのマージコミットを残す。

# dev
git fetch; git rebase -p origin/dev

git flow release

  #devブランチとmasterブランチを最新化しておく
 $ git pull
 #devブランチでsubtreeをpullする (最新化する)
 $ git subtree pull --prefix=shared git@github.com:yanap/frma-shared.git master
 #pushする
 $ git push
 #リリースブランチをはじめる
 $ git flow release start 1.0.1
  #リリースブランチをおわる
 $ git flow release finish 1.0.1
 #タグを確認する
 $ git tag -n
 #pushする
 $ git push origin master
 $ git push origin v1.0.1
 #途中コンフリクトがおきたとき
 $ git checkout --theirs
 $ php -l 
 $ git add
 $ git commit
 #でなおして途中で終了してしまうので消してやり直すかcheckoutしなおして finishからやり直す

参考

見えないチカラ: A successful Git branching model を翻訳しました
successful Git branching model を補助する git-flow を使ってみた - Twisted Mind
ぼくが実際に運用していたGitブランチモデルについて ::ハブろぐ

2013年2月25日月曜日

git まとめ

gitを使ってみて良く使うことだけをまとめる

git --help

git コマンド一覧がでてくる

git command --help

git コマンドごとの詳しい説明がでてくる
でも、英語なので、ここで理解できずにggrことになる

git clone

git clone git@github.com:yanap/dotfiles.git
リポジトリを自分のパソコンにダウンロードする

git add

新規作成したファイルをgitに追加する

git commit

その時点での進捗具合をセーブす的なコマンド
セーブした所にすぐ戻れる

git commit -a

addを同時に行う

git commit -a -m "comment"

addとコメント入力を同時に行う

git commit -a -m "comment" --dry-run

ドライラン

git commit --amend

セーブするポイントを間違えたときにセーブを上書きする

git push origin [local<branch>]:[remote<branch>]

git push origin dev:dev

local branch : remote branch

でも、普段はlocal branchは省略しても大丈夫なので
git push origin dev

remote branchを消したいときは
git push origin :delete_branch
NULL:delete_branch
NULLを対象のremote branchにpushするので、指定された
remote branchは削除される

git checkout

git checkout [<branch>]

git checkout master 作業環境をmasterに変える
git checkout dev 作業環境をdevに変える

git checkout -b [<branch>]

ブランチ作成とブランチ切り替えを同時に行う

git checkout -t origin/[<branch>]

リモートにあるブランチをローカルにダウンロードすると同時に
ブランチを切り替える。

git pull origin [remote <branch>]

remoteのbranchをダウンロードしてlocalのbranchにマージする
git pull origin devはgit fetach origin dev
してgit merge origin dev している





2013年1月19日土曜日

sublimetext2の設定を追加 rubyの自動エンコーディングとタブをスペースに変換する


http://ntcncp.net/2012/12/21/sublime-useful-tips

を参考に

Auto Encoding for Ruby

を入れた

あと

を参考に

Tabを入力したら、スペースになるようにしましたよ

設定ファイルはDropboxに置いてる。

PHPは今のプロジェクトがタブでインデントしてるんで

~/Dropbox/Sublime Text 2/Packages/PHP/PHP.sublime-settings

{
    "tab_size": 4,
    "translate_tabs_to_spaces": false
}

Rubyは

~/Dropbox/Sublime Text 2/Packages/Ruby/Ruby.sublime-settings
{
    "tab_size": 2,
    "translate_tabs_to_spaces": true
}

にした。

Preferences > Settings - More でも出てくるけど
Rubyはでてきたけど、PHPでてこなかったので
ターミナルから開くか
Preferences > Browse Packages で Finderから開くか

2012年12月30日日曜日

iterm2で画面分割


iTerm2は、複数のセッションを複数の"ぺイン(窓枠)"にcmd+dやcmd+shift+dで分割表示する事ができます。ペイン間の移動は下記のショートカットになります。
  • cmd+opt+←:左のペインに移動
  • cmd+opt+→:左のペインに移動
  • cmd+opt+↑:上のペインに移動
  • cmd+opt+↓:下のペインに移動
  • cmd+[:前ペインに移動
  • cmd+]:次ペインに移動
ウィンドウを閉じるのは exit

2012年12月17日月曜日

メモ


{
"color_scheme": "Packages/RailsCasts Colour Scheme/RailsCastsColorScheme.tmTheme",
"theme": "Soda Dark.sublime-theme",
"font_face": "Monaco",
"font_size": 14.0,
// 改行でのフォーマットをしない(日本語変換の確定のため) for Emmet
"disable_formatted_linebreak": true,
"disable_tab_abbreviations": true
}

2012年12月14日金曜日

Sublime Text 2 Dropbox 同期 Script


Sublime Text 2 のパッケージを Dropbox において置く事で

例えば、仕事場で同期させた設定で家で使えるようにする

スクリプトを書いた。

githubのURL

git clone して使ってください。

git clone git@github.com:yanap/tools.git

git clone https://github.com/yanap/tools.git

./sublime-packages-sync-to-dropbox.sh

いけてないのは、ローカルからDropboxにパッケージをコピーするときに

いっぱいあると重い

2012年12月9日日曜日

sublime text2でコメント内で日本語入力ができなくなった

おかしいなと思ってたけど

// 改行でのフォーマットをしない(日本語変換の確定のため) for Emmet
"disable_formatted_linebreak": true

Emmetの設定やけど、これで、DocBlockr入れてても、コメント内で日本語うてる

と思ったけど

// ああああ
はいけるけど

/**
 * ああああ 
 */
は無理だわ。

2012年12月4日火曜日

mac キーリピート

システム環境設定 → キーボード


キーリピートの速さ 現在の設定を表示

defaults read NSGlobalDomain KeyRepeat 

キーリピート開始までの早さ 現在の設定を表示

defaults read NSGlobalDomain InitialKeyRepeat
キーリピートの速さ 1 に設定する(小さい程速い)

defaults write NSGlobalDomain KeyRepeat -int 1
キーリピート開始までの早さ 10 に設定する(小さい程早い)

defaults write NSGlobalDomain InitialKeyRepeat -int 10
キーリピート入力認識までの時間

git 補完 設定 (bash)

git 補完

やっと、gitのコマンドをうつときにターミナル(bash)で補完するするように設定した。

まず

home brew が使える前提で gitが入ってる前提で 使ってるPCがMacっていう前提で

brew install bash-completion

 /etc/bashrc に下記を追加
 # bash_completion                                                                                                                    
 BASH_COMPLETION=/usr/local/etc/bash_completion                                                                                                                  
 BASH_COMPLETION_DIR=/usr/local/etc/bash_completion.d                                                                                                                
 BASH_COMPLETION_COMPAT_DIR=/usr/local/etc/bash_completion.d                                                                                                                  
 if [ -f /usr/local/etc/bash_completion ]; then                                                                                                            
     . /usr/local/etc/bash_completion                                                                                                             
 fi
https://github.com/yanap/dotfiles/blob/master/.bashrc

git-completion.bashがなかった時


とってきて

sublime text2 設定

sublime text 2 設定


http://www.sublimetext.com/

package


package control を設定してsublime text2上で色々なパッケージをインストールできるようにする。

http://wbond.net/sublime_packages/package_control/installation

view -> show console



import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'

をあれする。
http://wbond.net/sublime_packages/package_control/usage

そして、sublime text2を再起動する

そしたら、⌘+Shift+Pしてinstallを小窓に入力したら、パッケージインストール画面にいける。

short cut

Command PalletCommand + Shift + p
画面分割Command + alt + 1〜4
project内検索Command + P
ファイル内検索Command + F
regexCommand + alt + F で置換
フォルダを指定して search and regexCommand + Shift + F
タブ追加Command + t
タブ移動Command + alt + <- or ->
function searchCommand + R

不可視文字

デフォルトだと選択すると見えるようになる
常に見たいときは下記を設定する
 "draw_white_space": "all" 

文字コード

文字コードはデフォルト utf-8 だったので、変えなくていいはず

キーバインドをvimに

 "ignored_packages": []

DropBoxで同期しよう

※主にこれのために書いた

http://wheels.onebuttonapps.net/2012/04/use-dropbox-to-store-your-sublime-text-2-settings/


On OS X (Mac)

  1. First close Sublime Text 2
  2. In your Dropbox folder (usually it’s at “~/Dropbox/"), add a folder called “Sublime Text 2"
  3. Go to your Sublime Text 2 settings (this is usually at “~/Library/Application\ Support/Sublime\ Text\ 2/")
  4. Copy the following 3 folders into “~/Dropbox/Sublime\ Text\ 2/ "
    • "Installed Packages"
    • "Packages"
    • "Pristine Packages"
  5. Rename the 3 original folders in “~/Library/Application\ Support/Sublime\ Text\ 2/" or delete them.
  6. Next go back to Terminal
  7. From the command line type “cd ~/Library/Application\ Support/Sublime\ Text\ 2/" 
  8. "ln -s ~/Dropbox/Sublime\ Text\ 2/Installed\ Packages ./Installed\ Packages"
  9. "ln -s ~/Dropbox/Sublime\ Text\ 2/Packages ./Packages"
  10. "ln -s ~/Dropbox/Sublime\ Text\ 2/Pristine\ Packages ./Pristine\ Packages"
Start Sublime Text 2 and you’ll be linked to Dropbox.
On your other devices do
  • "mv ~/Library/Application\ Support/Sublime\ Text\ 2/Packages/User /tmp"
  • "ln -s ~/Dropbox/Sublime\ Text\ 2/Packages/User ~/Library/Application\ Support/Sublime\ Text\ 2/Packages/User"

要は終了してシンボリックリンク貼って起動して同期させるだけですわ。

Quit
  1. cd ~/Library/Application\ Support/Sublime\ Text\ 2/
  2. rm -rf Installed\ Packages Packages Pristine\ Packages
  3. ln -s ~/Dropbox/Sublime\ Text\ 2/Installed\ Packages ./Installed\ Packages
  4. ln -s ~/Dropbox/Sublime\ Text\ 2/Packages ./Packages
  5. ln -s ~/Dropbox/Sublime\ Text\ 2/Pristine\ Packages ./Pristine\ Packages
Start

1. git@github.com:yanap/tools.git

2. ./sublime-packages-sync-to-dropbox.sh

で、できるshellを書いた。

https://github.com/yanap/tools