Java キーボードから文字列を入力する

前回はウィンドウに画像を表示し、それをインターネット(Webサイト)上に公開し、実行できるようにする方法をご紹介しました。
今回はキーボードからの入力を受け付ける方法について書きます。

1行目はクラスライブラリからjava.ioというパッケージに含まれているクラスを使うための宣言です。
キーボード入力に関する機能はjava.ioパッケージにまとめられているため、この文が必要です。

main( )メソッドはこれまでに何度も出てきていますが、その定義に追加されている
throws IOExceptionはデータ入力時にエラーが発生したとき、例外処理を行うための指定です。

BufferdReaderクラスの変数inputの宣言と初期化を行います。この文は長いので、2行に分けています。
キーボードからの入力はSystem.inを介してプログラムに取り込まれます。

このSystem.inをもとに、
①InputStreamReaderクラスのオブジェクトを生成する。
②①をもとにさらにBufferedReaderクラスのオブジェクトを生成する。
という手順が必要になります。

これを1文で書くとこうなります。

BufferedReaderクラスのreadLine( )メソッドで標準入力から1行読み込み、
変数strに格納する。この行を実行すると、プログラムはキーボードからの入力を待って、
一時停止状態になります。そこでユーザーが何か入力してEnterキーを押すと
入力した内容が変数strに格納され、次の処理に進むようになっています。

Javaの勉強 3日目

まずは前回のおさらい。↓のコードでウィンドウに画像を読み込んで表示させました。

実行結果はこんな感じ↓

↑MacOSX


↑Windows XP


↑Windows 7


↑Linux (Ubuntu 10.04)

1回書けば、いろんなOSで動作します。
Windows 7と他のOSで画像の座標がずれているのが気になりますが、
今はスルーします。

内容をまとめると、
・JFrameクラスのgetGraphicsメソッドでGraphicsクラスのインスタンスを取得する。
・それを利用してdrawImageメソッドで指定した座標に画像を描画する。
・すべての描画がおわったらdisposeメソッドでGraphicsクラスのインスタンスを廃棄する。
・不要になったインスタンスは時間が経つと自動的に廃棄されるが、Graphicクラスのインスタンスは
 OSの描画リソースを確保しているのでなるべく早く廃棄する必要がある。

drawImageメソッドについて

drawImageメソッドは6種類もある。
引数xとyは画像を描画する座標。
widhtとheightは描画領域のサイズを表す。そこに納まるように画像が拡大/縮小される。
bgColorは半透明の画像を描画する際の背景色を指定する。
dx1、dy1、dx2、dy2とsx1、sy1、sx2、sy2は
sx1〜sy2で表示される画像の一部領域を、dx1〜dy2で示される範囲に描画するときに使う。
画像の一部を切り抜いて描画することが可能。
最後のImageObserverには描画対象のウィンドウのインスタンスを指定。
ただし、これはnullを指定していても問題ない。
※ImageObserverはJavaアプレットなどでダウンロード途中の画像データが描画された状況を想定して
用意されたしくみ。画像全体のダウンロードと描画が完了すると、ImageObserverに指定したウィンドウに
通知される。ダウンロードにそれほど時間がかからない状況なら気にする必要はない。

インターネットに公開

次に、前回作成したウィンドウ表示のプログラムをWebサーバ上で実行できるようにしてみたいと思います。
作成したプログラムをインターネットで公開するために、2つのことを行います。

1.プログラムを1つのJARファイルにまとめる
 JARとはJavaARchiveのこと。
 コンパイル後のクラスファイルやリソースファイルを1ファイルにまとめたもの。
 ファイルが1つなのでアップロードも簡単だし、ZIP形式で圧縮されているため、ファイルサイズも小さくなる。
 JARファイルの作成方法はこちらのサイトを参考にしました。

