便利なコマンド(パーミッション一括変更)

会社のホームページリニューアルをしていて権限がバラバラだったので一括で権限を設定
しようとしていた時に見つけた便利なコマンド


chmod a+Xr -R xxxxxxx

これはa(全てにu(user)+g(group)+o(other))+ Xが付いているディレクトリーにはXをそのまま付け、付いていないディレクトリーにはXを付ける。またrを全てに付ける。それを-Rはディレクリー以下全てにという意味らしい。

なんて素晴らしいコマンドなんでしょう。忘れないようにメモしておく。。。

ubuntu10.10 64bitでbluetoothマウスを使う

ubuntu10.10の64bitでbluetoothマウスを設定してみました。

パソコン本体 :マウスコンピューター Luv Book Lシリーズ
マウス    :ソニー        vgp-bms10 レーザーbluetoothマウス

パソコン本体にAzurewave製 Bluetooth® V2.1+EDR 準拠モジュール
が内臓されているはずなのですが、認識しませんでした。

いろいろ調べましたが、うまくいかなかったので仕方なくアダプタを買いました。

使うソフトウェアはbluetoothの2.32.0-0ubuntu1 (gnome-bluetooth)
それを消してしまった人はubuntuソフトウェアでインストールするだけ!


さすが内蔵されているためアダプタの説明書のような作業はいらず、
アダプタを入れた段階で認識し完了。

使えて良かった。。。

Ruby on Railsでガラケーの文字種別をヘルパーでオプションを作り見やすいソースにしてみた

ガラケーサイトを制作する中で3キャリアそれぞれの文字種別を管理するヘルパーでオプションを作りそれを使うことによりより見やすいソースを書くことが出来た。

まずは3キャリアそれぞれが必要なコードは

まずdocomo

istyle="1"(全角かな)
istyle="2"(半角カナ)
istyle="3"(半角英字)
istyle="4"(半角数字)

docomo XHTML

-wap-input-format:"*<ja:★>";

これは★の位置に入れる

h=全角かな
hk=半角カナ
en=半角英字
n=半角数字

AU

format="*A"(半角英字の大文字)
format="*a"(半角英字の小文字)
format="*N"(半角数字)
format="*X"(半角英数の大文字)
format="*x"(半角英数の小文字)
format="*M"(全角かな)
format="*m"(全角英字)

softbank

mode="hiragana"(全角かな)
mode="katakana"(全角カナ)
mode="alphabet"(半角英字)
mode="numeric" (半角数字)

以上のようになっているが、docomoはHTMLとXHTMLで違うようです。
ここは気をつけなければいけないですね。
それを踏まえてヘルパーにmobile_helper.rbのようなものを作って
JPmobileと連動させて作って見ました。

def text_field_options(type, options = {})
    hash = case type
    when :numeric
      istyle = 4
      style = '-wap-input-format:"*<ja:n>"";-wap-input-format:*x;'
      mode = 'numeric'
    when :alphabet
      istyle = 3
      style = '-wap-input-format:"*<ja:en>";-wap-input-format:*x;'
      mode = 'alphabet'
    end

    hash = case request.mobile
    when Jpmobile::Mobile::Docomo
      { :istyle => istyle, :style => style }
    when Jpmobile::Mobile::Au
      { :istyle => istyle }
    when Jpmobile::Mobile::Softbank
      { :istyle => istyle, :mode => mode }
    else
      {}
    end
    hash.merge(options)
  end

このようにすればパスワードの時やメールアドレス入力の時に短いオプションで綺麗に
間違いのないソースが書けました。


参考文献
http://www.abe-tatsuya.com/web_prog/mobile_web/input_attributes.php
http://webdirector.livedoor.biz/archives/51781969.html

スマートフォンサイトを制作する際に設定しておきたいメモ

スマートフォンのサイトを作ったときに最初に設定が必要だと思ったところを忘れないようにメモしておきました。

まずはmetaタグで全体の設定をしました。

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=0.6667, user-scalable=0;"> 

と設定しました。


content=width=device-width

androidはほぼ幅320pxだが
iphone3G(幅320px)
iphone4(幅640px)
で幅が違うのであらゆるスマートフォンからアクセスしても幅いっぱいに表示されるように設定をしました。


maximum-scale=0.6667
iphoneに有効で横に画面を傾けた時に文字の大きさが変わらないように設定です。

user-scalable=0
拡大をするかしないかの設定です。これはサイトによってですが、今回は拡大しないサイトですので「0」と設定しましたが、「no」でも同じ意味みたいです。ちなみにこれを

