久々に irb
windows のコンソールで使う。
まず、
irb
と打つと ruby コマンドが打てるようになる。
↓たとえば、こんな感じに使う。
irb(main):025:0> require 'digest/sha1'
=> true
irb(main):026:0> Digest::SHA1.hexdigest("test")
=> "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"
irb(main):027:0>
« 2006年12月 | メイン | 2007年02月 »
windows のコンソールで使う。
まず、
irb
と打つと ruby コマンドが打てるようになる。
↓たとえば、こんな感じに使う。
irb(main):025:0> require 'digest/sha1'
=> true
irb(main):026:0> Digest::SHA1.hexdigest("test")
=> "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"
irb(main):027:0>
■[security]PDFファイルでXSSが可能!危険度高し
[WEB SECURITY] Universal XSS with PDF files: highly dangerous
WebサイトにPDFファイルが置いてある場合、下記のようにすることでスクリプトが実行できてしまうという問題です。
http://path/to/pdf/file.pdf#whatever_name_you_want=javascript:your_code_here
サーバー側の対処としては、標準の「application/pdf」ではなく、「application/octet-stream」で開くようにすればブラウザ内でPDFファイルを開かず、外部アプリケーションとして開くことになるので回避できる様子。ただし、PDFファイルをブラウザ外で開くことになるので、PDFを主なコンテンツとしているようなWebサイトでは使い勝手が変わってしまう。設定変更を実施する際には顧客の理解が必要でしょうか。
設定はbunさんの「"週"記(2007-01-04)」が参考になります。(下記は引用)
↓Apacheの設定
<Files "*.pdf">
Header set Content-Disposition: attachment
ForceType application/octet-stream
</Files>
ユーザー側の対処としては、Acrobat Readerを Ver.8.0.0以降にするとよいようです。アップデートが必須です。
参考:
http://www.itmedia.co.jp/enterprise/articles/0609/20/news022.html
http://d.hatena.ne.jp/sen-u/20070104/p1
http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/
http://dev.mysql.com/doc/refman/4.1/ja/mysqldump.html
shell> mysqldump [OPTIONS] database [tables]
か mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
か mysqldump [OPTIONS] --all-databases [OPTIONS]
久々にhtml 書いたので 記録してみる。
http://www.tohoho-web.com/html/map.htm
http://www.tagindex.com/html_tag/img/img_map.html
--------------------------------------------------------------
<img src="image/map.gif" alt="マップサンプル" usemap="#maptest">
<map name="maptest">
<area shape="rect" coords="22,11,122,62" href="map1.html" alt="リンク1">
<area shape="circle" coords="184,86,30" href="map2.html" alt="リンク2">
<area shape="poly" coords="87,78,30,110,81,139,69,113" href="map3.html" alt="リンク3">
</map>
--------------------------------------------------------------