2.Java Web Startを利用するためのJNLPファイルを作成する。
 Java Web Startを利用するとJARにまとめたプログラムのダウンロード・インストール・実行を一気に行える。
 利用するにはJNLPファイルをテキストエディタで作成し、JARファイルと一緒にアップロードする。
 実行するプログラムはJavaアプリケーションそのものなので、基本的にはJavaのすべての機能が使える。
 しかし、Webから簡単に実行できるという性質上、何でもできてしまうと危険過ぎるため、
 サンドボックスというセキュリティ機能によって動作が制限されている。
 JNLPファイルの作成はこちらのサイトを参考にしました。

サンドボックスの機能制限
・ローカルディスク(手元にあるパソコンのハードディスク)にアクセスできない。
・すべてのJARファイルを同一ホスト(1つのWebサーバ)からダウンロードする必要がある。
・JARファイルのダウンロード元のサーバとしか通信できない。
・セキュリティマネージャ(Javaのセキュリティ設定を変更するクラス)はインストールできない。
・ネイティブライブラリ(パソコンにインストールされているライブラリ)は使用できない。
・システムプロパティ(パソコンの環境設定)へのアクセスが制限される。
 これらの制限を解除することも可能だが、その場合は作成者の身元を証明するデジタルコード署名を取得し、
 ユーザの許可を得る必要がある。

マニフェストファイルの作成
 通常のJARファイルはEclipseのエクスポート機能だけで作成できるが、
 JLayerのような外部ライブラリを使用している場合は、
 その場所と名前を記述したマニフェストファイルを作る必要がある。
 マニフェストファイルは「.mf」という拡張子が付いたテキストファイルである。

Manifest-Version
 マニフェストファイルのバージョンを記述
Main-Class
 エントリポイントのmainメソッドを持つクラス名を指定する。
Class-Path
 外部ライブラリを使用している場合は、ここにJARファイルの名前を書く。
 複数使用している場合は半角スペースで区切って「Class-Path;aaa.jar bbb.jar」と並べる
 フォルダ内にまとめている場合は「Class-Path: フォルダ名/aaa.jar」のように書く。

それらをサーバにアップロードします。(アップロード時はパーミッションに注意を。)
サーバ側でMIMEタイプの設定をします。Apacheの場合はmime.typesに追記する。

MIMEタイプの設定が完了したらwebデーモンを再起動して準備完了!
↓をクリックして下さい。

どうですか?うまく起動しましたか?
これは病みつきになりそうです。
それではまた!

Javaの勉強2日目

さて、今日は早速、プログラミングに入ります。
開発環境はMac OSX 10.6.5

Eclipse 3.6 Helios (日本語化パッチ適用)

MacでEclipseを日本語化するにあたってこのサイトを参考にしました。
とてもわかりやすかったです。

ウィンドウの作成

・パッケージ名を指定していないとクラスライブラリで定義されているクラス名がわからない。
・パッケージ名はクラスの名字のようなもの javax.swing.JFrame mainwindow;
・パッケージ名.クラス名;というインポート文を書くと、ソースコードの中でパッケージ名を省略できるようになる。
・Ctrl(Macはcommand)+Shift+Oでインポートの編成処理が行われ、必要なインポート文が追加され、
 不要なインポート文は削除される。
・static修飾子を付けて宣言したメソッドは、インスタンスを作る前でも呼び出せるスタティックメソッド
 (クラスメソッドとも呼ぶ)になる。
 mainメソッドはこのしくみを利用してインスタンス作成前にOSから呼び出されるので、
 内部でインスタンスを作らなければいけない。
・クラス名と同じ名前のメソッドをコンストラクタ(建設者の意味)という。
・コンストラクタはインスタンスが作られるときに呼び出される。
・コンストラクタの中ではインスタンス作成直後のさまざまな初期化を行う。
・Chap3MainクラスのコンストラクタではJFrameのクラスのインスタンス作成〜表示までの処理を行う。
・JFrameクラスのインスタンスを作成し、mainwindowフィールドに代入。
・JFrameクラスのコンストラクタは引数の文字列をウィンドウのタイトルにする。
・ウィンドを閉じると同時にプログラムを終了するには、
 JFrameクラスのsetDefaultCloseOperetionメソッドの引数にEXIT_ON_CLOSEを指定する。
