MySQL の auto_increment を設定するには、
ActiveRecord::Base.connection.execute('ALTER TABLE table_name AUTO_INCREMENT = 1000')
とする。
また、MySQLで確認するには、
mysql> show table status like 'テーブル名'
mysql> show table status from DB名 like 'テーブル名'
と入力する。
2009年12月18日金曜日
2009年12月16日水曜日
[jQuery] htmlをparseする
$("セレクター", 文字列)
文字列の中で、マッチする要素を持つjQueryオブジェクトを抽出する
ただし、文字列の子からマッチするセレクターを抽出する。
例えば、
str = "<img src='hogehoge.jpg' />";
$("img", str) は null になる
str = "<div><img src='hogehoge.jpg' /></div>";
$("img", str) は img が抽出される
文字列の中で、マッチする要素を持つjQueryオブジェクトを抽出する
ただし、文字列の子からマッチするセレクターを抽出する。
例えば、
str = "<img src='hogehoge.jpg' />";
$("img", str) は null になる
str = "<div><img src='hogehoge.jpg' /></div>";
$("img", str) は img が抽出される
2009年12月15日火曜日
2009年12月1日火曜日
[CSS] セレクタ
ユニバーサルセレクタ
* { margin: 0; }
すべての要素に対してスタイルを指定
要素セレクタ
body { margin: 0; }
記述した要素にスタイルを指定
クラスセレクタ
.class_name { margin: 0; }
class_nameというクラスを持つ要素にスタイルを指定
ユニバーサルセレクタ
#id_name { margin: 0; }
id_nameというIDを持つ要素にスタイルを指定
子孫セレクタ
#id_name div span a { color: blue; }
id_nameというIDを持つ要素の中のdivの中のspanの中のaにスタイルを指定
* { margin: 0; }
すべての要素に対してスタイルを指定
要素セレクタ
body { margin: 0; }
記述した要素にスタイルを指定
クラスセレクタ
.class_name { margin: 0; }
class_nameというクラスを持つ要素にスタイルを指定
ユニバーサルセレクタ
#id_name { margin: 0; }
id_nameというIDを持つ要素にスタイルを指定
子孫セレクタ
#id_name div span a { color: blue; }
id_nameというIDを持つ要素の中のdivの中のspanの中のaにスタイルを指定
2009年11月28日土曜日
[CSS] 2つのclassを指定
css で2つのclassを指定する方法
例えば、hoge と poge を指定するには、
<div class="hoge poge"></div>
とする
スタイルの指定は、
.hoge {
}
.poge {
}
また、両方のクラスを持つ要素のスタイル
.hoge.poge {
}
例えば、hoge と poge を指定するには、
<div class="hoge poge"></div>
とする
スタイルの指定は、
.hoge {
}
.poge {
}
また、両方のクラスを持つ要素のスタイル
.hoge.poge {
}
2009年11月18日水曜日
[Linux] Shellで変数と文字列をつなげる
Shellで変数と文字列をつなげたい場合、変数名を{}で囲む。
DIR="/home/hoge/poge/'
cd ${DIR}test
また、変数を連結したい場合は、変数名を続けて記述する。
srt1="abc"
str2="xyz"
result_str=$str1$str2
echo $result_str
abcxyz
DIR="/home/hoge/poge/'
cd ${DIR}test
また、変数を連結したい場合は、変数名を続けて記述する。
srt1="abc"
str2="xyz"
result_str=$str1$str2
echo $result_str
abcxyz
[Linux] Shellでコマンドの結果を変数に代入する
Shellでコマンドの実行結果を変数に代入するには、コマンドをバッククォート(`)で囲む。
またバッククォート内で変数を記述すると、その変数は展開される。
opt=-la
out=`ls $opt`
echo $output
出力結果は、ls -laと同じ。
またバッククォート内で変数を記述すると、その変数は展開される。
opt=-la
out=`ls $opt`
echo $output
出力結果は、ls -laと同じ。
2009年11月16日月曜日
2009年10月17日土曜日
[住宅] 宅内LAN配線
今まで空配管だったところにLANケーブルを這わすことに。
リード線はすでに入っているので、
あとは長いLANケーブルを買ってきて、
這わせるだけかなと思って20mくらいのケーブルを購入してきました。
が、...
ケーブルのコネクタ部分がひっかかってスムーズに入らない...
無理矢理リード線をひっぱって、
ケーブルが外れたら、また、リード線を入れなければならないので、
結局、コネクタ部分を切断してケーブルだけを配管の中に入れることにしました。
で、壁のところはモジュラジャックにしようかなと。
そこで、モジュラジャックを探していたら、
松下電工の「ぐっとす6シリーズ」というのを知りました。
実際に購入して設置してみましたが、すごい簡単。
何より、特別な工具が必要ないのが便利。おすすめです!
リード線はすでに入っているので、
あとは長いLANケーブルを買ってきて、
這わせるだけかなと思って20mくらいのケーブルを購入してきました。
が、...
ケーブルのコネクタ部分がひっかかってスムーズに入らない...
無理矢理リード線をひっぱって、
ケーブルが外れたら、また、リード線を入れなければならないので、
結局、コネクタ部分を切断してケーブルだけを配管の中に入れることにしました。
で、壁のところはモジュラジャックにしようかなと。
そこで、モジュラジャックを探していたら、
松下電工の「ぐっとす6シリーズ」というのを知りました。
実際に購入して設置してみましたが、すごい簡単。
何より、特別な工具が必要ないのが便利。おすすめです!
2009年10月8日木曜日
[Python] SOAPpyをインストール
python 2.5 で SOAPpy をインストールをしようとするとエラーがでる。
エラーが出ないようにするには、下記のように編集する。
1.編集
SOAPpy/Client.pyを編集
SOAPpy/Types.pyを編集
SOAPpy/Server.pyを編集
SOAPpy/GSIServer.pyを編集
from __future__ import nested_scopes
を最初にimportされるように先頭に持ってくる
2. $ python setup.py build
3. # python setup.py install
参考
http://mytechstop.blogspot.com/2008/04/quick-tip-on-installing-soappy-on.html
エラーが出ないようにするには、下記のように編集する。
1.編集
SOAPpy/Client.pyを編集
SOAPpy/Types.pyを編集
SOAPpy/Server.pyを編集
SOAPpy/GSIServer.pyを編集
from __future__ import nested_scopes
を最初にimportされるように先頭に持ってくる
2. $ python setup.py build
3. # python setup.py install
参考
http://mytechstop.blogspot.com/2008/04/quick-tip-on-installing-soappy-on.html
2009年9月28日月曜日
2009年9月19日土曜日
[SVN] subversion のプロキシ設定
subversionでプロキシを設定する方法。
1. ~/.subversion/servers を編集
2. [global]という項目の
http-proxy-host
http-proxy-port
をそれぞれ設定する
1. ~/.subversion/servers を編集
2. [global]という項目の
http-proxy-host
http-proxy-port
をそれぞれ設定する
2009年9月1日火曜日
[Flash] MOUSE_OVER/MOUSE_OUT と ROLL_OVER/ROLL_OUT
ActionScript3.0 でマウスイベントを扱うとき、
MOUSE_OVER と ROLL_OVER、
MOUSE_OUT と ROLL_OUT
は似ているが異なるもの。
MouseEvent.MOUSE_OVER, MOUSE_OUT
・DisplayObject内のどのDisplayObjectであってもイベントが発生する
・例えば、あるオブジェクトの内側に別のオブジェクトを配置した場合、
カーソルを動かしていくと、
最初に外側のオブジェクトでイベントが発生し、
次に、内側のオブジェクトにカーソルが重なると、
内側のオブジェクトにイベントが発生する。
(外側のオブジェクトにはOUTイベントが発生)
MouseEvent.ROLL_OVER, ROLL_OUT
・DisplayObject全体の領域に対するイベントが発生する
・例えば、あるオブジェクトの内側に別のオブジェクトを配置した場合、
カーソルを動かしていくと、
最初に外側のオブジェクトでイベントが発生し、
次に、内側のオブジェクトにカーソルが重なっても
イベントは発生しない
MOUSE_OVER と ROLL_OVER、
MOUSE_OUT と ROLL_OUT
は似ているが異なるもの。
MouseEvent.MOUSE_OVER, MOUSE_OUT
・DisplayObject内のどのDisplayObjectであってもイベントが発生する
・例えば、あるオブジェクトの内側に別のオブジェクトを配置した場合、
カーソルを動かしていくと、
最初に外側のオブジェクトでイベントが発生し、
次に、内側のオブジェクトにカーソルが重なると、
内側のオブジェクトにイベントが発生する。
(外側のオブジェクトにはOUTイベントが発生)
MouseEvent.ROLL_OVER, ROLL_OUT
・DisplayObject全体の領域に対するイベントが発生する
・例えば、あるオブジェクトの内側に別のオブジェクトを配置した場合、
カーソルを動かしていくと、
最初に外側のオブジェクトでイベントが発生し、
次に、内側のオブジェクトにカーソルが重なっても
イベントは発生しない
[MySQL] CSVファイルで出力
MySQLで結果をCSVファイルに出力するには、
mysql> select * from テーブル名 into outfile 'ファイル名' fields terminated by ',' optionally enclosed by '"';
mysql> select * from テーブル名 into outfile 'ファイル名' fields terminated by ',' optionally enclosed by '"';
2009年8月20日木曜日
[Ruby] Web上のファイルの保存
open-uriを使ったWeb上のファイルの保存
require 'open-uri'
url = 'http://hoge/poge'
filename = File.basement(url)
open(filename, 'w') do |file|
open(url) do |data|
file.write(data.read)
end
end
require 'open-uri'
url = 'http://hoge/poge'
filename = File.basement(url)
open(filename, 'w') do |file|
open(url) do |data|
file.write(data.read)
end
end
[Tech] IEEE802.11系
802.11系のまとめ
IEEE802.11a 54Mbps 5.2GHz
混信の少ない周波数帯域なので、最大速度で通信しやすい
周波数が高いため、伝送距離が短く、障害物の影響を受けやすい
IEEE802.11g 54Mbps 2.4GHz
5.2GHz帯よりも伝送距離が長く、障害物の影響を受けにくい
2.4GHz帯は無線LANやBluetoothなどの多くの電子機器で使用されているため、
混信やノイズの影響を受けやすく、伝送速度が低下する
IEEE802.11b 11Mbps 2.4GH
IEEE802.11a 54Mbps 5.2GHz
混信の少ない周波数帯域なので、最大速度で通信しやすい
周波数が高いため、伝送距離が短く、障害物の影響を受けやすい
IEEE802.11g 54Mbps 2.4GHz
5.2GHz帯よりも伝送距離が長く、障害物の影響を受けにくい
2.4GHz帯は無線LANやBluetoothなどの多くの電子機器で使用されているため、
混信やノイズの影響を受けやすく、伝送速度が低下する
IEEE802.11b 11Mbps 2.4GH
[Rails] Fixtureファイルを使い分ける
RailsでFixtureファイルを使い分ける方法。
Fixtureファイルのファイル名はmodel名と同じ。
場合によって、読み込むファイルを変更したいときには、
ディレクトリを分けて、下記のように読み込むことができる。
rake db:fixtures:load FIXTURES_DIR=dir FIXTURES=hoge, poge
Fixtureファイルのファイル名はmodel名と同じ。
場合によって、読み込むファイルを変更したいときには、
ディレクトリを分けて、下記のように読み込むことができる。
rake db:fixtures:load FIXTURES_DIR=dir FIXTURES=hoge, poge
2009年8月12日水曜日
[住宅] 金消契約のときまでに住民票を新しい住所に移す?
新築住宅を購入したとき、売り主から金消契約までに住民票を新しい住所に移してくださいと言われました。そのときは、「はい、わかりました」と言って、言われた通りに住民票を移そうと思ったのですが、新住所の役所のホームページをみると、住民票は引越し後でなければ移せないとの説明が。。。
※金銭消費貸借契約
金融機関と締結する住宅ローンの借り入れについての契約
そりゃ、そうですよね。実際に住んでないのに住民票を移すのは違法になりそうだし。。。
でも、金消契約前に住民票を移してくださいと言われるのはよくあることみたい。ん?これって何かおかしくありませんか?どういうことなのでしょう?
金融機関としては、住宅ローンなので、その住宅にローンを借りる人が住むという保証が必要のようです。そのため、住民票でそこに住んでいるという確認が必要になります。
一方、役所は、実際に住んでいない場所に住民票を移すことを認める訳にはいきません。
また、住宅の売り主は、ローンの契約がまだ行われない状況で、買い主を新住所に引越しをさせるということはまずしません。
つまり、「ローン契約のためには引越しをする必要がある」「引越しをするにはローンを借りて購入する必要がある」という相反することになり、そのしわ寄せが、買い主にくるわけです。
結果、買い主が引っ越したことにして、住民票を移動し、金消契約を結ぶというのが割と普通に行われています。役所は実際に引越しが行われているかどうかイチイチ調べたりはしないので、住民票を移動させるときに「引越ししましたか?」と聞くだけ。役所も事情はわかっているようです。
でも、この中でリスクがあるのは、買い主だけ。買い主が「引っ越しました」と嘘をつく。本当にこんな仕組みでいいのだろうか?(リスクというより、嘘をつく後ろめたさですね。)
私の場合、売り主が「皆さん、100%住民票を移してから金消契約をしています」と言ってたけど、実際に金融機関に問い合わせると、買い主の自由で別に住民票を移さなくても金消契約を結べると言われました。なんだよ〜。だったら、普通に引越しが終わってから住民票を移せばいいんじゃん!
注意しなければならないのは、登録免許税の軽減が自己居住用の住宅にしか適用されない点。そのため、住民票を移さないのであれば、住宅用家屋証明書が必要となります。これは、市区町村から交付されるもので、場合によっては申立書も必要となります。例えば、親と同居している場合、現在同居していることと、契約が完了したら新住所に引っ越すことを、同居している親に証明してもらう必要があるようです。
また、引越し後、住民票を移したら登記内容も住所を変更しなければなりません(特に急ぐ必要はないようですが)。
住民票を移さないで金消契約を行うのは、この辺りの面倒さとちょっとした費用がかかるのがデメリットですが、その分、後ろめたさはありません。どちらがいいかは個人によりますかね。ただ、こういう選択肢は買い主に与えるべきで、売り主が「皆さんやってますから、住民票を移してください。」っていうのはどうなんだろう?
※金銭消費貸借契約
金融機関と締結する住宅ローンの借り入れについての契約
そりゃ、そうですよね。実際に住んでないのに住民票を移すのは違法になりそうだし。。。
でも、金消契約前に住民票を移してくださいと言われるのはよくあることみたい。ん?これって何かおかしくありませんか?どういうことなのでしょう?
金融機関としては、住宅ローンなので、その住宅にローンを借りる人が住むという保証が必要のようです。そのため、住民票でそこに住んでいるという確認が必要になります。
一方、役所は、実際に住んでいない場所に住民票を移すことを認める訳にはいきません。
また、住宅の売り主は、ローンの契約がまだ行われない状況で、買い主を新住所に引越しをさせるということはまずしません。
つまり、「ローン契約のためには引越しをする必要がある」「引越しをするにはローンを借りて購入する必要がある」という相反することになり、そのしわ寄せが、買い主にくるわけです。
結果、買い主が引っ越したことにして、住民票を移動し、金消契約を結ぶというのが割と普通に行われています。役所は実際に引越しが行われているかどうかイチイチ調べたりはしないので、住民票を移動させるときに「引越ししましたか?」と聞くだけ。役所も事情はわかっているようです。
でも、この中でリスクがあるのは、買い主だけ。買い主が「引っ越しました」と嘘をつく。本当にこんな仕組みでいいのだろうか?(リスクというより、嘘をつく後ろめたさですね。)
私の場合、売り主が「皆さん、100%住民票を移してから金消契約をしています」と言ってたけど、実際に金融機関に問い合わせると、買い主の自由で別に住民票を移さなくても金消契約を結べると言われました。なんだよ〜。だったら、普通に引越しが終わってから住民票を移せばいいんじゃん!
注意しなければならないのは、登録免許税の軽減が自己居住用の住宅にしか適用されない点。そのため、住民票を移さないのであれば、住宅用家屋証明書が必要となります。これは、市区町村から交付されるもので、場合によっては申立書も必要となります。例えば、親と同居している場合、現在同居していることと、契約が完了したら新住所に引っ越すことを、同居している親に証明してもらう必要があるようです。
また、引越し後、住民票を移したら登記内容も住所を変更しなければなりません(特に急ぐ必要はないようですが)。
住民票を移さないで金消契約を行うのは、この辺りの面倒さとちょっとした費用がかかるのがデメリットですが、その分、後ろめたさはありません。どちらがいいかは個人によりますかね。ただ、こういう選択肢は買い主に与えるべきで、売り主が「皆さんやってますから、住民票を移してください。」っていうのはどうなんだろう?
[JS] escape vs. encodeURI
escape()とunescape()
このような理由から、今は encodeURI が使われている。
- 昔は使われていた
- 完全なURLエンコード対応ではない
- 関数の定義が途中で変わっていてオススメできない
- ブラウザ毎に動作が異なる
このような理由から、今は encodeURI が使われている。
[JS] Javascriptでリンク
Javascriptでリンクを書くには、location.hrefを使う
例
<a href="index.html" onclick="location.href='hoge.html';return false;">ホーム</a>
注意点は、return false;でonclick以外の動作を無効化にすること。
これがないと、hrefに指定されたリンク先を表示してしまう。
あるいは、
<a href="javascript:void(0);" onclick="location.href='hoge.html';">ホーム</a>
とすれば、hrefが無効になるので、return false;は不要となる。
例
<a href="index.html" onclick="location.href='hoge.html';return false;">ホーム</a>
注意点は、return false;でonclick以外の動作を無効化にすること。
これがないと、hrefに指定されたリンク先を表示してしまう。
あるいは、
<a href="javascript:void(0);" onclick="location.href='hoge.html';">ホーム</a>
とすれば、hrefが無効になるので、return false;は不要となる。
2009年8月10日月曜日
[住宅] 登記の種類
表示登記
所有権保存登記
所有権移転登記
抵当権設定登記
- 建物が完成した後、所在地や床面積、構造等を特定する登記
- 土地家屋調査士が行う
- 登録免許税は課税されない
- 費用は土地家屋調査士の報酬代のみ
(戸建てであれば、10万程度。マンションならもっとやすくて6〜7万くらいかな?)
所有権保存登記
- 登記簿の甲区(所有権に関する登記)に初めて行われる所有権の登記
- 登録免許税 = 法務局の認定価格 x 4 / 1000
- 平成23年3月31日までは、新築建物は税率が 1.5 / 1000
- 平成22年3月31日までは、長期優良住宅なら税率が 1 / 1000
- 新築の条件は、自己居住用、新築または取得後1年以内に登記、床面積50平方メートル以上
所有権移転登記
- 不動産売買のときに、売り主から買い主へ所有権を移動する登記
- 土地の登録免許税 = 固定資産税評価額 x 10 / 1000(平成23年3月31日まで)
- 建物の登録免許税 = 固定資産税評価額 x 20 / 1000
- 平成23年3月31日までは、新築建物および中古建物の税率は 3 / 1000
- 平成22年3月31日までは、長期優良住宅なら税率が 1 / 1000
抵当権設定登記
- 不動産に設定された抵当権の権利を明らかにする登記
- 登録免許税 = 債権金額 x 4 / 1000
- 平成23年3月31日までは、新築建物および中古建物の税率は 1 / 1000
[住宅] フレッツ光のプロバイダ
テレビは地デジが映れば十分なので、j:comよりフレッツ光にしようかな。
となると、プロバイダは?
※ASAHIネットはNTT経由で申し込みをした場合
となると、プロバイダは?
プロバイダ | 合計 | キャンペーン | ||
BB excite | 525円 | 5,985円 | 3ヶ月無料 | 12ヶ月継続利用 |
ASAHIネット | 819円 | 6,279円 | 5ヶ月無料 ただし、1ヶ月は加入した月のみ (日割りはしない) | 12ヶ月継続利用 |
※ASAHIネットはNTT経由で申し込みをした場合
2009年8月8日土曜日
[住宅] フレッツ光 vs. j:com
戸建て向け
フレッツ光 | j:com | ||
テレビ | 682.5円/月 | TV デジタル コンパクト + 160M 10,595円 | 地デジ パック + 160M 7,880円 |
電話 | 525円/月 | ||
ネット プロバイダ | 5,460円/月 525円/月(BB.excite) | ||
合計 | 7,192.5円 | 10,595円 | 7,880円 |
フレッツ光 | j:com | ||
工事費 | 無料(フレッツ光) 15,750円(TV) | 5,250円 (Web申込) | 10,500円 (外から 屋内分配器まで) |
キャンペーン | ネット4ヶ月無料 工事費無料(ネット) | 紹介(3,000円ずつ) |
2009年8月6日木曜日
[Rails] Rails 2 でmigrationファイルの番号を連番にする
Rails 2 から migration ファイル名が Timestamp になりました。
でも、これって結構使いにくかったりして、前の連番方式に変更する人が割といるそうです。
(Rails 2.2 からは config ファイルで設定できるようになったそうです。)
config/environment.rbを編集
下記を追加
config.active_record.timestamped_migrations = false
これで、連番に戻ります。
でも、これって結構使いにくかったりして、前の連番方式に変更する人が割といるそうです。
(Rails 2.2 からは config ファイルで設定できるようになったそうです。)
config/environment.rbを編集
下記を追加
config.active_record.timestamped_migrations = false
これで、連番に戻ります。
2009年8月4日火曜日
[Rails] ActiveRecordでテーブル名とクラス名が異なる場合
ActiveRecordでは、テーブル名とクラス名が下記のルールになっている。
(ルール)テーブル名 = クラス名の複数形
(例)テーブル名: users
クラス名: User
このルールに従えない場合には、set_table_nameを使う
class User < ActiveRecord::Base
set_table_name :user
end
(ルール)テーブル名 = クラス名の複数形
(例)テーブル名: users
クラス名: User
このルールに従えない場合には、set_table_nameを使う
class User < ActiveRecord::Base
set_table_name :user
end
2009年8月1日土曜日
[住宅] 住宅ローン減税
財務省: 住宅ローン減税制度の概要
適用居住年 平成21-25年居住分 10年間
控除額(一般)
控除額(認定長期優良住宅)
国土交通省: 長期優良住宅法関連情報
長期にわたり良好な状態で使用するための措置が講じられた優良な住宅である「長期優良住宅」について、その建築及び維持保全に関する計画(「長期優良住宅建築等計画」といいます。)を認定する制度の創設を柱とする「長期優良住宅の普及の促進に関する法律」が平成20年12月に公布され、平成21年6月4日に施行されました。
適用居住年 平成21-25年居住分 10年間
控除額(一般)
年末残高の限度額 | 控除額 | 最高 | 合計最高 | |
平成21年 | 5,000万円 | 1.0% | 50万円 | 500万円 |
平成22年 | 5,000万 | 1.0% | 50万円 | 500万円 |
平成23年 | 4,000万円 | 1.0% | 40万円 | 400万円 |
平成24年 | 3,000万円 | 1.0% | 30万円 | 300万円 |
平成25年 | 2,000万円 | 1.0% | 20万円 | 200万円 |
控除額(認定長期優良住宅)
年末残高の限度額 | 控除額 | 最高 | 合計最高 | |
平成21年 | 5,000万円 | 1.2% | 60万円 | 600万円 |
平成22年 | 5,000万円 | 1.2% | 60万円 | 600万円 |
平成23年 | 5,000万円 | 1.2% | 60万円 | 600万円 |
平成24年 | 4,000万円 | 1.0% | 40万円 | 400万円 |
平成25年 | 3,000万円 | 1.0% | 30万円 | 300万円 |
国土交通省: 長期優良住宅法関連情報
長期にわたり良好な状態で使用するための措置が講じられた優良な住宅である「長期優良住宅」について、その建築及び維持保全に関する計画(「長期優良住宅建築等計画」といいます。)を認定する制度の創設を柱とする「長期優良住宅の普及の促進に関する法律」が平成20年12月に公布され、平成21年6月4日に施行されました。
2009年7月23日木曜日
[CSS] width: 100% の解釈
CSSで width: 100% を指定した場合、margin, padding, border を指定すると、 100% + 指定した幅 が全体の横幅となる。
例えば、
<style type="text/css">
.container {
height: 200px;
width: 200px;
overflow: auto;
}
.content {
width: 100%;
height: 100%;
background-color: #ccc;
border: 1px solid red;
}
</style>
<div class="container">
<div class="content"></div>
</div>
この場合、content の横幅は 100% + 1px x 2 となる。100%は200pxなので、横幅は202pxとなり、スクロールバーが表示される。margin, paddingでも同様。
100%の解釈は、IE(IE7, IE8で確認)、FF3でも同じ。
IEとFF3で異なるのは、スクロールバーの幅を100%に含むかどうかが異なるみたい。例えば、上の例で、border を border-top にして、縦スクロールバーが出るようにすると、FFでは縦スクロールバーのみ表示されるが、IEでは縦と横のスクロールバーが表示される。IEではcontentの横幅が 200px + スクロールバーの幅 になるのに対し、FFではスクロールバーの幅を含めた横幅が 200px になる模様。
例えば、
<style type="text/css">
.container {
height: 200px;
width: 200px;
overflow: auto;
}
.content {
width: 100%;
height: 100%;
background-color: #ccc;
border: 1px solid red;
}
</style>
<div class="container">
<div class="content"></div>
</div>
この場合、content の横幅は 100% + 1px x 2 となる。100%は200pxなので、横幅は202pxとなり、スクロールバーが表示される。margin, paddingでも同様。
100%の解釈は、IE(IE7, IE8で確認)、FF3でも同じ。
IEとFF3で異なるのは、スクロールバーの幅を100%に含むかどうかが異なるみたい。例えば、上の例で、border を border-top にして、縦スクロールバーが出るようにすると、FFでは縦スクロールバーのみ表示されるが、IEでは縦と横のスクロールバーが表示される。IEではcontentの横幅が 200px + スクロールバーの幅 になるのに対し、FFではスクロールバーの幅を含めた横幅が 200px になる模様。
2009年7月16日木曜日
[CSS] スクロールする領域内で position: relative; を指定すると、スクロールが効かなくなる
overflow: auto; を設定したdiv内で、
position: relative; を設定すると、
overflowした部分がそのまま表示され、
かつ、スクロールが効かなくなる現象があった。
Firefox 3 では問題ないが、IE7, IE8 で起きた現象。
IEのバグらしい。
(例)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
.frame {
width: 100px;
height: 100px;
overflow: auto;
}
.item {
width: 80px;
height: 80px;
position: relative;
background-color: red;
margin-bottom: 5px;
}
</style>
</head>
<body>
<div class="frame">
<div class="item">
</div>
<div class="item">
</div>
<div class="item">
</div>
</div>
</body>
</html>
※説明のために簡略化。
どうしてもrelativeが使いたかったのです。。。
解決方法としては、
1. DOCTYPEを無くすとうまく表示される。
つまり、互換モードにすればいいのかな。
でも、これだと全体の表示が崩れてしまいそう。
(もうすでにいろいろ書いていたので。)
2. .frame に position: relative; を追加する。
これでIEでもFFでも思ったとおりの表示になる。
FF, IE以外は確認してません。。。
position: relative; を設定すると、
overflowした部分がそのまま表示され、
かつ、スクロールが効かなくなる現象があった。
Firefox 3 では問題ないが、IE7, IE8 で起きた現象。
IEのバグらしい。
(例)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
.frame {
width: 100px;
height: 100px;
overflow: auto;
}
.item {
width: 80px;
height: 80px;
position: relative;
background-color: red;
margin-bottom: 5px;
}
</style>
</head>
<body>
<div class="frame">
<div class="item">
</div>
<div class="item">
</div>
<div class="item">
</div>
</div>
</body>
</html>
※説明のために簡略化。
どうしてもrelativeが使いたかったのです。。。
解決方法としては、
1. DOCTYPEを無くすとうまく表示される。
つまり、互換モードにすればいいのかな。
でも、これだと全体の表示が崩れてしまいそう。
(もうすでにいろいろ書いていたので。)
2. .frame に position: relative; を追加する。
これでIEでもFFでも思ったとおりの表示になる。
FF, IE以外は確認してません。。。
2009年7月15日水曜日
[iPhone] View Orientation
iPhoneは横にすると、自動的に画面を横表示に切り替えられる。
今日は、縦や横の切り替えを試してみた。
1. Xcodeの起動
2. 新規プロジェクトの作成
ファイル > 新規プロジェクト...
View-based Applicationを選択
3. UIの作成
View上にLabelを配置
配置したLabelを選択し、Tools > Size Inspector を開く
Placementで中央にLabelを配置し、
Autosizingで何も選択しないようにすると、
自動で中央に位置を合わせてくれる
4. ソースコードの編集
ViewOrientationViewController.mを開く
(この場合、ViewOrientationがプロジェクト名)
shoudAutorotateToInterfaceOrientationのコメントを外し、
YESを返すように編集
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
// return (interfaceOrientation == UIInterfaceOrientationPortrait);
return YES;
}
5. ビルドと実行
ビルドと実行するとiPhone Simulatorが立ち上がる
iPhone Simulatorの向きを変えるには、command + 矢印 (右、左)で切り替え
2009年7月13日月曜日
[Git] 新規ファイルのインポート
Gitをインストールしたので、ソースコードをGitのリビジョン管理化に置いてみました。
0. 設定
コミットしたときの名前やメールアドレスを設定する
$ git config --global user.name "xxx xxx"
$ git config --global user.email "xxx@xxx.com"
1. 管理したいソースのあるディレクトリで、
$ git init
下記のように表示される
Initialized empty Git repository in /Users/...
また、.gitというディレクトリができているのがわかる
2. ファイルをステージに追加する
$ git add .
. で現在のディレクトリのすべてのファイルを追加する
Gitでは、コミット前の段階をステージに追加すると表現するらしい
3. コミット
$ git commit
vi が立ち上がり、コメントを追加する
viの操作
i: insert
esc: モード切り替え
wq: 保存して終了
個人でやるならここまでで十分?
Gitらしい分散管理はやってないけど。。。
本当は git push や git pull でおおもとのレポジトリに追加やマージをするみたい
2009年7月7日火曜日
[iPhone] Hello World!
初めてiPhoneアプリを作ってみました。
最初に作るアプリは、やっぱり「Hello World」。
1. Xcodeの起動
/Developer/Applications/Xcode を起動
もしくはSpotlightでXcodeを検索して起動
2. プロジェクトの作成
ファイル > 新規プロジェクト...
iPhone OS/Application のテンプレートから
Window-based Application を選択
プロジェクト名を入力して保存する
3. ビルド&実行
ビルドの構成が 「Simulator - 3.0 | Debug」 になっていることを確認し、
ビルド > ビルドと実行
を選択して、実行する
当然、まだ何も作ってないので、何もない画面ですが、
ちゃんとiPhone Simulatorが立ち上がります。
4. UI作成
ファイルリストからMainWindow.xibをダブルクリック
・xibはUIの定義されたXMLファイル
・Interface Builder で簡単に編集できる
Interface Builder
a. ラベルの作成
・LibraryからLabelを探し、Windowにドラッグ&ドロップする
・Tools > Inspector を選択し、Label Attributes を編集
Textを空にする
b. ボタンの作成
・LibraryからRound Rect Buttonを選択し、
Windowにドラッグ&ドロップする
・Tools > Inspector を選択し、Button Attributes を編集
Titleに「Click!」と入力
5. コード編集
HelloWorldAppDelegate.hを編集する
#import
@interface HelloWorldAppDelegate : NSObject
UIWindow *window;
IBOutlet UILabel *label; // <-- 追加
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
-(IBAction)putText; // <-- 追加
@end
HelloWorldAppDelegate.mを編集する
// 追加
- (IBAction)putText {
label.text = @"Hello World!";
}
6. Outletsとアクションの接続
MainWindow.xibを選択
Hello World App Delegate を control を押しながらクリック
新たに開いたウィンドウのOutlets/labelの右の丸をドラッグして、
Windowの中のLabelにドロップする
同様にReceived Actions/putTextの右の丸をドラッグして、
Windowの中のボタンにドロップする
開いたウィンドウの中から「Touch Up Inside」を選択
7. ビルド&実行
「Click!」をクリックすると、「Hello World!」が表示される
2009年7月3日金曜日
[iPhone] iPhone SDK のダウンロード
1. Apple IDの登録(無料 )
2. iPhone SDKのダウンロード
http://developer.apple.com/iphone/ に行ってログイン Downloads > iPhone SDK 3.0 から iPhone SDK 3.0 をダウンロード
2009年7月1日水曜日
[mac] パスの設定
パスを表示する
$ printenv PATH
パスの一覧を表示する
$ printenv
環境変数の一覧を表示する
$ echo $PATH
パスの一覧を表示する
パスを設定する
$ PATH=$PATH:/usr/local/git/bin
$ export PATH
ログインする度に自動的に設定する
~/.bash_profile を編集(もしくは作成)
export PATH=$PATH:/usr/local/git/bin
[Git] Gitをインストール
Gitが流行っているみたいなのでインストールしてみた。
GitはSubversionのようなソースコード管理を行うためのシステムだが、分散型なのが特徴(個人で使うには関係ないか...)。でもせっかくなので試してみた。
下記からdmgファイルをダウンロードしてきてインストールするだけ。簡単!
あとは ~/.bash_profile を編集してパスを通すだけ。
PATH=$PATH:/usr/local/git/bin
※デフォルトでは /usr/local/git にインストールされる
登録:
投稿 (Atom)