
昨日はNOVAで中国語のレベルアップテストがあった。
受講者は自分ともう一人。
大阪の方だった。
いつもどおり、レッスンに近い形で自由に会話をしたり、リスニングをしたりした。
みごと、レベル4に合格!あの、下手糞なハゲおっさんとお別れできる。
残念ながら、今日のレッスンはレベル3。
これが最後のレベル3のレッスンとなる。
さようなら、ハゲおっさん。
あなたはレベル2に下がった方が身のためだよ。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

そして、その後、絵画教室に行ってきました。
見学です。
割合に、受験生が多かった感じがしました。
若い女性が8割といった感じでした。
プライベートの人間関係が希薄なので、築くために通おうかと思います。
それにしても、習い事が多い。
それだけでも値段が・・・
NOVA 12000円
韓国語スカイプ 5000円
DMM英会話 5000円
パソコン関係 5000円
それだけでも、現在27000円
うわぁ、
これで、美術行ったら、月15000円だよ。
合計42000円
NOVAは、英語でレベル9、韓国語でレベル4になったら一度休会するかな・・・
美術で月15000円が痛いなぁ、
劇団にも入りたいんだよなぁ、
でも、1月の公演を観てから入団を決めようと思う。
40歳だし入団を希望しても断られたらどうしようとか思うけど。
NOVAはなんかマンネリになってきたから本当、レベルアップをきっかけに辞めてもいい。
スカイプのレッスンだと半分ぐらいでできるし。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・