・このEXIT_ON_CLOSEは定数。安徽しにくい数値を覚えやすくするたみに使う。
・setDefaultCloseOperation(3)よりsetDefaultCloseOperation(EXIT_ON_CLOSE)の方が意味がわかりやすい。
・ウィンドウは初期設定では非表示になっているため、setVisibleメソッドでtrueを指定して表示。
・ウィンドウサイズはJFrameクラスのsetSizeメソッドで設定できるが、
 ここで指定したサイズにはウィンドウ枠とタイトルの文が含まれている。
・クライアントエリアを480×360ピクセルにするには枠やタイトルバーの太さを加えたサイズを指定。
・ウィンドウの四辺のサイズはJFrameクラスのgetInsetsメソッドで調べることができる。
 このメソッドはInsetsクラスのインスタンスを返すので、その4つのフィールド
 top , bottom , left , right を480×360ピクセルに加える。

実行するとウィンドウが表示される。

リアルタイム処理

・コンピュータに時間を計らせて、一定の時間ごとに同じ量の仕事をやらせることをリアルタイム処理という。
・Javaでリアルタイム処理を実現するには、TimerクラスとTimerTaskクラスをセットで使う。
・処理をrunメソッドに書いておき、Timerクラスが一定間隔でrunメソッドを呼び出すしくみ。
・Timerクラスは指定された間隔でTimerTaskクラスのrunメソッドを呼び出す。
・処理はrunメソッドの中に書けばよいが、TimerTaskクラスを直接書き換えることはできない。
 (Javaのクラスライブラリの中で定義されているため)
・このような場合TimerTaskクラスを継承したクラスを作成し、runメソッドの内容を書き換える。
・継承とはすでにあるックラスを引き継いで新しいクラスを作成すること。
・元になるクラスをスーパークラス、継承して新しく作られるクラスをサブクラスと呼ぶ。
・フィールドもメソッドも丸ごと引き継がれるので、必要な部分を書き足すだけで済む。
・継承するにはサブクラスの定義にextendsキーワードを加える。
・クラスの中に書かれたクラスを内部クラス(またはインナークラス)と呼ぶ。
・TimerTaskクラスを継承したクラスには必ずrunメソッドを書かなければいけないという決まりがある。
・サブクラスに絶対に書かなければいけないメソッドのことを抽象メソッドと呼ぶ。
・Ctrl(Macではcommand)+Shift+Mで現在カーソルがあるクラスのインポート文を自動挿入できる。
・インポート文をまとめて挿入するCtrl+Shift+Oが便利だが、ソースコード中にその他のエラーがあると働かない。
・Ctrl+Shift+Mはエラーがある時でも使える。
・スーパークラスと同じ名前と型のメソッドを書くことをオーバーライドという。overrideとは上書きの意味。

このプログラムを実行すると0.5秒ごとに「呼び出された」という文字がコンソールに表示される。

・Timerクラスのscheduleメソッドでは引数periodに呼び出し間隔を指定する。
・単位はミリ秒。1秒=1000ミリ秒なので、500を指定すると0.5秒間隔で呼び出されることになる。

・task→Timerから呼び出すTimerTaskインスタンスを指定
・delay→最初の呼び出しを実行するまでの遅延時間をミリ秒で指定
・period→runメソッドを呼び出す間隔をミリ秒で指定

・継承のメリット
 すでに作ったクラスの機能を流用できること
 スーパークラス型の変数・引数にサブクラスのインスタンスを代入できること
 scheduleメソッドの引数taskはTimerTask型なのに、GameTaskクラスのインスタンスを指定できている。
 サブクラスはスーパークラスの全てのフィールドとメソッドを持っている。
 スーパークラスだと思って扱っても問題ない。
 人間や動物の世界では親のできることを子供が必ずできるとは限らないが、
 コンピュータの世界ではそれが保証されている。

 逆にサブクラス型の変数・引数にスーパークラスのインスタンスを代入することはできない。
 (無理にすることはできるが危険)
 ※サブクラスで追加したフィールドやメソッドを要求されたときにスーパークラスは対応できないため

