2012年6月22日金曜日

MacでDropbox以下のフォルダを公開フォルダにする

MacでPHPを使ったページをテストしたかった。
apacheとPHPはlionには元々入ってる。
システム環境設定の共有の項目からWeb共有をオンにするだけで、
Webページが見られる。apacheの設定をいじればPHPページも実行できる。
この辺の詳しい手順は参考URLを見てください。

デフォルトでは~/Sitesが公開フォルダなわけだが、
自分はDropboxでファイルを共有しているので、
パスをDropbox内のディレクトリに設定したい。
調べると、/etc/apache2/users/{username}.conf
に公開パスの設定があるらしい。
しかし、設定を直して、アクセス権を整えてもどうもうまくいかない。
結局、原因はわからなかった。

けれど、調べてる内に他の方法があることに気づいた。
Sites以下にシンボリックリンクを置けばいいのだ。
まず、先ほどの設定ファイル内で
    Options Indexes MultiViews FollowSymLinks
という風にFollowSymLinksを追記する。
ln -s ~/Dropbox/hogehoge/ public_html
みたいな感じでシンボリックリンクを作成する。
んで、apacheを再起動する。Web共有をオフにして再度オンにすればいい。
すると、localhost/~{username}/public_html/
で~/Dropbox/hogehoge/のファイルにアクセスできるようになりました。

参考URL
http://www.happytrap.jp/blogs/2012/01/21/6931/
http://eyenote.cocolog-nifty.com/blog/2011/08/mac-os-x-107lio.html
http://szdy.info/docs/apache_on_osx/

2012年6月20日水曜日

見慣れないfor文

『JavaScriptパターン』を読んでたら、見慣れないfor文が出てきた。
for(var i = length; i--;){
  //hogehoge
}

なんだこれ?ちゃんと動くのか?と思ってfirebugのコンソール上で
叩いてみると問題なく動いた。
何が引っかかったかというと、条件のところi--だよね。
これって何が評価されるの?
で、いろいろ試したり調べてたらわかってきた。
i--;
のような後置デクリメントはまず値が評価され、その後デクリメントが行われる。
インクリメントも一緒。
というか、ずっと勘違いしていたことに気づいた。
if(i = 5) {
  //hogehoge
}

みたいな処理を書くとif文の中が実行されるのって代入が成功してtrueが返ってるんだと
思ってたんだけどホントはiに5が代入されてその値5が評価されてそれでifがtrueになってるんだね。
どういうことかというと、
if(i = 0){
  //fugafuga
}

っていうのでも実行されると思ってたけど、これはif文の中は実行されない。
結局、最初のi--;っていうのはまず値が評価されるわけだから、
for(i = 3; i--;){
  console.log(i);
}

みたいに書くと、
210と出力されるわけだ。

んー、でも、これって実はかなり基礎的なことだよなぁ。
色々な意味で勉強になった。

2012年5月2日水曜日

Vimの色

Vimで作業をしているときに以前から気になっていたことがある。
折り畳みをしてある部分の色が見づらくて仕方なかった。
だいぶ放置してあったのだが、今日やっと直した。
カラースキームのファイルに以下を追加した。
highlight Folded     guifg=black   guibg=white


折り畳みされたテキストはFoldedというグループに分類されているようだ。
知った後から考えれば当たり前ですね。
help groupでグループの一覧が見られるので、
今度、全体的に色を見なおしてみよう。

2012年4月28日土曜日

Macでgcc

最近のMacはXcodeをインストールすれば、gccも入ってると思ってたんですが、 Xcode4.2.3では違いました。
Performances→Downloads→Command Line Toolsと進み、
右側にあるInstallボタンを押しましょう。
これでgccが使えました。

2012年2月12日日曜日

rake db:seedでcsvを使う

今回はRuby on Railsの話です。
rake db:seed
というコマンドでデータベースに初期データを流し込めます。
この流しこむデータはdb/seeds.rbに記述します。
そこでcsvを読み込んでデータを作る処理を書きます。

require "csv"

CSV.foreach("csvファイルへのパス") do |row|
  Book.create(:name => row[0], :price => row[1])
end

一応、解説すると各行が毎回カンマ区切りの配列としてrowに入ってきます。各データを番地を指定して、テーブルの対応するフィールドに割り当てます。
すごく簡単ですね。

ファイルパスはseeds.rbからではなくプロジェクトのルートからの相対パス?
自分は絶対パス指定しました。
csvのデータを色々処理してから流し込めるので便利ですね。

2012年1月24日火曜日

WindowsでのVimを快適に

Windowsでもvundle