主婦が台所の鍋にてんぷら油を入れて中火程度にし、それを放置したため出火した火事で重過失が認められた判例があります。
資料元:http://matomany.com/itoigawa-fire-damage-compensation/
今回の糸魚川市の中華そば店(上海軒)の72歳男性も有罪を免れることは無いでしょう。
しかしながら、木造の込み入った地域で防火整備が十分になされていなかった糸魚川市の責任も問われるべきだと思います。
死者がいなかったのは不幸中の幸いですが。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
この冬はがっつりとプログラミングに取り組んでみようと思う。
#contents {
width:390px;
border: medium solid #ff00ff;
padding:5px;
}
.chat_line {
border-top: medium solid #ff00ff;
height:22px;
}
// エラー出力する場合
//ini_set( 'display_errors', 1 );
// 関数定義を読み込み
include_once("function.php");
// ユーザー名
$str_chat_user = "";
//echo $_GET["chat_text"];
// 送信ボタンが押されていれば
if (isset($_GET["chat_submit"])) {
/*
* メイン処理
*/
// 入力チェック
$isInputError = false;
if (!isset($_GET["chat_user"]) || $_GET["chat_user"] === "") {
// ユーザー名が入力されていない
$isInputError = true;
}
$str_chat_user = $_GET["chat_user"];
if ($_GET["chat_text"] === "") {
// コメントが入力されていない
$isInputError = true;
}
// 入力チェックに問題がなければ
if (!$isInputError) {
// 書き込むデータ
$data = htmlspecialchars($_GET["chat_user"] . ":" . $_GET["chat_text"]) . PHP_EOL;
// チャットの書き込み
save_chat($data);
// データベースに接続
$link = sqlite_open('chat.db', 0666, $sqliteerror);
if (!$link) {
die('接続失敗です。'.$sqliteerror);
}
// APIアクセス
$word = api_access($link);
// 応答文
$str_response = cpu_response($link, $word);
// データベース切断
sqlite_close($link);
// print('切断しました。
');
// 応答文の書き込み
save_chat("マイクロフトXXX:" . $str_response . PHP_EOL);
}
}
/*
* チャットの書き込み
*/
function save_chat($data) {
// 過去の書き込みを読み込む(ファイルの中身を全て読み込んで配列に格納)
$lst_file = file('chat.txt');
//
$lst_file[] = $data;
// ファイルのオープン
$fp = fopen('chat.txt', 'w');
// ファイルがオープン出来たら
if ($fp){
// ロックを取得できたら
if (flock($fp, LOCK_EX)){
// 書き込む配列の開始位置の算出
$i_rows_limit = 15;
if (count($lst_file) < $i_rows_limit) {
// 制限以下の場合、全て書き込む
$i_write_start_point = 0;
} else {
// 制限以上の場合、制限数分のみ書き込む
$i_write_start_point = count($lst_file) - $i_rows_limit;
}
// 書き込み
for($i = $i_write_start_point; $i < count($lst_file); $i++) {
fwrite($fp, $lst_file[$i]);
}
//if (fwrite($fp, $data) === FALSE){
//print('ファイル書き込みに失敗しました');
//}else{
//print($data.'をファイルに書き込みました');
//}
// ロックを解放
flock($fp, LOCK_UN);
}else{
//print('ファイルロックに失敗しました');
}
}
// ファイルのクローズ
fclose($fp);
}
/*
* APIアクセス
*/
function api_access($link) {
//
$str_api_url = 'http://yapi.ta2o.net/apis/mecapi.cgi?sentence=' . urlencode($_GET["chat_text"]);
// APIアクセスして結果を取得
//$contents = @file_get_contents($str_api_url);
// ファイルのオープン
//$fp = fopen('api.txt', 'w');
// 書き込み
//fwrite($fp, $contents);
// ファイルのクローズ
//fclose($fp);
// URLにアクセスしてXMLを解析
$xml = simplexml_load_file($str_api_url);
//var_dump($xml);
//echo $xml->word[0]->surface;
//
foreach($xml->word as $xmlWord) {
// 単語
// echo $xmlWord->surface . PHP_EOL;
// 単語解析情報
// echo $xmlWord->feature . PHP_EOL;
// 単語解析情報を分解
$lst_feature = explode(",", $xmlWord->feature);
// echo $lst_feature[0] . $lst_feature[1] . PHP_EOL;
// 名詞一般のみ抽出
if ($lst_feature[0] === "名詞"){
if ($lst_feature[1] === "一般" || $lst_feature[1] === "固有名詞") {
// 単語の重複チェックとIDを求めて、単語テーベルへ単語を登録
regist_word($link, $xmlWord->surface, $lst_feature[0]);
// 関連語を取得
$lst_relative_word = get_relative_word($xmlWord->surface);
//print_r($lst_relative_word);
// 関連語を単語テーブルに登録
foreach($lst_relative_word as $relate_word) {
// 単語の重複チェックとIDを求めて、単語テーベルへ単語を登録
regist_word($link, $relate_word, '関連語');
// チャット入力単語と関連語の関係を関連テーブルに登録
regist_relate($link, $xmlWord->surface, $relate_word);
}
// 名詞があったら返す
return $xmlWord->surface;
}
}
}
// 名詞がなかったら
return false;
}
/*
* 応答文
*/
function cpu_response($link, $word) {
// ユーザーごとのデータファイルに書き込み
$lst_meisi_ippan = write_user_chat($link, $word);
// 振り分け
if ($word === false) {
// 名詞が入力されてなかったら
$i_pattern = rand(2, 3);
} else {
// 名詞が含まれてたら
$i_pattern = rand(1, 3);
}
// 応答文パターン振り分け
switch ($i_pattern) {
//switch (3) {
case 1:
// 「入力単語」といえば「登録単語」ですよね
// 応答文
$sql = "SELECT w2.word as wd FROM word as w1, word as w2, relate where w1.word = '$word' and relate.id = w1.id and w2.id = relate.relate_id ORDER BY RANDOM()";
//$sql = "SELECT * FROM word";
$result = sqlite_query($link, $sql, SQLITE_BOTH, $sqliteerror);
$rows = sqlite_fetch_array($result, SQLITE_ASSOC);
//echo "応答文:" . $rows['wd'];
$str_response = $word . "といえば" . $rows['wd'] . "ですよね。";
break;
case 2:
// 「登録単語」からCPUが会話を切り出す
if (count($lst_meisi_ippan) === 0 || $lst_meisi_ippan[0] === "") {
// 登録されてる単語がなければ
$str_response = "・・・・・・。";
} else {
// 登録されてる単語があれば
$str_kiridasi_word = $lst_meisi_ippan[rand(1, count($lst_meisi_ippan) - 1)];//0->1
$lst_kiridasi_pattern = array(
"って最近どう?",
"っていいよね。",
"はどう?",
"についてもっと教えて。",
"のこと何か話して。",
"といえば何がある?",
"といえば?",
"ってどうなってるの?",
"って気になるね。",
"の中で、" . $_GET["chat_user"] . "は何が好き?",
"って、" . $_GET["chat_user"] . "はどう思う?",
"について" . $_GET["chat_user"] . "が知ってること教えて。"
);
$str_kiridasi_pattern = $lst_kiridasi_pattern[rand(0, count($lst_kiridasi_pattern) - 1)];
$str_response = $str_kiridasi_word . $str_kiridasi_pattern;
}
break;
case 3:
// 定型文
$lst_teikei_pattern = array(
$_GET["chat_user"] . "、もっと教えて。",
$_GET["chat_user"] . "、もっといろいろ教えてください。",
$_GET["chat_user"] . "、機嫌は良いですか?",
$_GET["chat_user"] . "の好きなものについて教えて。",
$_GET["chat_user"] . "の趣味は何ですか?",
$_GET["chat_user"] . "はどんな人ですか?",
$_GET["chat_user"] . "は何をしてるんですか?",
"ふむ・・・・。",
"なるほど。",
"え?",
"ほお・・・。",
"へえ・・・。",
"そうかあ。"
);
$str_teikei_pattern = $lst_teikei_pattern[rand(0, count($lst_teikei_pattern) - 1)];
$str_response = $str_teikei_pattern;
break;
}
// 応答文を返す
return $str_response;
}
/*
* ユーザーごとのデータファイルに書き込み
*/
function write_user_chat($link, $word) {
$lst_meisi_ippan = array();
if ($word !== false) {
$lst_meisi_ippan[] = $word;
}
// ファイル読み込み
// ファイルオープン
//$fp = fopen($_SERVER["REMOTE_ADDR"] . '.txt', 'r');
$fp = fopen(urlencode($_GET["chat_user"]) . '.txt', 'r');
// ファイルがオープンできたら
if ($fp){
// ロックをかける
if (flock($fp, LOCK_SH)){
// ファイルの終端になるまで処理を繰り返す
while (!feof($fp)) {
// 1行読み込む
$lst_meisi_ippan[] = rtrim(fgets($fp));
}
// ロックを解放
flock($fp, LOCK_UN);
}else{
//print('ファイルロックに失敗しました');
}
}
// ファイルのクローズ
fclose($fp);
// 重複削除
$lst_meisi_ippan = array_unique($lst_meisi_ippan);
// ファイル書き込み
// ファイルのオープン
$fp = fopen(urlencode($_GET["chat_user"]) . '.txt', 'w');
// ファイルがオープン出来たら
if ($fp){
// ロックを取得できたら
if (flock($fp, LOCK_EX)){
// 書き込み
foreach($lst_meisi_ippan as $meisi_ippan) {
fwrite($fp, $meisi_ippan . PHP_EOL);
}
// ロックを解放
flock($fp, LOCK_UN);
}else{
//print('ファイルロックに失敗しました');
}
}
// ファイルのクローズ
fclose($fp);
//
return $lst_meisi_ippan;
}
// ファイルの中身を全て読み込んで配列に格納
$lst_file = file('chat.txt');
// 配列の順序の反転
$lst_file = array_reverse($lst_file);
// 1行ずつ取り出して表示
foreach($lst_file as $row){
//echo $row;
print("
" . $row . "
");
}
/*
$lst_file = array();
// ファイルオープン
$fp = fopen('chat.txt', 'r');
// ファイルがオープンできたら
if ($fp){
// ロックをかける
if (flock($fp, LOCK_SH)){
// ファイルの終端になるまで処理を繰り返す
while (!feof($fp)) {
// 1行読み込む
$lst_file[] = fgets($fp);
//$buffer = fgets($fp);
//print("
" . $buffer . "
");
}
// ロックを解放
flock($fp, LOCK_UN);
}else{
//print('ファイルロックに失敗しました');
}
}
// ファイルのクローズ
fclose($fp);
// 配列の順序の反転
rsort($lst_file);
// 1行ずつ取り出して表示
foreach($lst_file as $row){
//echo $row;
人工無脳をちょっといじってみようと思っている。
それから、ファミコンライクなゲームをちょっと作ってみようと思う。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
なんとか、この冬は、自分の実力を付けて、それから、人間関係の幅を広げることをしようと思う。