2008年11月30日

今日は

勉強会に行って来ました。
やはり、他の人の話を聴くのは刺激になりますね。('▽')
posted by 台北猫々 at 21:30| Comment(0) | TrackBack(0) | 日記

2008年11月29日

渡された文字列に半角カタカナがあるか?のチェック(PHP編)


//文字列に半角カタカナが存在するか?
//PHPの正規表現を使用して、渡された文字列に半角カタカナがあるかチェックします。(UTF-8向け)
//PHP 正規表現 半角カタカナ UTF8
$str = "aaaaアあああああ";
if (preg_match("/(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])/", $str)) {
echo "文字列に半角カタカナが存在する"."<br>\n";
} else {
echo "文字列に半角カタカナが存在しない"."<br>\n";
}
//↓
//"文字列に半角カタカナが存在する"

posted by 台北猫々 at 20:11| Comment(0) | TrackBack(0) | 技術メモ(PHP)

2008年11月28日

「Railsレシピブック 183の技」

久しぶりに技術書を購入しました。コードなにがしに「Ruby on Railsあれこれ」を投稿しながらWeb情報のみで勉強してきましたが、やはり個人ブログの情報がメインになってしまうので、そろそろ書籍を見た方がいいかなと思いまして、購入に踏み切りました。

まだ、ざっと見たところですが、目から鱗が落ちる所がいくつかあったので、買ってよかったと思っています。

posted by 台北猫々 at 23:35| Comment(0) | TrackBack(0) | 本・DVD

2008年11月27日

SAStrutsのf:labelをRuby on Railsに移植しました。

Railsのapplication_helper.rbに追加するヘルパーメソッドです。
Rubyの動的メソッド呼び出しを利用して、ビューの中で「id」 →「名前」の変換を行います。