・オーバーライド
 スーパークラスのメソッドをサブクラス側で上書きすること。
 同じようにメソッドを呼び出しても違う処理を行うことが可能。
 オーバーライドするにはメソッドの名前と引数・返り値の型を同じにしなければならない。
 どれかが違っていると新しいメソッドを追加したことになる。
 オーバライドミスを避けるためにオーバーライドしたメソッドの直前に@Overrideと書く。
 このキーワードがあるとJavaコンパイラーがスーパークラスに同名同型メソッドがあるか確認し、
 なければ、エラーを表示してくれる。

・抽象メソッド
 その名のとおり定義のブロックがない。abstract修飾子をつけて、型と名前を指定したら;を付けて終わりにする。
 このメソッドを必ずオーバーライドしてねと予約しておくのが抽象メソッドの役割。

 抽象メソッドを持つクラスはインスタンスが作れない抽象クラスになる。中身が空のメソッドは実行しようがない。
 抽象クラス・抽象メソッドは継承されることが前提の文法である。

・内部クラス
 特定のクラスからしか利用されないことが決まっているときに使う。
 GameTaskクラスのrunメソッドはChap3Mainクラスからしか利用できない。
 できればChap3Mainクラスの中で定義したいくらい。
 それなのにわざわざ別のソースコードに分けて書くのは面倒なので内部クラスにしている。
 内部クラスは役に立つ居候、お腹の中のビフィズス菌のような存在。
 外側のクラス(外部クラス)のフィールド・メソッドを自分のメンバと同じように利用できる。

 逆に外部クラスから内部クラスのフィールド・メソッドを利用するときは、
 内部クラスのインスタンスを内部クラス型フィールドに代入して予備ださなければいけない。
 なぜなら、内部クラスにとって外部クラスは1つしかないが、
 外部クラスの中に複数の内部クラスを入れることは可能なので、区別擦る必要があるからである。

・メソッドのオーバーロード
 overloadとは引数や返り値の型が違う同じ名前のメソッドを定義すること。
 たとえばprintメソッドを入力するとprint(boolean b) print(char c)などの候補がたくさん表示されるが、
 これはprintメソッドがオーバーロードされているから。メソッドを使う側からすると、
 1つのメソッドに色々な種類のデータを渡せるように見える。
 なお、オーバーロードとオーバーライドは名前がよく似ているが全く別の文法なので、間違わないよう注意。

画像ファイルの読み込み、表示

・画像ファイルや音楽ファイルなどを読み込む場合、
 それらのファイルをプログラムファイルの外部に置く方法とプログラムファイルの中に含める方法が考えられる。
 プログラムファイル内に含められたファイルをリソースと呼ぶ。resourceは資源という意味。
 webでの取り扱いを楽にするために、すべてリソースにすることにする。

 画像ファイルや音楽ファイルをリソースにするにはパッケージエクスプローラーで
 パッケージ内にファイルをインポートする。
 インポート完了後、ImageIOクラスのreadメソッドを使って画像ファイルをメモリに読み込む。
 IOはInput/Outputの略。入力と出力の意味→読み込み、書き込みのこと。
 ImageIOではPNG、GIF、JPEG形式の画像ファイルを読み込むことができる。
 大きめの画像には圧縮率が高いJPEG、ゲームのキャラクタには透明職を設定できるPNGが向いている。

 readメソッドはFileやInputStream、URLなどの型の引数を受け取って、
 BufferredImageクラスのインスタンスを返す。
 HDD上のファイル、インターネット上のファイルを読み込む場合は次のように書く。
 

 リソースを読み込む場合が一番ややこしくなっている。
 リソースを読み込むにはgetResourceメソッドを使うが、このメソッドはClassクラスのメンバである。
 Classクラスはクラスに関する情報を管理するクラスで、すべてのクラスが持つgetClassというメソッドで取得する。
 これらの処理をひとつなぎで書くと、