プラグインをどんどん入れる派のVimmerの方はプラグイン管理プラグインを導入してるでしょう。
自分は以前はpathogenを使っていましたが、今はvundleを使っています。NeoBundleは移行する機会がなくてまだ移行していませんが、近いうちにこっちに移るかもしれません。
vundleはrubygemsのbundleに影響を受けており、とても便利なものです。
使い方はvundleのhelpを読みましょう。
このプラグイン何が便利ってgithubからコマンド一つでプラグインを落としてこられるところです。
ですが、これはもちろんgitが必要になります。自分はMacやLinuxでvundleを使っていたのですが、やはりWindowsからもプラグインを更新したいときがあるので、今回その作業を行いました。
こちらからGit-1.7.8-preview20111206.exeをダウンロードしてきます。実行し、インストールを行います。
Run Git from the Windows Command Promptを選ぶ必要があるので気をつけましょう。
その次の画面ではopenSSHかputtyのどちらを使うかを指定します。puttyの場合はputtyのあるパスを指定する必要があります。

インストールが終了して、vundleを使う際に一つ注意点があります。call vundle#rc('~/vimfiles/bundle')という風にvundle#rcにパスを書くことを忘れずにしましょう。Windowsでは指定しないとうまく動きませんでした。




















WindowsにこそVimShellを

vundleを使ってWindowsでもどんどん便利なプラグインを入れましょう。数ある便利なプラグインの中でもWindowsにこそ必要なもの、VimShellです。
しかし、VimShellをBundleInstallしただけではlsすら使えません。ということで、先人たちによって作られた便利なプログラムをインストールしましょう。
MinGW - Minimalist GNU for Windows - Browse Files at SourceForge.netから最新バージョンを落としてきましょう。展開してインストールします。
インストール時にはコンパイラだけでなく、「MSYS Basic System」「MinGW Developer ToolKit」もチェックを入れましょう。というかこれらが必要です。
インストール後、環境変数のPATHを設定します。環境変数をどこで設定するかわからない人は「Win+r」でファイル名を指定して実行を呼び出し、sysdm.cplと入力しましょう。詳細設定から環境変数を設定できます。環境変数でパスを追加するときはセミコロンで区切るのを忘れずに。ちなみに追加するパスは「C:\MinGW\bin;C:\MinGW\msys\1.0\bin」になるかと思います。
これでWindowsでも素敵なVimライフをエンジョイできますね!

Windowsで輝く非同期処理(vimproc)

Vimで非同期処理を実現するプラグイン、それがvimprocです。しかし、vimprocを使うには利用する環境でのコンパイルが必要になります。これが出来ずに悩んでいる人をたまに見かけます、というか以前の自分です。
Windowsでコンパイルする方法としてはまず、VisualStudioのコマンドプロンプトでnmakeを使う方法があります。vimprocのディレクトリに移動し、そこでnmake /f make_msvc.makです。自分の場合はDropboxを使ってvimのファイルは共有していますが、普通ならC:\Users\○○\vimfiles\bundle\vimprocというパスですかね。



そして、もう一つはMinGWを使う方法です。しかし、先程インストールしたMinGWは64bitではありません。
64bit環境ならここからAutomated Buildsの中のmingw-w64-bin_i686-mingw_20111220.zipをダウンロードしてきます。

展開し適当に短めな名前にしたらC:\に置いて先ほどのPATHよりも先にPATHに記述します。自分の場合はmigw64というディレクトリ名に変えました。 
これでめでたくmakeできるようになりました。コマンドプロンプトを開き、vimprocのディレクトリに移動し、make -f make_mingw.makです。
ぶっちゃけVisualStudio入ってるならそっちでやったほうがわかりやすい気がします。ただ、VisualStudioはnmakeですので、nを忘れずに-fでなく/fなところも気をつけてください。
 
以下、参考URL



2012年1月1日日曜日

MacVimの設定

Windows版のgvimとか普通のvimを使った後にMacVimを使うと、
<Leader>が機能しないなんていう問題に遭遇する。
これは<Leader>の\がちゃんと入力されていないからである。
ターミナル上だと¥を入力すると実は\が入力されている。
MacVimで同様のことをやろうとすると「option+¥」なんていう面倒なキーを押すはめになる。
そこで次のような設定をする。

if has('gui_macvim')
    let mapleader='¥'
endif
<Leader>の設定方法がわからなくてずっと放置してたよ。

*追記
普通に
map ¥ <leader>
でいけたよ。
.vimrcの下のとこで前に試行錯誤してたときに間違ったmappingしてたみたい(^q^)