2011-07 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2011-07-31 (日)

Lion で Emacs-23.3 をソースからビルド出来ない件を解決できた [Emacs][OSX]

Lion にバージョンアップしたら [2011-03-10-1] の方法でビルド出来なく
なってしまいました。

Macports とか Homebrew の情報はあったのですが、「ソースからビルド」
の情報は見つけられなかったので、ここにまとめます。

続きを読む

ワインメモ「カルムネール・レセルバ」 [Wine]

ワインって、なかなか名前覚えられないよね。
ってことでメモメモ。

画像
カルムネール レセルバ
原産国: チリ

コクがあり、ほどよい甘さのワインで美味しかった。
次は辛口のワインが飲みたいな。

2011-07-26 (火)

Macports から Homebrew への移行と、Homebrew の使い方まとめ [Homebrew][OSX]

Macports [2011-01-27-1] は便利と言えば便利なのですが、パッケージに
依存関係があると、既に /usr/bin とかにインストール済みのコマンドで
も構わずインストールしてしまいます。

同じコマンドが複数存在することになり気持ち悪いですし、何よりインス
トールに時間がかかるので、評判のよい Homebrew に移行することにしま
した。

Homebrew のインストール方法は Installation - GitHub をご覧下さい。

Homebrew は /usr/local 以下にインストールされます。そのため、root
権限がなくても staff group に所属してさえいれば、各種 Formula(=パッ
ケージ) をインストールできます。

私がよく使いそうなコマンドはこんな感じです。詳細は "man brew" してね。

- Homebrew 自身のアップデート

% brew update

- インストール済みの Formula で最新でないものを確認。

% brew outdated

- インストール済みの Formula の一括アップデート

% brew upgrade

- Formula を検索する

% brew search <Formula Name>

- Formula の情報を得る

% brew info <Formula Name>

- Formula をインストールする

% brew install <Formula Name>

- Formula をアンインストールする

% brew remove <Formula Name>

- インストールしてある Formula をすべて表示

% brew list


"brew update" は内部で "git pull" 相当のことをやっているだけです。
うーん、シンプル。

Formula は ruby で書かれており、Formula の知識がなくても何となく分
かるくらい平易です(例: /usr/local/Library/Formula/wget.rb)。他のパッ
ケージ管理システムに比べると、カスタマイズの敷居がめちゃめちゃ低い
ですね。

インストール後の配置もまたシンプルで素晴らしいです。

wget-1.12 の場合は prefix を /usr/local/Cellar/wget/1.12/wget にし
て make install しています。で、/usr/local/bin に置くのはシンボリッ
クリンクだけ。

/usr/local/bin/wget -> ../Cellar/wget/1.12/bin/wget
/usr/local/Cellar/wget/1.12/wget/bin/wget


余談になりますが、以前 Solaris9 環境の管理者をしていた時に似たよう
なことを考えたことがありましたが、面倒すぎて実際にはやりませんでした。