※SAStrutsのf:label(http://sastruts.seasar.org/featureReference.html#JSP)をRailsに移植しました。

実際の使用例はこちらでどうぞ→「Ruby on Railsあれこれ:複数従業員情報の一括削除(http://code.nanigac.com/source/wiki/view_title/641/%E8%A4%87%E6%95%B0%E5%BE%93%E6%A5%AD%E5%93%A1%E6%83%85%E5%A0%B1%E3%81%AE%E4%B8%80%E6%8B%AC%E5%89%8A%E9%99%A4)」

posted by 台北猫々 at 22:06| Comment(0) | TrackBack(0) | 技術メモ(Ruby)

2008年11月26日

美味しかった〜

生口島で、たまたま通りかかって入ったお店です。

20081126.JPG

外からお店の中を見たらおじさんが一人で将棋をしていて、ちょっと入りづらかったのですが、お腹も減っていたので思い切って入りました。

お勧めは刺身定食だということで、それを食べました。

美味しかった〜。

たまたまあったということで、関アジもおろしてもらったりして、他にもカワハギの刺身と肝、タコの刺身とあって豪華でした。



posted by 台北猫々 at 21:35| Comment(0) | TrackBack(0) | 尾道

2008年11月25日

Rails2.1.2(actionpack-2.1.2)のバグ?

submit_tagのオプションでダブルクリック防止のための":disable_with"がありますが、このオプションを付けた時に出力されるJavascriptがIE(6と7で確認)でエラーになってしまいます。(ただしFireFox3では大丈夫)

実際に出力されるスクリプトは↓なのですが、


<input name="commit" onclick="
if (window.hiddenCommit) {
window.hiddenCommit.setAttribute('value', this.value);
}
else {
hiddenCommit = this.cloneNode(false);
hiddenCommit.setAttribute('type', 'hidden');
this.form.appendChild(hiddenCommit);
}
this.setAttribute('originalValue', this.value);
this.disabled = true;
this.value='検索処理中...';
result = (this.form.onsubmit ? (this.form.onsubmit() ? this.form.submit() : false) : this.form.submit());
if (result == false) {
this.value = this.getAttribute('originalValue');
this.disabled = false;
}
return result;"
type="submit" value="検索" />

この中で、

hiddenCommit.setAttribute('type', 'hidden');

がエラーになります。

で、W3CのDOM Level1仕様
http://www.w3.org/TR/REC-DOM-Level-1/level-one-html.html#ID-798055546
の「Interface HTMLInputElement」を見ると、type属性はreadonlyなんですよね。

ということはFireFox3で動作しているのがたまたまで、本来のDOM仕様的には動作しない方(IEのエラー)が正しいということでしょうか?

":disable_with"オプション付与時の処理は、
actionpack-2.0.2 → actionpack-2.1.1 → actionpack-2.1.2
で、改造されてきているようですが、この問題の処理が組み込まれたのはactionpack-2.1.2からでした。

#該当ファイルは、
#actionpack-2.x.x\lib\action_view\helpers\form_tag_helper.rb

ともあれ、IEでの動作確認を全くしないで組み込んでいるとしか思えないですね。「がっくし」しちゃいます・・・
posted by 台北猫々 at 21:48| Comment(0) | TrackBack(0) | 技術メモ(Ruby)

2008年11月24日

バベルの塔

ドバイで高さ2500mのビルを建てる計画が進行中だそうですね。
http://www.gizmodo.jp/2008/10/25km.html

富士山の五合目ぐらいということですね。人間は大体2500mを越えたあたりから高山病になるというので、ビル内の気圧とかは管理されるのかもしれません。

しかし、ドバイはどこに向かっているんでしょうね?
旧約聖書のバベルの塔を連想します。
posted by 台北猫々 at 22:52| Comment(0) | TrackBack(0) | 日記

2008年11月23日

Ruby on Railsのチュートリアル〜チェックボックス

コードなにがしの「Ruby on Railsあれこれ」にも投稿していますが、こちらにも。


目次


●概要
●サンプルのポイント
●サンプルの使い方
●ファイル構成
●ビュー(画面)
●コントローラー

内容


概要


チェックボックスを扱うアプリケーションです。

入力画面(index.html.erb)
tutorial_ajax_1.jpg

結果画面(index.html.erb)
tutorial_ajax_2.jpg

サンプルのポイント


・チェックボックスのデフォルト状態(チェックON/OFF)の操作

サンプルの使い方


サンプルはあらかじめ用意していないので、以降の項目を参照にして、自分で作成しなければいけません。作成後に、ブラウザからhttp://127.0.0.1:3000/check_boxにアクセスしましょう(ポート番号"3000"は適宜、環境に応じて読み替えて下さい)。

ファイル構成


本項で作成するファイル
ファイル名種類
index.html.erbビュー
check_box_controller.rbコントローラー


ビュー(画面)


入力画面、兼、結果画面を作成しましょう。
"ror-tutorial\app\views\check_box\index.html.erb"ファイルを以下の内容で作成します。

<html>
<head>
<title>Tutorial: Checkbox index</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<%= stylesheet_link_tag 'ror' %>
</head>
<body>
<h2>Tutorial: Checkbox index</h2>

<% form_tag :action => 'submit' do %>
<%= check_box_tag 'check1', "1", @check1 %>check1
<%= check_box_tag 'check2', "1", @check2 %>check2<br />

<%= submit_tag "サブミット" %>
<% end %>
</body>
</html>


コントローラー


"ror-tutorial\app\controllers\check_box_controller.rb"ファイルを以下の内容で作成します。

class CheckBoxController < ApplicationController

#入力画面表示
def index
@check2 = true
render :action => 'index.html.erb'
end

#結果画面表示
def submit
@check1 = false
@check2 = false
render :action => 'index.html.erb'
end

end


posted by 台北猫々 at 17:14| Comment(3) | TrackBack(0) | 技術メモ(Ruby)

2008年11月22日

Ruby on Railsのチュートリアル〜Ajax

コードなにがしの「Ruby on Railsあれこれ」にも投稿していますが、こちらにも。


目次


●事前準備
●概要
●サンプルのポイント
●サンプルの使い方
●ファイル構成
●ビュー(画面)
●コントローラー

内容


事前準備


JQueryの準備


"ror-tutorial\public\javascripts"フォルダにJQueryサイトからJQueryファイルをダウンロードして"jquery.js"にリネームしてコピーします。

概要


Ajaxを行うアプリケーションです。

入力画面(index.html.erb)

tutorial_ajax_1.jpg


結果画面(index.html.erb)

tutorial_ajax_2.jpg

サンプルのポイント


・JQueryを使用してAjaxします。

サンプルの使い方


サンプルはあらかじめ用意していないので、以降の項目を参照にして、自分で作成しなければいけません。作成後に、ブラウザからhttp://127.0.0.1:3000/ajaxにアクセスしましょう(ポート番号"3000"は適宜、環境に応じて読み替えて下さい)。

ファイル構成


本項で作成するファイル

ファイル名種類
index.html.erbビュー
ajax_controller.rbコントローラー


ビュー(画面)


入力画面、兼、結果画面を作成しましょう。
"ror-tutorial\app\views\ajax\index.html.erb"ファイルを以下の内容で作成します。

<html>

<head>
<title>Tutorial: Ajax</title>
<%= stylesheet_link_tag 'ror' %>
<%= javascript_include_tag "jquery" %>
</head>
<body>


<h2>Tutorial: Ajax</h2>
<span id="message"></span><br />
<input type="button" value="hello" onclick="$('#message').load('/ajax/hello');"/>

</body>
</html>


コントローラー


"ror-tutorial\app\controllers\ajax_controller.rb"ファイルを以下の内容で作成します。

class AjaxController < ApplicationController

#初期画面表示
def index
render :action => 'index.html.erb'
end

#Ajaxで文字列データを返す
def hello
render :text => "こんにちは"

end

end


posted by 台北猫々 at 09:43| Comment(0) | TrackBack(0) | 技術メモ(Ruby)

2008年11月21日

違うんじゃないかな?

自動車関連の主要会社が、派遣社員を切りまくっているようです。”派遣”という雇用形態は、そういうものだといえばそうなんですけど。

結局の所、前のバブル崩壊時に学んだことは、いざというときに解雇しやすい人員を確保しておくということだけだったんでしょうか?まったく、「浅はか」という感じです。情けないことです。

巨視的に見れば、内需を細らすだけの行為なんですよね。
posted by 台北猫々 at 21:37| Comment(0) | TrackBack(0) | 日記

2008年11月20日

Ruby on Railsのチュートリアル〜足し算

コードなにがしの「Ruby on Railsあれこれ」にも投稿していますが、こちらにも。


目次


●事前準備
●概要
●サンプルのポイント
●サンプルの使い方
●ファイル構成
●ビュー(画面)
●モデル(ActiveForm)
●コントローラー

内容


事前準備


プラグインの準備


Ruby on Railsのチュートリアルの前準備」を参考にして、Eclipseプロジェクトを作成して下さい。

色々なプラグインの「4 アクティブフォーム(ActiveForm)」をインストールして下さい(既にされていれば、再インストール必要はありません)。

概要


足し算を行うアプリケーションです。

入力画面(index.html.erb)
tutorial_add_1.jpg

結果画面(index.html.erb)
tutorial_add_2.jpg

サンプルのポイント


・データベース(ActiveRecord)を使用しない場合に、ActionFormを使用してバリデーションを行います。

サンプルの使い方


サンプルはあらかじめ用意していないので、以降の項目を参照にして、自分で作成しなければいけません。作成後に、ブラウザからhttp://127.0.0.1:3000/addにアクセスしましょう(ポート番号"3000"は適宜、環境に応じて読み替えて下さい)。

ファイル構成


本項で作成するファイル
ファイル名種類
index.html.erbビュー
add.rbモデル
add_controller.rbコントローラー


ビュー(画面)


入力画面、兼、結果画面を作成しましょう。
"ror-tutorial\app\views\add\index.html.erb"ファイルを以下の内容で作成します。

<html>
<head>
<title>Tutorial: Add</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<%= stylesheet_link_tag 'ror' %>
</head>
<body>
<h2>Tutorial: Add</h2>

<%# バリデーションエラーがある場合はメッセージが表示されます%>
<%= error_messages_for 'add' %>

<%# /add/calculateにサブミットします%>
<% form_tag :action => 'calculate' do %>
<%# addオブジェクトのarg1プロパティに対応します%>
<%= text_field(:add, :arg1) %> +
<%= text_field(:add, :arg2) %>
=<%=h @result %><br />

<%= submit_tag "サブミット" %>
<% end %>
</body>
</html>


モデル(ActiveForm)


ActiveFormを継承したモデルを作成します。リクエストパラメータのバリデーションに使用します。

"ror-tutorial\app\models\add.rb"ファイルを以下の内容で作成します。

class Add < ActiveForm
attr_accessor :arg1, :arg2
validates_presence_of :arg1, :arg2, :message => "を入力して下さい"
end

コントローラー


"ror-tutorial\app\controllers\add_controller.rb"ファイルを以下の内容で作成します。

class AddController < ApplicationController

#入力画面表示
def index
render :action => 'index.html.erb'
end

#結果画面表示
def calculate
#リクエストデータをモデル(ActiveForm)にコピーします。
@add = Add.new(params[:add])

#入力値が正常の場合は、計算を行う。
@result = @add.arg1.to_i + @add.arg2.to_i if @add.valid?
render :action => 'index.html.erb'
end

end


posted by 台北猫々 at 00:07| Comment(1) | TrackBack(0) | 技術メモ(Ruby)

2008年11月19日

指定要素の位置まで、Javascriptで自動スクロール

(コードなにがしのブログパーツを使ってみたかったんです)

prototype.jsのPosition.positionedOffsetを使うと指定要素までのスクロールが簡単にできるのですね。

以下のHTMLファイルを開くと、Div_Bが先頭になるように自動的にスクロールします。

prototype.jsは、
http://www.prototypejs.org/
からダウンロードします。

posted by 台北猫々 at 21:49| Comment(0) | TrackBack(0) | 技術メモ(JavaScript)

2008年11月18日

五里霧中?

今日の出勤時の風景です。
視界が悪いです〜

20081118.jpg
posted by 台北猫々 at 18:51| Comment(0) | TrackBack(0) | 日記

2008年11月17日

最近、話題の論文

最近、世間を騒がしている田母神さんの論文「日本は侵略国家であったのか」を読んでみました。

率直な感想としては「稚拙」といったところでしょうか。主観、願望、憶測だらけで論理性に乏しく、「論文」というよりは「作文」といった方がしっくりいくような気がします。

「侵略」について論じてる割に”満州事変の柳条湖事件”には触れていないところから、本人も論拠に乏しい文章を書いているのだという自覚はあるように察せられます(この事件は、関東軍の人間が謀略であったことを認めていますからね)。

この「作文」で「言論の自由」を主張するのは、すこぶる付きの滑稽と言えますが、実際に政府や諸外国を振り回したのですから、本人は満足しているのでしょう。

しかし、ちゃっかり退職金をもらうあたり、本人がどこまで本気でこの文章を書いたのかは良く分かりませんけどね。

興味がある方のために、↓に論文PDFファイルへのリンクを貼っておきます。
http://www.apa.co.jp/book_report/images/2008jyusyou_saiyuusyu.pdf
posted by 台北猫々 at 19:38| Comment(0) | TrackBack(0) | 日記

2008年11月16日

因島大橋

この橋は自転車で渡りました。
高所恐怖症であるところの私は結構怖かったです。
20081116.JPG

これから渡るところです。
20081116_2.JPG
posted by 台北猫々 at 20:48| Comment(0) | TrackBack(0) | 尾道

2008年11月15日

今日突然・・・

ネクタイの結び方をど忘れしました・・・
ほどなく思い出しましたが、忘れるものなのかなぁ?

確かに、ここ数年は職場がカジュアルなので、たまにしか付けないので、ということもあるかもしれないですが、ちょっとショックでした。
posted by 台北猫々 at 22:58| Comment(0) | TrackBack(0) | 日記

2008年11月14日

なんだか急に・・・

最近急に、携帯のメールアドレスに迷惑メールが大量に来るようになりました。大体10分おきにくるので、一日100通以上になります。相当うざいです。

なんとか、送信元を割り出してSYNフラッド攻撃で反撃してやりたいです。
posted by 台北猫々 at 22:20| Comment(0) | TrackBack(0) | 日記

2008年11月13日

粛々と

コードなにがしに投稿している「Ruby on Railsあれこれ」に、「Ruby on Railsのチュートリアル集」を粛々と追記しています。

「Ruby on RailsによるWebアプリケーションスーパーサンプル 」を投稿していて、Railsの基本をもっと押さえておかないといかんなぁと思いまして、SAStrutsのチュートリアルをRailsに移植するのが良い教材になるかなと思いまして、進めています。

今現在は、
1. Ruby on Railsのチュートリアルの前準備
2. 足し算
3. Ajax
4. チェックボックス
5. ダウンロード
6. 繰り返し
7. ボタンを使った繰り返し
8. 選択リスト
まで投稿していますよ〜

posted by 台北猫々 at 21:35| Comment(0) | TrackBack(0) | 技術メモ(Ruby)

2008年11月12日

新商品アイデア

今回の韓国旅行に電子辞書(韓国語の文章を入力すると、日本語に変換してくれるもの)も持っていっていたのですが、食事処の看板やメニューなどはそもそも読み方が分からないですし、どのように入力すればいいかが分からないんですよね。なので、ほとんど使う場面はありませんでした。

そこで、思いついたのが、

携帯電話のカメラ機能などで対象の韓国語文字列を撮影し、自動的に画像から文字列を認識して抜き出して、翻訳処理を行うような機械があると便利だなぁと思いました。

もう既にあるかな?
posted by 台北猫々 at 20:09| Comment(0) | TrackBack(0) | 日記

2008年11月11日

韓国旅行

いや〜良かったですヽ(^◇^*)/

円高の恩恵を受けまくり、美味しい焼肉を満足するほど食べて2000円程度済みますし、他にもサムゲタンとかあわび粥も食べて美味しいもの食べてまくりでも、とてもリーズナブルな感じになりました♪

それと、水原華城(世界遺産)というところにも行きました。古い城壁がとても趣き深いものでした(特に華虹門は綺麗な建造物です↓)。

20081111.JPG
posted by 台北猫々 at 20:14| Comment(0) | TrackBack(0) | 日記