久々にhtml 触ったのでメモしてみる。
http://www.tohoho-web.com/html/char.htm
| 記述 | 表示 | 説明 |
|---|---|---|
| < | < | 右大不等号。 |
| > | > | 左大不等号。 |
| & | & | アンドマーク。アンパサンド。 |
| " | " | ダブルクォート。引用符。 |
| | 空白文字。 |
ムーバブルタイプのタグをいじっている時に気づいた。
「タグの入れ子が出来ない!」
タグの入れ子が出来るプラグインを発見。
↓
MTTagInvoke
上記URLからダウンロードしたファイルを展開して、mt/plugins の中にアップロードしてください。
使用例:
<ul>
<MTTagInvoke tag_name="MTEntries">
<MTTagInvokeAttribute name="category"><$MTEntryCategory$></MTTagInvokeAttribute>
<MTTagInvokeAttribute name="lastn">5</MTTagInvokeAttribute>
<MTTagInvokeContent>
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTTagInvokeContent>
</MTTagInvoke>
</ul>
青い字の部分では、MTTagInvokeプラグインをMTEntriesコンテナタグに適用することを意味しています。 赤い字の部分では、MTEntriesコンテナタグのcategory属性に<$MTEntryCategory$>の指定と、lastn属性に最新エントリ5件分を指定しています。 緑の字の部分では、MTTagInvokeプラグインを適用したことで、<MTEntries>が<MTTagInvokeContent>に置き換わったと思ってください。
参考:
http://bizcaz.com/archives/2006/08/12-171526.php
○MTTagInvoke
http://www.nonplus.net/software/mt/MTTagInvoke.htm
おまけ:
ムーバブルタイプ3.2 テンプレート・タグ リファレンス
ムーバブルタイプ3.3 テンプレート・タグ リファレンス
こ、これは便利。
http://bizcaz.com/archives/2006/05/14-142231.php
○使い方
1.EvalTemplate.pl をダウンロードする。
※各自の環境に合った文字コードで保存するようにしてください。僕は Shift_JIS で保存しました。
2.EvalTemplate.pl をアップロード。
アップロード先は、いつものmt/plugins/ の中にアップロードします。
3.テンプレート修正
対象とするテンプレートは、メインページ、個別アーカイブ、カテゴリアーカイブと、日付アーカイブの各テンプレートです。テンプレート内の、エントリ本文(<$MTEntryBody$>)、エントリ追記(<$MTEntryMore$>)を以下のように修正します。
修正前 <div class="entry-body"><$MTEntryBody$></div>修正後
<div class="entry-body"><$MTEntryBody eval="1"$></div>
青い字に部分を追加します。同様に、エントリ追記(<$MTEntryMore$>)にも追加します。
修正したら、いつもの保存して再構築します。
以上で、エントリ内でもMovableType(ムーバブルタイプ)のタグを使用できるようになりました。
注意事項
原理的にはグローバルフィルタが有効にできる場所であれば、どこでも、どんなテンプレートタグでも使えます。
強力な反面、悪用されると危険です。間違ってコメントやトラックバックで有効にしないよう、十分に注意を払ってください。
エントリ本文(<$MTEntryBody$>)、エントリ追記(<$MTEntryMore$>)に限定した方がいいと思います。
最近はムーバブルタイプ一色。
1月にひと段落して、次の開発へ進む予定。
ムーバブルタイプを使っていると、
「これできるかなー」
と思うことは、ほとんどプラグインがある(^^
プラグインを開発した人偉い!
今回は
「エントリのタイトルって短く表示できないかなー」
と言う問いに対して、
「MobableType タイトルをトリミング(短く)して表示するプラグイン」
があった。
○使い方
1.ファイルの作成
mt-trimj2.pl を作成する。(文字コードはUTF8になっている)
2.ファイルのアップロード
ファイルをプラグインフォルダ( /plugins )へアップロードする
3.使う
例) <$MTEntryTitle$> → <$MTEntryTitle trimj2_to="46"$>
参考:
http://home.kanto-gakuin.ac.jp/~ito/mt/archives/2005/09/post_34.html
・・・インストールに苦労した...。
Plaggerのインストールは簡単だけど、Perlモジュールのインストールが面倒だった。
とりあえず、Plaしてみたのは
・マイミクの日記をGmailへ送る。
・Bloglinesに登録されているフィードをGmailへ送る。
とりあえず、自宅のWindowsマシンにインストールできたので、
次は、Linuxマシンにインストールして、cronなどを利用して色々やりたい。
○Plaggerの概要
http://www.atmarkit.co.jp/fnetwork/rensai/5minplagger/01.html
○Plaggerのインストール
http://blog.livedoor.jp/hakin/archives/50551036.html
http://blog.livedoor.jp/hakin/archives/50690272.html
○Plagger
http://plagger.org/trac/wiki/WikiStartJa
subversion で merge を行ったのでメモ。
○ソースの管理状況
Local側
|-trunk ←本番用
|-branches/feature_route_tracking ←通常開発用
|-tags/ver1.00
SVN側
|-trunk
|-branches/feature_route_tracking
|-tags/ver1.00
○手順
1.開発したものをコミット
Local
|-branches/feature_route_tracking
で開発した物を
SVN
|-branches/feature_route_tracking
にコミット。
2.マージ
Local
|-trunk
に
SVN
|-branches/feature_route_tracking
との差分をマージする。
3.SVN trunkにコミット
Local
|-trunk
を
SVN
|-trunk
にコミット。
これで最新がSVNのtrunkに入る。
4.場合に応じて tagsに記録する
Local
|-trunk
から
SVN
|-tags/ver1.01
とかにして記録。
※このやり方が正しいかどうかは分かりませんので、ご注意を。個人的メモです。
参考:
http://subversion.bluegate.org/doc/ch04s03.html#svn.branchmerge.copychanges.keyconcept
○postgres dump の方法
1.SSH で サーバーにログイン
2.ファイルの用意(適切な管理権限のあるフォルダ内で行いましょう)
例: /home/postgres/backup/foo.bak
3.ファイルのパーミッションを777に変更。
4.su - postgres
5.pg_dump [db_name] > /home/postgres/backup/foo.bak
6.ファイルのパーミッションを400に変更などして適切な権限管理を行う。
windows にインストールする場合、One-Click Ruby Installer が楽です。
exeファイルをダブルクリックするだけ。環境変数の設定までやってくれます。
○RubyForge
http://rubyforge.org/frs/?group_id=167&release_id=6672

