132件中 91-95件目     [ ... 14 15 16 17 18 19 20 21 22 23 ... ]

画像や文字などはスタイルシートを使って半透明にすることができるが、ブラウザによってその方法は異なる。

CSSで半透明にするサンプル


PHPには不可逆な暗号化を行う関数(ハッシュ関数)としてmd5関数sha1関数crc32関数の3つがあるが、md5やsha1などのアルゴリズムは今では危険と言われ、逆変換されてしまう危険性がある。 できれば比較的安全なsha512などのアルゴリズムを使いたいが、PHPにsha512という名前の関数はない。

しかし、PHPにはハッシュ拡張モジュールというものがあり、それを使うことによりsha512やRIPEMD160、 whirlpool、 tiger192,4、 snefru、 gost、 Adler32、 crc32b、 haval256,5など様々なハッシュアルゴリズムを利用することができる。 この拡張モジュールはPHP 5.1.2以降ではデフォルトで有効となっている。


今のところ、当サイトで公開してるソースコードは、highlight_string関数preg_replace関数を使っていい加減な色分けをして表示している。 PHP以外のソースコードは、文法を見ていないからうまく色分けできないこともあるし、行数の表示などにも対応していない。 これを多くの言語に対応させていこうとするのはなかなか大変だ。

そこでいくつかあるソースコードを色分け表示するライブラリの一つであるGeSHiを試してみた。

GeSHiは、PHPで作られたライブラリで、拡張モジュールのようにインストールする必要はない。 使うときは、サーバにアップロードしてincludeすればいい。 対応する言語は、よく似た言語が含まれていたりするが、以下の70もの言語に対応する。

ActionscriptADAApache LogAppleScriptASMASPAutoIT
Backus-Naur formBashBlitzBasicCC for MacsC#C++
CAD DCLCadLispCFDGColdFusionCSSDelphiDIV
DOSEiffelFortranFortranFreeBasicGMLGroovy
HTMLInnoIOJavaJava 5JavascriptLaTeX
LispLuaMicroprocessor ASMmIRCMySQLNSISObjective C
OCamlOpenOffice BASICOracle 8 SQLPascalPerlPHPPL/SQL
PythonQ(uick)BASICrobots.txtRubySASSchemeSDLBasic
SmalltalkSmartySQLT-SQLTCLthinBasicUno IDL
VB.NETVisual BASICVisual Fox ProWinbatchX++XMLZ80 ASM

大乱闘スマッシュブラザーズシリーズや星のカービィシリーズなどを作ったハル研究所が開催するプログラミングコンテストのプレエントリーを受付開始した。 ハル研究所のプログラミングコンテストは毎年この時期に開催される学生向けのプログラミングコンテスト。 出題された問題を解くプログラムを作成し、そのプログラムの実行時間や得点などのスコアを競う。 賞金は、優勝 1万円、二位 5千円、三位 3千円 となっている。 今年の問題は2007年12月4日(火)12:00発表予定。

2006年の問題は「少ないコストで席を移動させる問題」、2005年の問題は「全ての橋を渡れるか調べ、渡れるのならルートを設定する問題」だった。
あらかじめ、席の移動コストを返す関数や橋の数を返す関数などが用意されていて、それらを使ってプログラムを作成する。 最初に用意されているプログラムで、一応問題を解くことができるが、それで良いスコアを出すことはできないため、それを改良していく。

このハル研究所のプログラミングコンテストの面白いところは、期間中何度でもプログラムを提出することができ、提出した時点での順位を知ることができるところだ。 期間の始めごろは簡単に上位を取ることができるが、その順位を終わりまで保つのは難しい。 問題を解くだけならば大学の演習課題程度の難易度になると思うので、一度参加してみると面白いだろう。


AUTO_INCREMENTの値をリセットするには以下のようにALTER TABLEでできる。

ALTER TABLE <テーブル名> AUTO_INCREMENT = 1;
ALTER TABLE test AUTO_INCREMENT = 1;
ALTER TABLE sample AUTO_INCREMENT = 1;

このとき、AUTO_INCREMENTの付いたカラムに1以上の値を持ったレコードが存在すると、その値以下には設定できない。 例えば、以下のようなデータがあると5以下には設定できないが、6以上には設定できる。

> select * from newspaper;
+----+--------+
| id | name   |
+----+--------+
|  1 | 毎日   |
|  2 | 読売   |
|  3 | 毎日   |
|  5 | 日経   |
+----+--------+

設定できない値を設定しようとすると、MyISAMでは最大値+1に変更され、InnoDBでは変更されない。 また、テーブルを作り直したり、AUTO_INCREMENTが付いたカラムを作り直したりすることでもAUTO_INREMENTの値はリセットされる。 ただし、古いMySQLのTRUNCATE TABLEでは全レコードが削除されるだけでAUTO_INCREMENTがリセットされない。


132件中 91-95件目     [ ... 14 15 16 17 18 19 20 21 22 23 ... ]