となる。

これを実行するとこんな感じ↓

そろそろ時間なので、今日はここまで。

Javaを1から勉強し始めました。

Javaを1から勉強開始。
基本的なことを箇条書きでまとめてみます。

Javaの文法について

・{ }のことをパーレンまたは中カッコという。
・{ }はブロックのはじめと終わりを表す。
・{ }を使って複数のブロックに分割することで、どこからどこまでが何をしているのかを見通しやすくしている
・{ }の前の文で、そのブロックの役割が決まる。
・字下げはブロックを見やすくするためのもの。全て取り去っても結果は変わらない。
・字下げ位置がくずれたらCtrl(Macの場合はcommand)+Shift+FキーでEclipseが自動的に設定し直してくれる
・クラスという部品を作り、それを組み合わせてひとつのプログラムを作る。
・クラスのブロック内にpublic static void main(String[ ] args)で始まるブロックがあり、mainメソッドという。
・mainメソッドのことをエントリーポイントという。
・エントリーポイントはプログラムの起動時に最初に呼び出される。
・空白や改行は自由。( )や{ }も1語に数えられるのでその前後に空白を入れることができる。
・文の最後には;を入れる
・//が付いた行と/* 〜 */で挟まれた行はコメント文。コメント文はコンパイラに無視される。
・基本的には半角文字だけを使用する。
・全角文字が使えるのは文字列のリテラルかコメント文の中だけ。
・大文字・小文字が区別される。
・System.out.print( )はSystemクラスのoutフィールドに代入されているPrintStreamクラスの
 printメソッドを実行するという意味。
・メソッドはJavaに標準で付属されているクラスライブラリの中に書かれている。
・文字のリテラルは”で囲む
・リテラル literal→ありのままの意味 コンピュータ用語では定まった数、変化しない数の意味
・変数には半角アルファベット、半角数字、_を組み合わせた名前をつける。
 数字だけ、_だけ、class、publicなどのJavaで予約されている名前は使えない。
・変数の宣言をした行がスコープの開始位置
・変数の宣言があるブロックの最後が、スコープの終了位置
・スコープの終了位置より後なら同じ名前の変数を宣言できる。

オブジェクト指向について

・Javaはオブジェクト指向。まず、どんな部品が必要かを考える。
・次にそれぞれのオブジェクトが持つメソッドとフィールドを考える→クラスを定義
・メソッドはそのオブジェクトに対する命令
・フィールドはどのオブジェクトが持つ変数
・インスタンスとはクラスをもとに作られた実際に操作することのできる部品(メモリ上に存在)
・インスタンスはnew演算子を使って作成
・メソッドを利用するには変数名の後に.演算子を付け、その後にメソッドを書く。
・メソッドに渡す引数は( )内に書く
・フィールドを利用する場合も変数名の後に.演算子を付け、フィールド名を書く。
・空の状態をnull というキーワードで表す。
・空のクラス方変数のメソッドやフィールドを利用しようとすると、NullPointerExceptionというエラーが発生する。
・int、float、booleanなどの小文字の名前の型はプリミティブ型と呼ばれる。
・プリミティブ型はJavaの言語仕様の中に最初から組み込まれている。
・プリミティブ型はクラスではないため、インスタンスという概念がなく、メソッドもフィールドも持っていない。
・プリミティブ型をサポートするためのメソッドは、java.langパッケージのIntegerクラスやFloatクラスなどの
 ラッパークラスの中に定義されている。
JavaTM Platform, Standard Edition 6 API 仕様

JavaのGUIについて