ローカルマシンで見ることが出来る。
$ gem_server
http://127.0.0.1:8808/
h氏にRails で cron が使えるプラグイン教えていただいたのでメモ。
rails CSV形式のファイル処理プラグイン
http://www.gesource.jp/programming/ruby/database/fastercsv.html
Ruby on Rails 1.2 が出た。
○ruby on rails
http://www.rubyonrails.org/
○ActiveResourceが目玉機能らしい>rails1.2
http://d.hatena.ne.jp/keyword/ActiveResource
http://cesare.seesaa.net/article/19567455.html
○既存の機能ももちろん進化
http://subtech.g.hatena.ne.jp/secondlife/20061222/1166765090
:以下引用
-------------------------
start_form_tag, end_form_tag を使うと警告ができるようなりました。代わりに form_tag, を使いましょう
-------------------------
これは は使わずに
-------------------------
form_tag do
end
-------------------------
と form_tag にブロックを渡す方法が正しいかと。それと
-------------------------
scrpit/server は Rails 1.1 では WEBrick を起動し
-------------------------
ですが、実際に Rails 1.1 では lighttpd, webrick の順番で起動されます。1.2 からは mongrel があると mongrel が最優先になる変更、ですね。
http://www.asahi-net.or.jp/~AX2S-KMTN/ref/status.html
以下引用
HTTPプロトコルでは、コンピュータ同士が通信している間に、お互いの状態(ステータス)をやり取りしています。このコードのことをステータス・コード(Status Code)と呼び、"404 Not Found"のように、エラーが発生した場合にブラウザ上に表示されたり、エラーが発生しなかった場合にも見えないところでやり取りされています。このコードの仕様は「RFC 2068」で規定されています。
ステータスコードは3桁の数字が割り当てられており、1桁目の数字はジャンル別に割り振られています。
ステータス・コードはHTTPプロトコルのバージョンアップに従って追加・修正されますが、主なステータス・コードは以下のようになっています。
| コード | ステータス | HTTPバージョン | |
|---|---|---|---|
| 意味 | |||
| 1xx | Informational | 情報 | - |
| 100 | Continue | 継続 | 1.1 |
| クライアントは、そのリクエストを継続してもよい。 | |||
| 101 | Switching Protocols | プロトコル切替え | 1.1 |
| サーバは、この接続で使用されているアプリケーション・プロトコルの変更に対するクライアントのリクエストに応じようとしている。 | |||
| 2xx | Success | 成功 | - |
| 200 | OK | OK | 1.0 |
| リクエストは成功した。レスポンスと共に返される情報は、リクエストで使用されたメソッドに依存し、例えば、GET、HEAD、POST、TRACEのようになる。 | |||
| 201 | Created | 生成 | 1.0 |
| リクエストは果たされ、結果として新しいリソースが生成された。 | |||
| 202 | Accepted | 受理 | 1.0 |
| リクエストは処理用に受け入れられたが、処理は完了していない。CGIのように別の場所でデータを生成する時など。 | |||
| 203 | Non-Authoritative Information | 非認定情報 | 1.1 |
| エンティティ・ヘッダーで返されたメタ情報は、オリジナル・サーバから入手できる確定的な集合ではなく、ローカルあるいはサード・パーティーのコピーから集められたものである。 | |||
| 204 | No Content | コンテンツなし | 1.0 |
| サーバはリクエストを果たしたが、送り返すべき情報が存在しない。空のページにアクセスしようとした時など。 | |||
| 205 | Reset Content | コンテンツリセット | 1.1 |
| サーバはリクエストを果たしたが、ユーザ・エージェントは、リクエストを送信させたドキュメント・ビューをリセットするべきである。 | |||
| 206 | Partial Content | 部分的コンテンツ | 1.1 |
| サーバは、リソースに対する部分的なGETリクエストを果たした。 | |||
| 3xx | Redirection | リダイレクション | - |
| 300 | Multiple Choices | 多重選択 | 1.1 |
| リクエストされたリソースは、それぞれが固有のロケーションをもつ表現セットの一つに対応し、ユーザ(あるいはユーザ・エージェント)が、より望ましい表現を選別してそのリクエストをそのロケーションにリダイレクトできるように、エージェント駆動型ネゴシエーション情報が提供されている。 | |||
| 301 | Moved Permanently | 恒久的移動 | 1.0 |
| リクエストされたリソースは新しい恒久的なURIを割り当てられたので、このリソースへの今後の参照は、返されたURIの一つを使用するべきである。 | |||
| 302 | Moved Temporarily | 一次的移動 | 1.0 |
| リクエストされたリソースは、一時的に異なるURIに属する。 | |||
| 303 | See Other | 他を参照 | 1.1 |
| リクエストに対するレスポンスは異なるURIの下で発見でき、そのリソースをGETメソッドを使って検索することが望ましい。 | |||
| 304 | Not Modified | 変更なし | 1.0 |
| リクエストされたリソースが指定された日付以降に更新されていない。クライアントが条件付きGETリクエストを実行し、アクセスは許可されたが、ドキュメントが更新されていない場合には、サーバはこのステータス・コードでレスポンスを行なうべきである。 | |||
| 305 | Use Proxy | プロキシーを使用 | 1.1 |
| リクエストされたリソースは、ロケーション・フィールドによって与えられるプロキシを通じてアクセスされなければならない。 | |||
| 4xx | Client Error | クライアント・エラー | - |
| 400 | Bad Request | 不正リクエスト | 1.0 |
| リクエストは不正な構文であるために、サーバに理解されなかった。打ち込んだURLに変な間違いがあった時など。 | |||
| 401 | Unauthorized | 許可なし | 1.0 |
| リクエストは、ユーザ認証を必要とする。認証に失敗した時など。 | |||
| 402 | Payment Required | 支払いリクエスト | 1.1 |
| (このコードは,将来の使用のために予約されている。) | |||
| 403 | Forbidden | アクセス拒否 | 1.0 |
| サーバはリクエストを理解したが、そのリクエストの実行を拒否した。アクセス権限がない時など。 | |||
| 404 | Not Found | 存在不明 | 1.0 |
| サーバは、リクエストURIと一致するものを見つけられなかった。アドレスが無くなった時など。 | |||
| 405 | Method Not Allowed | 禁止メソッド | 1.1 |
| リクエスト・ラインで指定されたメソッドは許されていない。 | |||
| 406 | Not Acceptable | 受理不可 | 1.1 |
| リクエストによって識別されるリソースは、リクエスト中に送信された受理ヘッダに従って、受理できない内容特性をもつレスポンス実体を生成することができるのみである。 受信の条件が適合していないため、リクエストされるリソースは受理できない。 | |||
| 407 | Proxy Authentication Required | プロクシー認証リクエスト | 1.1 |
| このコードは401(Unauthorized)と似ているが、クライアントは最初にプロキシに対する認証を行なわなければならないことを示している。 | |||
| 408 | Request Time-out | タイムアウト | 1.1 |
| クライアントは、サーバの待機時間内にリクエストを発行しなかった。 | |||
| 409 | Conflict | 衝突 | 1.1 |
| リクエストは、リソースの現在の状態と衝突するために完了できなかった。 | |||
| 410 | Gone | 行方不明無い | 1.1 |
| リクエストされたリソースは、もはやそのサーバでは入手できなくなっており、転送先のアドレスも不明である。 | |||
| 411 | Length Required | 長さ要求 | 1.1 |
| サーバは、定義された Content-Lengthのないリクエストの受理を拒否した。 | |||
| 412 | Precondition Failed | 前提条件失敗 | 1.1 |
| 一つ以上のリクエスト・ヘッダ・フィールドで与えられた前提条件が、サーバでテストされたときに偽(不正)であると評価された。 | |||
| 413 | Request Entity Too Large | リクエスト実体が大きすぎ | 1.1 |
| リクエスト実体がサーバの想定よりも、あるいは処理可能なものよりも大きいため、想定処理を拒否している。 | |||
| 414 | Request-URI Too Large | リクエストURIが大きすぎ | 1.1 |
| リクエストURIがサーバの想定よりも、あるいは処理可能なものよりも大きいため、サーバはサービスを拒否している。 | |||
| 415 | Unsupported Media Type | 非サポート・メディア・タイプ | 1.1 |
| リクエスト実体は、リクエストされたメソッドに対してリクエストされたリソースがサポートしていないフォーマットであるため、サーバがリクエストのサービスを拒否している。 | |||
| 5xx | Server Error | サーバ・エラー | - |
| 500 | Internal Server Error | サーバ内部エラー | 1.0 |
| サーバは、リクエストの実行を妨げる予期しない状況に遭遇した。 CGIスクリプト・エラーなど。 | |||
| 501 | Not Implemented | 未実装 | 1.0 |
| サーバは、リクエストを実行するために必要な機能をサポートしていない。 | |||
| 502 | Bad Gateway | 不正ゲートウェイ | 1.0 |
| ゲートウェイあるいはプロキシとして動作しているサーバが、リクエストを実行しようとしてアクセスした上位サーバから不正なレスポンスを受信した。 不正なゲートウェイ経由のアクセスなど。 | |||
| 503 | Service Unavailable | サービス利用不可 | 1.0 |
| サーバはサーバの一時的な過負荷あるいはメインテナンスのために、現在、リクエストを扱うことができない | |||
| 504 | Gateway Time-out | ゲートウェイ・タイムアウト | 1.1 |
| ゲートウェイあるいはプロキシとして動作しているサーバが、リクエストを完了しようとしてアクセスした上位サーバからタイムリーなレスポンスを受信できなかった。 | |||
| 505 | HTTP Version not supported | 非サポートHTTPバージョン | 1.1 |
| サーバは、リクエスト・メッセージで使用されたHTTPプロトコル・バージョンをサポートしていない、あるいはサポートを拒否している。 | |||
今日こんな感じに設定してみる。
-------------------
/sbin/route add default gw 10.20.138.254
-------------------
○ルーティングテーブルって何?(以下引用)
ルータや端末が保持するパケットの配送先に関する経路情報。
TCP/IPネットワークでパケットを送ろうとするとき、ルーティングテーブルを参照してパケットを送付すべき相手を判断する。ある端末から他の端末へとパケットを送ろうとする場合、目的の端末が自ネットワーク内にない場合、端末内にあるルーティングテーブルを参照し、パケットを中継させる端末を決定する。
ルーティングテーブルの生成・管理方式には、あらかじめ固定されたルートを設定しておく「スタティックルーティング」と、他の端末から受けるルーティング情報を用いて定期的にルーティング情報を更新する「ダイナミックルーティング」がある。
ルータなど多くの機器はダイナミックルーティングによってルーティングテーブルを管理するが、特にルーティング処理を行なう必要のない端末はスタティックルーティングの一種である「デフォルトルーティング」を用いることが多い。
参考:
http://e-words.jp/w/E383ABE383BCE38386E382A3E383B3E382B0E38386E383BCE38396E383AB.html
http://www.atmarkit.co.jp/fnetwork/netcom/route/route.html
○ルーティングテーブルの設定方法
●Linuxの場合
――ルーティングテーブルの表示
route[ -n][ -v][ -e| -ee][ -F][ -C][ -A アドレスファミリ名]
――経路の追加
route[ -v][ -F] add{ -host| -net} 宛先IPアドレス[/プレフィックス][ gw ゲートウェイIPアドレス][ metric メトリック数][ netmask サブネットマスクアドレス][ mss MSSサイズ][ window TCPウィンドウサイズ][ irtt 初期ラウンドトリップ時間][ mod][ dyn][ reinstate][[dev] インターフェイス名]
――拒否経路の追加
route[ -v][ -F] add{ -host| -net} 宛先IPアドレス[/プレフィックス][ metric メトリック数] reject
――経路の削除
route[ -v][ -F] del{ -host| -net} 宛先IPアドレス[/プレフィックス][ gw ゲートウェイIPアドレス][ metric メトリッ ク数][[dev] インターフェイス名]
――バージョン情報の表示
route{ -V| --version}
――ヘルプの表示
route{ -h| --help}[ -A アドレスファミリ名]
参考:
http://www.hyperdyne.co.jp/~oohashi/work/redhat/iproute2/03.shtml
TCP/IPプロトコルの設定方法は次の二つ。
TCP/IPプロトコル関連の設定は/etc/rc.d/init.d/networkで行う。
RedHat Linuxでは次のファイルにTCP/IPプロトコルに関連する設定情報が格納されている。
|
/etc/sysconfig/network |
ネットワーク設定のなかでマシン全体に関する項目の設定。 |
|
/etc/sysconfig/network-scripts/ifcfg-eth0 |
ネットワークインタフェース(eth0)に関する設定。 |
|
/etc/sysconfig/network-scripts/ifcfg-lo |
ループバックインタフェース(lo)に関する設定。 |
|
/etc/dhcpc/hostinfo-eth0 |
DHCPクライアントがDHCPサーバから入手した設定情報。 |
|
/etc/dhcpc/resolv.conf |
DHCPクライアントがDHCPサーバから入手した設定情報。 |
|
/etc/host |
名前をIPアドレスに変換する。自分のホスト名も記録する。 |
| /etc/HOSTNAME | 起動時に自分のホスト名が格納される。 |
|
/etc/resolv.conf |
DNSサーバに関する設定。 |
|
/etc/inetd.conf |
inetdが起動するデーモンを登録する。 |
|
/etc/services |
アプリケーションレベルのプロトコルのポート番号が登録されている。 |
| /etc/protocols | プトロコルの番号が登録されている。このファイルを変更してはいけない。 |
上記の設定ファイルはTCP/IPプロトコルに関する基本的なネットワークの設定に関するものだけ。
デーモンプログラム(各種サーバ)の設定ファイルなども含めると設定ファイルはこれ以外にも多数ある。
|
ifconfig |
ネットワークインタフェースの設定状況を表示したり,設定を変更する。 ここで変更した設定は,シャットダウンすると消える。 |
|
netstat |
ネットワークの稼動状態を表示する。 |
|
route |
ルーティングテーブルの状態を表示したり,ルーティングテーブルの設定内容を変更する。 |
|
arp |
arpキャッシュの内容を表示したり,内容を変更する。 |
|
ping |
icmp echoパケットを送り,その受信を待つ。 |
|
telnet |
リモートマシンにログインする。 |
|
ftp |
ファイル転送。 |
|
nslookup |
DNSサーバに問合せを送り,DNSの設定状況を調べる。 |
|
rcp |
リモートマシンとの間でファイルをコピーする。 |
|
rsh |
リモートマシンにコマンドを送り,リモートマシンで実行する。 |
|
traceroute |
パケットを運ぶ途中の経路に関する状況を調べる。 |
あるWebサイトリニューアルで、レガシーページへアクセスした方が 404エラーにならないために。古いURLからはリダイレクト処理をすることになり、やったのでメモ。
○.htaccessを使ったリダイレクト処理 例
--------------------------------------------------------------
# old ページから new へリダイレクト
Redirect permanent /old_dir/ http://www.live-revolution.co.jp/new_dir/
RedirectMatch (.*)/old_dir/old.html$ http://www.live-revolution.co.jp/new_dir/new.html
--------------------------------------------------------------
http://apache.rsz.jp/docs-ja/1.3/mod/mod_alias.html
http://www.shtml.jp/htaccess/redirect.html
配色のイメージがすぐ分かる!すぐれもの。
以下抜粋
[DRY化チェックリスト2006冬]
1. 定義は1ヵ所で行なう
2. 無意味を排除する
3. 繰り返しは共通化する
4. 規約と関連付ける
5. 責務を疑う
6. 言語を拡張する
こういうのを自分の中で標準化・仕組み化して行けば、早く・メンテナンスしやすいコードがかけるんだろうなー。
[絶対DRY感]
>私はプログラマは本来怠け者であり、自分が楽をするためにコンピュータを駆使する生き物だと信じている。
うむ。そう思う。
>絶対DRY感の持ち主は print 文が2行続くコードを見るだけで発狂するのである。
絶対DRY感怖い...(^^;
NOWRAP : テーブルにおいて、セル内での改行を禁止します。
※非推奨となっているので、なるべく使わないほうが良い。
例:
<table>
<tr>
<td NOWRAP>文字列が長くても改行されません。</td>
</tr>
</table>
以下抜粋
http://www.radiumsoftware.com/0701.html#070124
>放射性同位体が崩壊を起こすタイミングは完全なランダム性に支配されていて,それを予測することは誰にもできない。だから,そのタイミングを検出して乱数の生成に利用すれば,本当の意味でのランダム性を手に入れることができる。
○ソース
http://search.cpan.org/~dcantrell/Net-Random-1.3/lib/Net/Random.pm
本日、PHPフレームワークmojavi で、テンプレート Smarty を利用したのでメモ。
○Smarty2.6.7 マニュアル
http://sky.freespace.jp/smarty/SmartyManual_2-6-7J_html/
例:
http://sky.freespace.jp/smarty/SmartyManual_2-6-2J_html/language.modifier.truncate.html
{{{
index.php:
$smarty = new Smarty;
$smarty->assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Checkout Counter.');
$smarty->display('index.tpl');
index.tpl:
{$articleTitle|truncate:30:"...":true}
出力:
Two Sisters Reunite after E...
}}}
alter table [table_name] add [column_name] [データ型] ;
http://www.postgresql.jp/document/pg653doc/ej/user/sql-altertable.htm
ドメインやIPを入力すると、その情報が見れる。