ただ、ちょっと変な点もあります。/usr/local/share/info/dir は最後に
インストールした Formula の dir になるようです。あと、私の環境では
/usr/local/share/locale/* が全て gnupg の概ディレクトリへのシンボリッ
クリンクになっていました。

でもまあ、大した問題でもないので、しばらく使い続けることにします。

あ、Macports のアンインストール方法は MacWiki - MacPorts
「MacPorts を再インストールしたい」を参考にして下さい。これで
/opt/local を捨てられますね!

参考情報:
Mac Explorer| Homebrew - Mac OS X 用スマートなパッケージ管理システム

2011-07-21 (木)

キラキラ号で安眠するための5つのポイント

キラキラ号に乗って RubyKaigi から帰ってきました。

[2011-05-03-1] の続きになります。
「体をできるだけ水平にする」ことがポイントです。
それではいってみましょうか。


1. ヘッドレストを外す。



みんな付けたままなのですが、顎は苦しくないのでしょうか。。。
キラキラ号-頭


2. リクライミングは最大にする。



後ろの人に一声かけるとかして、なんとしてでも最大にして下さい。トイ
レ休憩の時は元に戻します。

で、そのトイレ休憩なんですが、必ず外に出た方が良いでしょう。ストレッ
チとかすると、またよく眠れます。エコノミークラス症候群対策にもなり
ますね。飲み物がなくなっていたら、しっかり補給しましょう。


3. 靴と靴下は脱ぐ。



寝ている時に足の裏から不快な熱が逃げるらしいです。実際その通りです。


4. フットレストは使わない。



足下の空間が狭くなり、足を伸ばせなくなるためです。レッグレストは使
います。足を固定化できます。足を宙に浮かせるとベターです。
キラキラ号-足

でも背が高い人はどうやっても足を伸ばせませんよね。ご愁傷様です。。。
夜行バスに関しては、背が高いことは何のメリットもありません。


5. 腰を浮かせない。



腰が浮いたままだと、寝ていてとっても疲れます。
取り外したヘッドレストを使うと良いかもしれません。


P.S.
プラモデルが出てました。。

この記事に言及しているこのブログ内の記事

『成金』を読んだ [Book]



RubyKaigi の行きの新幹線の中で読みました。そんなにうまくいくものか
なあというのが正直な感想です。「拝金」[2010-07-04-2] の方がスピード
感があって好きですね。

RubyKaigi2011 に参加してきた [Ruby][勉強会]

画像

ここ 3 ヶ月で書いた Ruby コードはわずか 40 行ではありますが、最初で
最後の RubyKaigi に参加して来ました。印象に残ったセッションを書き留
めておきます。


(1) 組込みシステムのための動的コンポーネント機構とVMの最適化



オリジナルの Ruby をなるべく手を加えずにに移植する、つまりハッキン
グですね。私はこういうの好きですねえ〜。オリジナルに手を加える量が
少なければ少ないほど興奮しますw

そういう意味では elisp の advice や eval-after-load、hook なんかも
好きです。


(2) 軽量Ruby



こちらは Matz さん本人が関わっている組み込み Ruby 。(1) と違って、
Ruby にバリバリと手が加えられています。

軽量化するために、Ruby を極限まで削り取ったり、高速化可能であればハー
ド化(Ruby チップ)したりするそうです。

VM を介して使うため中間コードに変換する必要があるそうです。いっその
こと、Ruby のコードを実行可能なコード(ELFとか)に変換すればいいんじゃ
ないかと思ったのですが、そういう訳にはいかないのでしょうか。

いずれにせよ、組み込みの分野で Ruby が使える日もそう遠くないのかも
しれません(?)


(3) その他もろもろ



「Ruby遺産とレガシーコード修理技術」は tDiary の話だと思っていなかっ
たので、予想外でうれしかったです。本当に tDiary が好きなんだなあ。。
懇親会では、ただただしさんとも少しお話し出来ました。

Matz さんのプレゼンももちろん面白かったです。内容は要約すると
「Ruby 最高!」でしたw

隠れた収穫としては、Ruby 界隈ではテスト駆動開発が当たり前になってい
ることを知れたこと。実際にやっているところを初めて見ました。自分の
仕事でも真似しないと。。。

全体的にプレゼンがうまい人が多かったのも印象に残りました。良くある、
テキストで埋め尽くされたプレゼンは少数派で、画像や動画、グラフ、テ
キストが1つか2つというパターンが多数派に思えました。ちょうど
プレゼンテーション zen を読み終えた後だったので、なおさら目に付いた
のかもしれません。

懇親会への道中、あの keysnail の作者である @stillpedant さんとお話
しできました。Firefox から Chrome に乗り換えた [2011-06-03-1]
バレてました。すみませんw

2011-07-07 (木)

Dropbox ライクなストレージ、SpiderOak を登録してみた

Dropboxライクなストレージ、SpiderOakの無料プランが上限50GBになっていた

無料プランの上限が最大 50GB になったそうなので、登録してみました。

Dropbox は ~/Dropbox を Sync,Share できるのに対して、
SpiderOak は任意のフォルダを Sync,Share,Backup できる点が異なります。

バックアップできるのが良いですね〜

Dropbox をバックアップ用途に使うためには、~/Dropbox にシンボリック
リンクを張る必要があり、なんだかモヤモヤしていましたが、SpiderOak
なら任意のフォルダをバックアップできるので、そんなことありません。

メジャーにならないのは日本語化されてないのと、トップページがゴチャ
ゴチャしているからじゃないですかね。SpiderOak ってどう読んだら分か
らないのも、マイナスポイントです。

まあでも魅力的なサービスであることは確かです。まだ試していない方は
https://spideroak.com/signup/ から登録してみて下さい。

もちろん Dropbox とも併用できるので、こちらもまだ登録されていない方
は是非是非(こちらは恥じらいもなく紹介用のリンクです)。
Dropbox へのご招待です。 - 生活をシンプルに

追記(2011-12-09):
みなさまのおかげで容量が無料プラン MAX の 50GB に達しました。ありが
とうございます。紹介リンクを削除しました。

2011-07-05 (火)

Git ブランチ操作のまとめ [Git][Emacs]

個人的なメモ その2
その1は [2010-04-29-1] にあるよ。

Git では、たった一日の作業でもブランチを作ることが良くある。基本ブ
ランチは修正が終わったら master に merge して削除、つまり使い捨て。
別な作業が入ったら、master から新たにブランチを作る。

cvs とか svn だと、作業単位毎にディレクトリを掘って cvs checkout と
かしていたけど、Git はこれをブランチ操作のみでできる点が超便利。

ただ、他に違わず、ブランチ操作も複雑なのでメモメモ。

(1) ローカルブランチの確認

% git branch


(2) リモートブランチの確認

% git branch -r


(1) + (2)

% git branch -a


(3) ローカルブランチ bar の作成

% git branch bar


(4) ローカルブランチ bar への切り替え

% git checkout bar


(3) と (4) を同時にやる。

% git checkout -b bar


(5) 任意のタグやリビジョンを起点に、ブランチ bar を作る。

% git branch bar <タグ名 or リビジョン>


(6) (5) をやりつつ、bar ブランチに切り替える。

% git checkout -b bar <タグ名 or リビジョン>


(7) 修正の一時的な待避。<name> は省略可能。他のブランチに切り替えた
いんだけど、commit はしたくない(ブランチを切り替える時は commit す
る必要がある)という時に使う。個人的には、気分で圧縮コミットと使い分
けてる。

% git stash save <name>


(8) (5) のリスト表示

% git stash list
stash@{0}: On <branch name>: <name>


(9) (5) の取り出し

% git stash pop 'stash@{0}'


(10) ローカルブランチ bar の削除

% git branch -d bar


(11) (ローカルブランチの) master にマージしてないと (8) はエラーになる。
とにかく強制削除したい場合はこちら。

% git branch -D bar


(12) ローカルブランチ bar をリモートリポジトリ origin に新たに作成
する。origin というのは、clone 元のリモートリポジトリ。git config
--list で確認できる。

% git push origin bar


(13) リモートリポジトリ origin のブランチ bar を削除する

% git push origin :bar
or
% git push --delete origin bar # maybe from version 1.7


(14) リモートリポジトリ origin のブランチ bar を削除しようとして、
こんなエラーが発生したら、、、

% git push origin :bar
error: unable to push to unqualified destination: bar
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.
error: failed to push some refs to 'ssh://example.com/~masutaka/rep.git'


まずは現状把握。
古くなった(=stale)ブランチ refs/remotes/origin/bar が見つかった。
'git remote prune' 使えと言っている。

% git remote show origin
* remote origin
  Fetch URL: ssh://example.com/~masutaka/rep.git
  Push URL: ssh://example.com/~masutaka/rep.git
  HEAD branch: master
  Remote branches:
    master tracked
    refs/remotes/origin/bar stale (use 'git remote prune' to remove)
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)


使った。消せたようだ。'git branch -a' や 'git remote show origin'
で確認してもうまく消せたことが分かる。

% git remote prune origin
Pruning origin
URL: ssh://example.com/~masutaka/rep.git
 * [pruned] origin/bar


(15) リモートリポジトリのブランチ foo を現在のブランチに pull する。

% git pull git://example.com/project.git foo

リモートリポジトリは git remote add で追加したリポジトリ名も指定で
きる。いやむしろそちらが正当なやり方か。

(16) リモートリポジトリ origin の ブランチ foo を、ローカルリポジト
リの tmp ブランチに pull する。

% git pull origin foo:tmp


(17) リモートリポジトリ origin の ブランチ foo を、ローカルリポジト
リの var として、そのまま持ってくる。

% git checkout -b var origin/foo


リモートリポジトリの名前が origin で、ローカルとリモートで同じブラ
ンチ名でよければ、以下のように省略可能。

% git checkout foo


(18) ローカルブランチ foo を var にリネームする。

% git branch -m foo var


(19) リモートリポジトリ foo に含まれているブランチを表示する。

% git remote show foo


(20) すべてのリモートリポジトリから変更を取得する。マージはしない。

% git fetch --all


ブランチの作成や切り替え、master へのマージは Emacs の git-dwim.el
がめちゃめちゃ便利。egg.el とともに愛用中。

参考情報:
clmemo@aka: Git remote repository と Branch
Gitでリモートの共有リポジトリにあるブランチを消す時のメモ - blog.longkey1.net
"git stash" のもう少し詳しい使い方
[Git] Git コマンドメモ - それはBlog
Gitを使った分散開発管理7 – ブランチとタグを使う – | .dev():クラスメソッド開発ブログ
Git ユーザマニュアル (バージョン 1.5.3 以降用)

この記事に言及しているこのブログ内の記事

2011-07-01 (金)

『パターン、Wiki、XP 〜時を超えた創造の原則』を読んだ [Book]



ソフトウェアの開発は建築の手法が元になった、と聞いたことがあったけ
ど、まさにこの本に書いてあった。建築のパターンランゲージを参考に考
え出されたデザインパターン、今のアジャイルに通じる話、Wiki の発明者
カニンバル等々、なかなか面白い本だった。

P.S.
こちらの記事がこの本を知ったきっかけです。
パターン、Wiki、XP ~時を超えた創造の原則を読んだ。 - 日々、とんは語る。

2011-07 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

最終更新時間: 2017-04-29 14:50

検索
最近の話題
- 2017-04-29
  Docker ではないコンテナ systemd-nspawn を使ってみた
- 2017-04-16
  CircleCI 2.0 で capistrano デプロイしてみた
- 2017-04-15
  CircleCI 2.0 をローカルで実行できる circleci コマンドとは何者か
- 2017-04-13
  Rails リポジトリに CircleCI 2.0 を導入した
- 2017-04-08
  PS4 Pro と LG の 4K テレビ 43UH6500 で nasne は使えるのか?
- 2017-04-02
  オムロンの低周波治療器が肩こりにだいぶ効く
- 2017-03-21
  ローカル環境を出来るだけ Dockerize した
最近追記された記事
- 2017-04-13-1 (13日前)
- 2017-04-13-1 (15日前)
- 2017-03-02-1 (57日前)
- 2017-02-25-1 (62日前)
- 2017-02-21-1 (66日前)
- 2015-06-07-1 (72日前)
- 2016-10-19-1 (81日前)
- 2016-01-01-1 (93日前)
- 2015-01-04-1 (102日前)
- 2015-06-07-1 (122日前)
カテゴリ
- Anthy (3)
- Apache (11)
- Apple (1)
- ATOK (4)
- au (3)
- AWS (17)
- Bazaar (1)
- Berkshelf (2)
- BigQuery (1)
- BitBar (3)
- Book (85)
- Boxen (2)
- Bugsnag (1)
- C (26)
- capistrano (4)
- chalow (56)
- ChatWork (1)
- Chef (17)
- Chrome (3)
- Chromecast (1)
- CircleCI (10)
- Comics (2)
- Cooking (10)
- cvs (15)
- cygwin (12)
- D3.js (1)
- Debian (55)
- Docker (3)
- E-mail (8)
- elasticsearch (4)
- Emacs (219)
- Emacs講座 (10)
- English (4)
- feedforce (7)
- fetchmail (3)
- Firefox (20)
- Fluentd (4)
- ftp (1)
- Game (20)
- Gem (5)
- Git (9)
- GitHub (15)
- Go (5)
- Google (1)
- gpg (4)
- GrowthForecast (7)
- Health (3)
- Heroku (9)
- Homebrew (10)
- HTML (6)
- iBook (1)
- iPhone (15)
- IRC (1)
- Jenkins (8)
- JS (1)
- Karabiner (1)
- KeySnail (3)
- Kibana (1)
- Kindle (1)
- Langrich (7)
- LDAP (6)
- Life (19)
- Linux (6)
- Mackerel (1)
- Mew (18)
- MongoDB (1)
- Mozilla (19)
- Music (1)
- MySQL (1)
- NAS (4)
- nginx (6)
- NHK (1)
- Node (1)
- ntp (4)
- OOP (1)
- OpenID (2)
- openssl (1)
- Opera (2)
- OSX (41)
- Perl (14)
- PHP (19)
- PostgreSQL (1)
- procmail (4)
- Programing (3)
- Puppet (1)
- Python (2)
- Rails (12)
- Rake (2)
- RaspberryPi (1)
- RedHat (29)
- Redmine (3)
- Rspec (1)
- Ruby (48)
- samba (3)
- screen (7)
- sed (5)
- serverspec (6)
- sh (8)
- Slack (2)
- Solaris9 (22)
- Spring (2)
- ssh (4)
- StatusNet (21)
- svn (12)
- Swift (1)
- Tablet (1)
- tdiary (3)
- Twitter (14)
- Twmode (6)
- Ubuntu (5)
- UNIX (102)
- vagrant (8)
- Video (21)
- vim (1)
- Wercker (9)
- Windows (29)
- Wine (3)
- XML (11)
- XP (1)
- zsh (25)
- インストールメモ (33)
- クイックシェイプ (12)
- ネタ (15)
- 勉強会 (14)
- 携帯 (6)
- 正規表現 (4)
過去ログ
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12
Google+