・Javaで作るプログラムには「Javaアプリケーション」「Javaアプレット」「Javaサーブレット」の3種類がある
・Javaアプリケーション→デスクトップ上で動作するプログラム。ウィンドウを作成し、その上にパーツを配置。
・Javaアプレット→Webページに埋め込めるプログラム。Flashムービーのような感じに使う。
・Webサーバ内で動かす特別なプログラム。CGI的な使い方をする。
・GUIの種類も3つ。
・AWT(Abstract Window Toolkit)
 OSのGUIを利用。比較的動作が軽いとされているが、すべてのOSのにある基本的な部品しか利用できない。
 単純なGUIしか作れない。

・Swing
 ほぼすべての処理がJavaで書かれている。
 AWTよりも要求スペックが高くなるが、スピンボタン、テーブルなど数多くの部品が利用可能

・SWT(Standard Widget Toolkit)
 Eclipseで使われているGUIで、OS専用のプログラムとJavaのハイブリッドになっている。
 AWTよりも複雑なGUIを作成可能。
 Swingよりも軽快に動作する。
 その代わりにOSごとに専用バージョンを用意する必要がある。

とりあえず、これだけのことは頭に入れた。

修行開始!

今日から修行を始めます。
いよいよ自分ひとりでじっくり考えることができる空間と
時間を確保することに成功しました。

そこで、

基本情報技術者
 試験日:平成23年4月17日(日)
 受験料:5,100円(税込み)
  区分:国家資格
  URL:http://j.mp/hiiq7p

Oracle Certified Programmer (OJC-P) Javaプログラマー
 試験日:随時
 受験料:34,230円(税込)
  区分:ベンダー資格
  URL:http://j.mp/eqmjpi

の資格取得を目指します。

業務でまともに開発を経験していないので、資格を取得することで、
技術力を証明できるようにしたいのです。

優先順位としては基本情報技術者が優先です。
何故なら、1年に2回しか取得のチャンスが無いからです。

今、とてもプログラミングに興味が湧いているので、
午後の勉強からスタートしようと思います。
言語の選択はもちろんJavaで。
Androidにも使われているし、「write once run anywhere」なところがイカしてます!

試験まであと4ヶ月しかないため、計画的に学習を進めねば。

IE9 betaをインストールしてみた

IE=マイクソソフトのクソブラウザだという既成概念を打ち砕いてくれた。
パフォーマンスは動画をご覧いただければ一目瞭然だ。
インストールすると、最初にアドオンの無効化を勧められる。
起動速度を速くするための工夫だ。
それぞれのアドオンを無効化することによって、どのくらい起動速度を短縮することができるのか
数値で明確に表示してくれるところが良かった。
IE7以降のごちゃごちゃしたUIが改善され、すっきりシンプルなデザインに。
ブラウジングもスムーズ。今のところ文句なしの出来栄えと言える。

IE9を利用したいなら、XPからVistaか7へアップグレードするしかない。
これで、Vistaと7の価値が高まることは間違いない。

今までのIEと比べて最も大きな違いはHTML5をサポートしていることだ。
WEBの世界で生活を始めた我々にとってHTML5という技術はKeyとなる。
閲覧(ビュアー)のWEBからアプリケーションとしてのWEBへ変わろうとしているのだから。

Concrete 5がインストールできない

Concrete5って何?という方が多いと思います。
ヒューマニズムの要素を理解して作られたCMSそれこそがConcrete5なのです!
「百聞は一見にしかず」ですので、下記を御覧ください。

ヒューマニズムの先駆けと言えるのがアイコンとマウスによる直感的なコンピュータ操作である。
(これを考え出したのはアップルのスティーブ・ジョブスだと思っている人が多いが違う。アラン・ケイである。)

最近ではNintendoDS Wii iPhone など、ヒューマニズムを考慮して作られた
すばらしい機器が続々と登場している。
人間にとって直感的に操作が行えるということは、
より多くの人に使ってもらえる(受け入れてもらえる)可能性を秘めているということだ。

こんなすばらしいものが無償なら、使うっきゃない!
ということでインストールを試みるが、下記のエラーが・・・・。

[note]■concrete5の使用条件
■concrete5インストールまでの準備[/note]

