はてなダイアリーがリニューアルしたのでテスト

Twitter記法が増えたのでテスト。

twitter:〜〜:title

twitter:〜〜:tweet

twitter:〜〜:detail

twitter:〜〜:detail:right

twitter:〜〜:detail:left

twitter:〜〜:tree

twitter:@rewish

[twitter:@rewish]

url:title

JavaScriptで全角英数と半角英数の相互変換

全角英数文字コードから65248個半角英数文字コード

半角英数文字コードから65248個全角英数文字コード

// 半角にしたい
str.replace(/[A-Za-z0-9]/g, function(s) {
    return String.fromCharCode(s.charCodeAt(0) - 65248);
});

// 全角にしたい
str.replace(/[A-Za-z0-9]/g, function(s) {
    return String.fromCharCode(s.charCodeAt(0) + 65248);
});

65248の部分は16進数で表される事が多い。

// 半角にしたい
str.replace(/[A-Za-z0-9]/g, function(s) {
    return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
});

// 全角にしたい
str.replace(/[A-Za-z0-9]/g, function(s) {
    return String.fromCharCode(s.charCodeAt(0) + 0xFEE0);
});

こっちの方が無駄にプロっぽいですね。

サンプルコード

// 半角にしたい
javascript:alert('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'.replace(/[A-Za-z0-9]/g,function(s){return String.fromCharCode(s.charCodeAt(0)-0xFEE0)}))

// 全角にしたい
javascript:alert('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'.replace(/[A-Za-z0-9]/g,function(s){return String.fromCharCode(s.charCodeAt(0)+0xFEE0)}))

Re:macにGitをいれてバージョン管理してみる第一歩

http://wp.mersy.jp/?p=467

まとめお疲れ様です。ちょっとノイズが多すぎて(w)上手く伝わっていなかった部分の補足を。

Macにインストールするならdmgがオススメ

ソースからインストールしたモノを管理するのは、ある程度の知識が必要なので、dmgを使ってインストールするのが色々楽だと思います。

http://code.google.com/p/git-osx-installer/downloads/list?can=3

Mac OSXならgit-1.7.0-intel-leopard.dmgなどですね。

引用して補足

(この辺、リアルのファイル?とGitの関係がまだつかみ切れていない・・)

ブランチを変更すると、ブランチの内容に合せてファイルが書き換わります。

(※ここにいたるまでの間でAの方でコミットしてても問題ないのかな?)

基本的にコミットはブランチに対して行われるので、Aの方でコミットしてても問題無いです。

masterにAをマージとかはしない方がいいらしいです。
(※あれ、Bをmasterにマージしたよな。マージはしていいけど、masterは消しちゃダメ、ということだけかな?)

ちょっと上手く伝えられてなかった><

Aの実装が終了したら、BをマージしたようにAもマージします。その後、不要であればAを削除。(Bをすぐ削除したのは、バグ修正のための一時的なブランチだったからです)

最終的に全てのブランチをmasterで一つにしてリモートリポジトリにpushする。みたいなイメージです。

コンフリクトしたらその内容を(多分)Aで修正して改めてマージ(まだコンフリクトまで起こせてない)

コンフリクトした場合、以下のようになります。

ローカルブランチとの衝突
<<<<<<< HEAD:ファイル名
(カレントブランチのHEAD(最新)リビジョンの変更内容)
あいうえおー
=======
(ローカルブランチAの変更内容)
あいうえお。
>>>>>>> A:ファイル名
リモートとの衝突
<<<<<<< HEAD:ファイル名
(カレントブランチのHEAD(最新)リビジョンの変更内容)
あいうえおー
=======
(リモートのリビジョン0ac93a5eeece8c00ab8253e6a721c2134885b7e3の変更内容)
あいうえお。
>>>>>>> 0ac93a5eeece8c00ab8253e6a721c2134885b7e3:ファイル名

これを手動で修正してコミットすればOKです。

その他補足

初期構成

初めてGitをインストールした時は、以下のコマンドを実行して、グローバル設定をしておくと色々都合がいいです(詳しくは次回)。

git config --global user.name "名前"
git config --global user.email メールアドレス
git config --global color.ui auto

以下のファイルを直接編集してもOK。

vi ~/.gitconfig

僕の~/.gitconfigはこんな感じ。

[user]
    name = rewish
    email = rewish.org@gmail.com
[core]
    editor = vim
    autocrlf = false
    safecrlf = false
[color]
    ui = auto
[color "branch"]
    current = yellow reverse
    local = yellow
    remote = green
[color "diff"]
    meta = yellow bold
    frag = magenta bold
    old = red bold
    new = green bold
[color "status"]
    added = yellow
    changed = green
    untracked = cyan
[alias]
    st = status
    ci = commit
    br = branch
    co = checkout
    df = diff
    lg = log -p
チケット駆動開発

あとは、バグトラッキングシステムと連動した開発(チケット駆動開発)とかも覚えて行くと良いと思います。

頑張ってください!

FeedBurnerのTwitter投稿を設定してみたのでテスト

めちゃくちゃ久しぶりのはてなダイアリー

FeedBurnerはてなダイアリーRSSを追加して、Twitterに自動で投稿する設定をしてみたのでテスト。

ついでにトラックバックからpingを送れるかもテスト。

追記: 無事Twitterに投稿されました。pingは微妙。

mod_rewriteでProxy通してTomcatを動かす

Proxy通す時に正規表現+後方参照使いたいって場合は、RewriteRuleの[P]オプションを使うと良いのですね。

LocationディレクティブとProxyPassでやってたら、数が多すぎて大変だったので使ってみた。

RewriteEngine On
RewriteRule /(.+?)\.(do|jsp) ajp://localhost:8009/hoge/$1.$2?%{QUERY_STRING} [P,L]

最近よく使うjQueryの拡張メソッド

小規模アプリとか、ガーッと書いちゃう時によく使う。

jQuery.fn.extend({
    isEmpty : function(s, c) {
        var self = this;
        return self.size() > 0 ? self : jQuery(s, c);
    }
});

jQueryオブジェクトが空(要素が無い)かどうかを見て、空なら引数を元に新しいjQueryオブジェクトを返す。

jQuery(function($) {
    var e = $('#hoge').isEmpty('#foo');
    console.debug(e);
});

こんな感じですかね。

ちなみに下記の様にやってもちゃんとjQueryオブジェクトが返ってくる。さすがjQuery

jQuery(function($) {
    var e = $('#hoge').isEmpty($('#foo'));
    console.debug(e);
});