user-scalable=1
にすると手で触って、拡大をしても拡大されたままにならないが触っているときだけ少し膨らむ。user-scalable=2は2倍、3にすると3倍になるようだ。

initial-scale=1.0
デフォルト表示の設定で今回は拡大もないので等倍に設定してます。

そしてスタイルシートなどで設定しておくと便利な

-webkit-text-size-adjust: none;

これは、iphoneは画面の表示領域によって文字を自動で拡大縮小をするようで、これをしておけばスタイルシートで設定したフォントサイズがしっかりと反映されるようです。

以上のことをまず最初に決めて設定しておくとあとあとすごく便利でした。あとからでも変更は簡単ですが、スタイルシート変更するときなどに設定しておくと便利です。

ちなみに今回はipod-touchを買って確かめながら進めてました。やはり便利ですね〜iphoneは契約したくないし、エミュレータもありますが、やはり本物で触りながら作るのが一番です!!

Ruby 1.8.7 と rails をインストール

そういえばrailsのインストールを書いていなかったのでメモ変わりに書き残しておこう思ったので書いておく!
ubuntu10.10の64bitにインストール

ubuntuではapt-getでインストール


$ sudo apt-get install libssl-dev zlib1g-dev libreadline6-dev
ここではバージョン1.8.7-p299

$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p299.tar.gz
$ tar xfvz ruby-1.8.7-p299.tar.gz
$ cd ruby-1.8.7-p299
$ ./configure
$ make
$ sudo make install
確認してみます。

$ ruby -v
ruby 1.8.7 (2010-06-23 patchlevel 299) [x86_64-linux]$ wget

ruby1.8にはrubygemsが付属していない為ソースをダウンロードしてインストール。
makeは必要ないみたいで「ruby setup.rb」でインストール


$ wget http://rubyforge.org/frs/download.php/73882/rubygems-1.4.2.tgz
$ tar xfvz rubygems-1.4.2.tgz
$ cd rubygems-1.4.2
$ sudo ruby setup.rb
確認してみます。

$ gem -v
1.4.2
rails をバージョン師弟でインストール

$ sudo gem install rails -v 3.0.3
確認してみます。

$ rails -v
Rails 3.0.3
$ gem list

LOCAL GEMS ***

abstract (1.0.0)
actionmailer (3.0.3)
actionpack (3.0.3)
activemodel (3.0.3)
activerecord (3.0.3)
activeresource (3.0.3)
activesupport (3.0.3)
arel (2.0.9)
builder (2.1.2)
bundler (1.0.10)
erubis (2.6.6)
i18n (0.5.0)
mail (2.2.15)
mime-types (1.16)
polyglot (0.3.1)
rack (1.2.2)
rack-mount (0.6.13)
rack-test (0.5.7)
rails (3.0.3)
railties (3.0.3)
rake (0.8.7)
thor (0.14.6)
treetop (1.4.9)
tzinfo (0.3.25)

無事インストールできました!!

参考文献:はじめる!Rails3(1)
http://ref.xaio.jp/ruby/install/linux

はじめる!Rails3(1)15.8演習問題答え

15.8演習

Bundler に関して、以下の設問に答えてください。

1. 管理対象の Ruby アプリケーションが必要とする Gem パッケージを定義するファイルの名前は何ですか。
2. 必要なすべての Gem パッケージがインストールされていることを確認するコマンドは何ですか。


1,Gemfile 2,bundle check

はじめる!Rails3(1)14.7演習問題答え

14.7演習

1.書籍が出版年で昇順にソートされるようにbooks#index, books#checked_out アクション
を修正してください。


.order("publish_year ASC")

2.Book モデルにスコープchecked_out, checked_in を作り、 books コントローラを簡潔に書き換えなさい。


raw(links.join(" "))はIF文の外に


class Book < ActiveRecord::Base
scope :checked_out, where(:checked_out => true).order("publish_year ASC")
scope :checked_in, where(:checked_out => false).order("publish_year ASC")
end

new@book.checked_out = false

create@book = Book.create!(params[:book])
を修正

formの<%= form.hidden_field :checked_out %>も追加

3.タイトルで書籍を検索する機能を実装してください。


get :checked_out, :search, :on => :collection

scope :search, lambda { |query|
where([ "title LIKE ?", "%#{query}%" ])
}<%= form_tag [ :search, :books ], :method => :get,
:style => "text-align: right" do %>
<%= text_field_tag "query", params[:query] %>
<%= submit_tag "検索" %><% end %>


def search
@books = Book.checked_in
@books = @books.search(params[:query]) if params[:query].present?
render :action => "index"
end