をよく読んで設定をしていたつもりだが、なかなかインストールできない。

それでは、また。

iPhoneのシャッター、録画開始を無音化

愛犬:さくら
まず、タイトルを見て、お前何を盗撮しようとしとんねん!
とツッコミを入れようとした方、最後まで聞いて下さい。

無音化しようとしたのには理由があります。
最近、我が家に新しい家族が加わったのですが、
その新しい家族というのが、とても神経質で寝顔を撮影したり、
録画しようとすると音にビックリして起きてしまうのです。
どうにかして無音化できないかといろいろ試した末に、
ようやくうまくいきましたので、無音化の方法をご紹介しようと思います。

まず、新しい家族を紹介します。さくらちゃんです。
フレンチブルドッグなんですが、黒ブチが無いのがキュートです。

そんなさくらちゃんの自然な姿を撮影すべく、無音化に挑戦!

iPhoneのシャッター音や録画開始音の実体はcafという拡張子のオーディオファイルです。

iPhoneの/System/Library/Audio/UISoundsディレクト内に存在します。
しかし、JailBreak(脱獄)をしていないとiPhoneの中身を見たり触ったりすることはできませんので、ご注意を。

[note]下記がカメラ関連の効果音ファイルです。
1.ビデオ録画開始音:begin_video_record.caf
2.ビデオ録画終了音:end_video_record.caf
3.カメラシャッター音:photoShutter.caf[/note]

2と3は単純にファイル名をリネーム
(名前の変更)するだけで、無音化できます。
(例)end_video_record.caf → end_video_record.caf.bak

問題は1です。
これは単純にリネームするだけではうまくいきません。
リネームした状態だと、録画開始ボタンを押しても録画開始されません。

そこで、原始的な方法をとることにします。begin_video_record.cafを
PCにコピーして音声ファイル編集ソフトなどを使用し、
begin_video_record.cafを無音の状態に編集し、
再度iPhoneに入れて上書きします。
これで無事に成功しました。

[tip]音声ファイルでの編集が面倒だと思いますので、Fileをアップしておきます。
begin_video_record.caf[/tip]

ただし、悪用厳禁でお願いします。
このファイルを使用したことにより、
不具合が発生したり、問題がおきたとしても
当方は一切の責任を負いません。
各自の責任においてご使用下さい。

早速トラブル発生!

ど〜もtemosyです。

3日目にして早速トラブルですね。
昼休み時間にこのサイトへアクセスしたら、激重!

家に帰ってApacheのログを見てみると・・・
[text]
wp_error->__destruct() in
ホームディレクトリ/wp-includes/default-widgets.php on line 735
[/text]

のエラーが出ていました。

default-widgets.php on line 735でググると上の方にいくつかサイトが
表示される。このサイトをクリックしてみればわかるが、激重である。

実際にdefault-widgets.phpの735行目を開いて見ても何がなんだかわからん。
まぁ、とりあえず、変なウィジェットは無効化してしまおうということで、
RSSとTwitterのウィジェットを無効化し、無事、復旧致しました。
RSSだけで大丈夫ですが、Twitterを外したらさらに軽くなったので、
しばらく外しておきます。

みなさん、おひさしぶりです!

ど〜も、おひさしぶりです!temosyです。

実は昨年5月、自宅サーバのHDD(SEAGATE製)が

クラッシュし、データをすべて失ってしまいました。

それを機にサーバOSをVineLinuxからOpenSolarisに変更しました。

しかし、なかなかサーバ構築に時間を費やすことができず放置状態に。

年末年始の長期休暇でやっと時間を確保できたので

WEBサーバを再構築しました。

過去の記事はすべて失ってしまいましたが、

新たな気持で再出発致します!

主に・・・
[note]・日本語プログラミング言語「なでしこ」
・OpenSolaris
・Mac
・iPhoneアプリ制作
・Androidアプリ制作[/note]

について書いて行く予定です。

今年もよろしくお願い致します。