githubにリポジトリをbakeしてみる

ぺろんです。

以前githubのアカウントを作成したものの、リポジトリがないっていう無意味な状況(爆。
ちょうどcake2+TwitterBootstrapを試してみてるので、そのソースをgit管理しよっかなと。

リポジトリ作るよ。

  1. アカウントTOPに移動 https://github.com/TheSunnySideup
  2. 「New repository」ボタン押下
  3. リポジトリの情報追加
    • 「Project Name」に任意の名前を追加
    • 「Description」に任意の説明を追加
    • リポジトリのアクセスを「Anyone」に指定

ソースをgit管理するよ。

リポジトリ登録したら、リポジトリに管理するためのソースの定義だね。

$ cd /path/to/project
$ git init
Initialized empty Git repository in /path/to/project/.git/
$ cd .git
$ touch README
$ cd ../
$ git add .
$ git commit -a
first commit

初期コミットした状態まで完了。
と安心して git log 見たら、社内案件用に登録したglobal設定されたgitアカウントがコミットログに!!!
これはイカン!ということで、プロジェクト用のアカウント設定をば。

$ cd /path/to/project
$ git config user.name "TheSunnySideup"
$ git config user.email hogehoge@hoge.com
$ git commit --amend --author="TheSunnySideup "

最後のcommit部分は、
さっき間違えて登録したglobalアカウントによるコミットを、登録し直したプロジェクト用のアカウントに書き換えてます。
ということで、git管理されたソースの準備は完了。
さていよいよgithubに登録だよ!

$ git remote add origin git@github.com:TheSunnySideup/cake2.git
$ git push -u origin master
The authenticity of host 'github.com (*******)' can't be established.
RSA key fingerprint is *******.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,*********' (RSA) to the list of known hosts.
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

ぶー。
githubSSH用のkeyを設定しないといけませんね。

$ cd ~/.ssh
$ mkdir key_backup
$ cp id_rsa* key_backup
$ rm id_rsa*
$ ssh-keygen -t rsa -C "hogehoge@hoge.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa):

~/.sshgithub用の公開鍵が作成されたので、githubに登録するのら。

  1. アカウントTOPに移動 https://github.com/TheSunnySideup
  2. ヘッダー部のアカウント名横の「Account Settings」アイコンをクリック
  3. 左部のメニュー一覧から「SSH Keys」をクリック
  4. 「Add SSH Key」を押下
  5. 「Key」フィールドに、先ほど作成したid_rsa.pubの内容をコピーして張りつけ
  6. 「Add Key」押下
  7. 最後に接続確認
    • $ ssh -T git@github.com
    • Identity added: ~/.ssh/id_rsa (~/.ssh/id_rsa)
    • Hi TheSunnySideup! You've successfully authenticated, but GitHub does not provide shell access.

$ git push -u origin master
Counting objects: 1262, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1092/1092), done.
Writing objects: 100% (1262/1262), 1.30 MiB | 2.00 MiB/s, done.
Total 1262 (delta 402), reused 0 (delta 0)
To git@github.com:TheSunnySideup/cake2.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.

美味しく出来上がりっと!

格言的な

githubのパーカーが欲しい。(格言じゃないしw

Mecabをbakeしてみる

こばんです。

社内で、tips shareをskypeで垂れ流しでして。
昔はlime使って、毎日のログをファイル管理していたんですが、
震災後からskypeで会話する流れ→tips shareも同じ→(いまここ)って感じです。

ただ、

  • 情報取得が追いつかないとか、
  • ログはとるべきだよね!とか、
  • 検索するの面倒だよね?とか、

とかとかもう割と一時的に脳に入れてる感じだと、今後意味ない感ありますので、
どうせだから管理するwebアプリ作ってしまえってことでして。

Mecabを使った形態素解析

ただ投稿された内容を管理するだけじゃつまんないので、
大学時代に(ゼミの隣の席の子が)研究した形態素解析を使うことにしました。
解析された語句から、名詞を切り出して自動キーワード登録する感じですね。

PHP で Mecab を使って日本語形態素解析の結果を簡単に取得するまでの設定まとめ | ウェブル

Mecabは、一昔前、phpのバージョンによって、パッチが必要のようでしたが、
現状では、pear installで普通に動きました。

pear channel-discover pecl.opendogs.org
pear remote-list -c opendogs
sudo pear install opendogs/mecab-beta

このコマンド3つ打っただけでは、
mecab-config」君が見つからないエラーが出たので、
試しにコマンドライン上から実行する方を試してみたら、
mecab-config」君が生成されました。

Mac Lion と CentOS と Ubuntu に MeCab をインストールする方法 | ウェブル

あとは、mecab.soをextensionに指定して、アパッチ再起動!
次回以降、形態素解析を用いたtips shareアプリ作成予定。。。

格言的な

「めかぶ」は「和布蕪」って書くらしい。

CakePHP2+TwitterBootstrapをbakeしてみる

おわんです。

CakePHP2のTwitterBootstrapプラグインがかっこいい - なんたらノート第三期ベータ

社内案件でCakePHPを使ってます。
ずっと1.3系使っていて、最近2.1系がリリースされましたんで、使ってみるかぁってことで。
あと、噂のリッチスタイルTwitterBootstrapも使ってみよう!ってことで。

CakePHPセットアップまで

http://cakephp.jp/

最新のCakePHPを落として、展開。

GitHub - slywalker/TwitterBootstrap: Plugin for CakePHP2 to use Bootstrap, from Twitter (CSS JS Framework)

  1. このGitHubプロジェクトをまるごとCake2の app/Plugin/TwitterBootstrap に入れる。
  2. app/Plugin/TwitterBootstrap/webroot に bootstrap の js, css, img を入れる。
  3. プラグインの中にある View/Layout/bootstrap.ctp と View/Element/alert.ctp を app/View の下の各所にコピー。

あとは、bakeするときに、「bootstrap」を選択する

出来上がりはこんな感じで。

scaffoldを使うとテンプレートの制御ができない?ので、paginateを用いたリストを取得しようと思ったんだけど、
最近全然CakePHP使ってなかったので、完全に忘れてましたw

セットアップのときに、微妙にはまったこと

http://labs.nazone.info/2011/10/17/1783
Nippon Kaisho システムツール [ ランダムな文字列作成 ]
→ランダム文字列生成に使いましたよっと。

Bootstrap
→もっとリッチな仕上げにしましょう。

格言的な

今日は「新宿 春のCakeまつり」だよ!

gitでブランチ間の差分ファイルをbakeしてみる

おにゃんです。

VCSにはgitを使ってますが、他社さんとお話する感じだと、svnとかcvsとか管理してませんけど?とか様々ね。
そういう方々は、github使ってないんだろうか?(まぁいいや。

AブランチとBブランチの差分ファイル一覧を確認

$ git diff --name-status a_branch b_branch

M test1.php
A test2.php
D test3.php

M(modified:変更)、A(add:追加)、D(deleted:削除)でリスト表示されますね、素敵。

AブランチとBブランチの差分一覧を確認

$ git diff --color a_branch b_branch

diff --git a/test1.php b/test1.php

〜以下省略〜

通常のファイルdiffを確認する内容と同じですね、素敵。

差分内容を色付きのまま、HTML出力する

http://ziz.delphigl.com/tool_aha.php

$ wget http://ziz.delphigl.com/data/aha-src-0.4.4.tar.gz
$ tar zxvf aha-src-0.4.4.tar.gz
$ make
gcc -std=c99 aha.c -o aha
$ cp aha /usr/local/bin/
$ cd /path/to/git管理下
$ git diff --color a_branch b_branch | aha > diff.html
おぉ、色付き、色付き。素敵。
これで、お客さんに、ここ変わってますけどー!とか、ここ変えてますけどー!って言えるね。
可読性って大事だよね。
こういう些細なことからコツコツと。

格言的な

バージョン管理システムって、Version Management Systemじゃないのかな?

現在位置情報をbakeしてみる

おばんです。

最近、無性にドーナツ食べたいなぁと思って、
「around me」っていう現在地から一番近いナニガシを検索するアプリでミスドを探してみたんですが、
やっぱ現代に生きるものとしては、こういうアプリって重宝するよね。

ってことでやってみる。

http://www.yaskey.cside.tv/mapserver/note/gps.html
JavaScript(jQuery)でGPS位置情報を取得してみる | BlackFlag

フィーチャーフォンスマートフォンで、位置情報の取得の仕方が異なるということ。
リンクだし分けて、端末のGPSから緯度経度を取得してーって感じ。

http://www.plusmb.jp/2008/12/19/1816.html

キャリア毎の出し分けは、NetUserAgentMobileGPSを使って、出し分け&取得。
精度はauが高いらしいですね。

旧・そーだいなるらくがき帳: postgresqlを使った位置情報の計算について
http://code.google.com/intl/ja/apis/maps/articles/phpsqlsearch.html#findnearsql

データベースごとに、できることできないことがあるようですが、
PostgreSQLさんには、幾何関数っていう位置情報に特化した素晴らしい機能がある模様。
緯度経度情報を持っていれば、三角関数を使って近い距離の割り出しができますが、
特定のカラムにpoint型の情報を持っておけば、ウマーとなります。

http://neta.ywcafe.net/000597.html

SQL文に「@」とか「<->」とか、今まで経験したことの無い「呪文」のような演算子が登場しますね。
もはや何でもありって感じですが。

circle関数内に指定する「半径○○」という定義で、ここで指定している単位は何なんだ?と試行錯誤しましたが、
緯度経度情報を基に考えれば、「1km = 0.01」を指定し、2点間の距離に100000を掛ければ、○○mとして距離を算出できました。

1000件程度の店舗情報であれば、indexを張らなくても、張ったときとあまり実行速度に変化はなかったです、はい。

格言的な

ドーナツは、オールドファッションに限る。

Cookieをbakeしてみる

あけましておめでとうございます。(ふぇぶらりーですね。

今まで色んなものをbakeしてきましたが、ついに!ついに!お菓子が焼けます!

Cookie(HTTP Cookie)とは - IT用語辞典 e-Words

docomoがようやく本気を出してきた件

最近は、携帯サイト(スマホ含む)の構築をしてます。
携帯サイトの構築で、いやでもブチ当たる壁が「セッション管理どうすんのさ?」って話ね。
現在の段階では、ようやく、セッション管理のCookieウマーの時代がやってきているようですね。

モバイルサイトの3キャリア共通CSSと最新コーディング事情 : LINE Corporation ディレクターブログ

徳丸本なるもの

セッション周りのセキュリティはこちらでお勉強。
キャリア毎の違いや対応方法・対策など、へぇ〜なことが詰まってます。

おもちゃで遊び終えたら、おもちゃ箱に戻しましょう!

まだまだdocomoユーザーの半分ほどは、cookie非対応端末のようで、
「あなたクッキー食べれないから、このサイト見せませーん!」っていう意地悪はしなかったんです。
(URLにパラメータ渡して〜ってやつ。)

・・・が、SSLを部分適用(ログイン系・会員登録系のみに使用する)の場合、auさんが「あう〜。。。orz」ってなるんです。

au,SoftBankでSSLでCookieセッションを使用する場合の問題点 - maru.cc@はてな


僕がはまったときは、
ログイン前TOP(非SSL)→ログイン(SSL)→ログイン後TOP(非SSL)っていう遷移のときで、
認証に成功して、非SSLのログイン後TOPにリダイレクト・・・するはずなのに、ログイン前TOPに行く。みたいな。
(セッションが引き継がれないアレですね。)

うーん、どうするかなぁ・・・リリース近いしなぁ・・・っていうのもあって、
docomo,aucookieを使用しない
softbank,他はcookieを使用する

っていう結論に至ったわけですが。
「サイトとしてSSLをどうするかを決める→セッションの引き継ぎの方針が決まる」ってことを肝に命じておく。

格言的な

まだまだCookieはまずい。

PHPunitをbakeしてみる

最近は、かくがくしかじかで、Zend Frameworkのお勉強をしておりますです。
2011年12月現在では、最新verは1.11.11ですが、上の本は1.7~8のお話です。
ver1.8以降劇的な修正は行われていないようなので、1.8系を学べばとりあえず問題なさそうです。

bash: phpunit: command not found

一通り参考書を読み終えたのですが、この本テストの仕方を書いてない。
というか、AirをもらってからPHPunit動かしてないぞ。
って思ったら、pearも入ってないぞって。

$ phpunit
bash: phpunit: command not found
$ pear
bash: pear: command not found

いれちゃお。

pear.php.netから落としてきたファイルを実行するよー!

$ curl http://pear.php.net/go-pear.phar> pear.php
$ sudo php -q pear.php

Below is a suggested file layout for your new PEAR installation. To change individual locations, type the number in front of the
directory. Type 'all' to change all of them or simply press Enter to accept these locations.

1. Installation base ($prefix) : /Users/******/pear
2. Temporary directory for processing : /tmp/pear/install
3. Temporary directory for downloads : /tmp/pear/install
4. Binaries directory : /Users/******/pear/bin
5. PHP code directory ($php_dir) : /Users/******/pear/share/pear
6. Documentation directory : /Users/******/pear/docs
7. Data directory : /Users/******/pear/data
8. User-modifiable configuration files directory : /Users/******/pear/cfg
9. Public Web Files directory : /Users/******/pear/www
10. Tests directory : /Users/******/pear/tests
11. Name of configuration file : /Users/******/.pearrc

1-11, 'all' or Enter to continue:

1を指定して、インストールパスを変更します!( /usr/share/pear にしました。)

1-11, 'all' or Enter to continue: 1
(Use $prefix as a shortcut for '/Users/******/pear', etc.)
Installation base ($prefix) [/Users/******/pear] : /usr/share/pear

Below is a suggested file layout for your new PEAR installation. To change individual locations, type the number in front of the
directory. Type 'all' to change all of them or simply press Enter to accept these locations.

インストールパスを変更して、あとはOK!!ってやると、インストールが始まったみたい。
途中で、「php.ini変更しちゃっていい?」って聞かれたので、「Y(ご自由に〜。)」と言っておきました。

$ sudo ln -fs /usr/share/pear/bin/* /usr/bin/
$ pear list
Installed packages, channel pear.php.net:
=========================================
Package Version State
Archive_Tar 1.3.7 stable
Console_Getopt 1.3.0 stable
PEAR 1.9.4 stable
Structures_Graph 1.0.4 stable
XML_Util 1.2.1 stable

pearコマンドにパスが通っていないので、/usr/bin/以下にシンボリックリンクを張っておきますー。
にしても、リスト少ないなぁ。。

やっとこさPHPunitをいれる

PHPUnit – The PHP Testing Framework

$ pear config-set auto_discover 1
config-set succeeded

$ pear install pear.phpunit.de/PHPUnit
$ phpunit --version
PHPUnit 3.6.5 by Sebastian Bergmann.

おぉ出た出た、噂のセバスチャンベルグマン。
ここまで行けばおkかなぁ。
あとは、どんどんテストするだけーっと。

格言的な

ピアーじゃなくて、ペアーです。