六帖のかたすみ

DVを受けていた男性。家を脱出して二周目の人生を生きています。自閉症スペクトラム(受動型)です。http://rokujo.org/ に引っ越しました。

プログラミング

六帖webアプリ引っ越し

miraiserverがしょっちゅう落ちるしMySQLにアクセスすると2回に1回は失敗するという壊滅的な状態になってきたので、代わりのサーバーに引っ越した。 Hostinger ここにしました。 六帖webアプリ 引っ越し先

時刻表csvその3

下の続き 不具合はあっけなく治ったので、小田急小田原線、休日も含めてcsvが一応できた。未来サーバー・無料PHPサーバーにアップロードした。全部合わせると2.53MBで、そこそこ大きい。 まだ問題点が残っている。 ・特急えのしま、特急さがみが分離・併合す…

時刻表csvその2

時刻表取り込み - diary 六帖の続き ようやくcsv作成用のプログラムが形になった。が、まだ不具合がある。下りの多摩急行など、3路線以上をまたいだ時の列車番号の切り替えがうまくない。前の路線の列車番号を引き継いだままになってしまっている。今日はcsv…

グラフができた

9/14の続き。3週間越しでやっとグラフができた。週に2時間くらいしか時間が取れないのでしゃーないが。 上のグラフは、LanguageTrainerの問題の回答状況、復習状況を示したもの。一度問題を解くと「1回解いた」に集計される。翌日に同じ問題が出るので復習す…

MySQL LIMITの開始位置

書いておかなきゃ絶対忘れる! Be careful with the LIMIT keyword, because offsets start at 0, but the number of rows to return starts at 1. So LIMIT 1,3 means return three rows starting from the second row. なんとLIMITキーワードの第1引数で与…

nl2br

nl2brとはPHPで改行コードをBRタグに変換してくれる関数(参考)、 ではない。 公式マニュアルによると「改行文字の前に HTML の改行タグを挿入する」という機能だった。いままで、なぜDB内に大量の改行コードが存在しているのか謎だった。もっと早くマニュア…

textarea wrap="hard"

LanguageTrainerの問題入力画面で、textareaタグのwrap属性をhardにしていたため、自動折り返しされた文字列に全部改行が入っていた。。。どうも長い文章の途中に変な場所で改行が入っていると思った。 ああ、これまでに入力した数百の問題の半分くらいの改…

時刻表取り込み

とあるHTMLを1ファイル取り込んで、列車別時刻表のDB用csvファイルを吐き出すPHPプログラムの作成がやっと終了した。500行くらいのそこそこ大きなプログラムになった。以下結果物のサンプル。 列車情報テーブル 路線名,列車番号,平日/休日,列車種類,直通先路…

PHPの配列の参照渡し

また一つつまづいたところを書きます。PHPの配列を関数に渡すと、デフォルトでは参照渡しではなく、なんと値渡しになってしまう。 i [1] => have [2] => black [3] => hair ) function SetHage($array) { $array[2] = 'no'; } ?>ハゲにならない。SetHage関…

PHPの配列

PHPの配列はハッシュだけでできているので、ふつーの数値インデックスの配列と違って、要素の削除が面倒だ。unsetで要素を削除すると、歯抜けの配列になってしまう。 "foo", 1 =>"bar", 2 =>"hello", 3 =>"world" $array = array("foo", "bar", "hello", "wo…

DB構造再編

旧TrainNaviでは路線や駅に番号を振っていたが、これは拡張性を妨げるので、やめる。例えば、数年後に山手線新駅が完成する。このとき、駅を挿入するためには駅番号をずらさなければいけない。するとあちこちのDBも同時に直さねばいかず、必ず漏れが出てデバ…

TrainNaviリファクタリング準備

LanguageTrainerがある程度完成したので、次はTrainNaviをもっと実用的なものにしたい。具体的にやらなければいけないことは次の通り(優先度順)。 時刻表・列車データの充実 いま小田急・京王・JR中央線しかないのでさらに追加、できれば首都圏全域まで拡大…

compromise

PHPの本を読んでいて、unlinkを利用したファイルの削除のところで、どうもわからない単語に出会った。 Whenever you access files on your hard disk directly, you must also always ensure that it is impossible for your filesystem to be compromised. …

HTML5でグラフ

canvasを使ってグラフを描きたい。用途は、LanguageTrainerの統計機能。ペース配分に使いたい。 flotr2というライブラリを使うとラクラクグラフが書けるらしい。サンプルコードはこちら。 PHPとJavaScriptを連携させるしかないが、グラフの数なども動的に変…

一覧表示

六帖Webアプリ更新 一覧表示機能を追加した。PHPだけで作るのは苦しいね。$_POST[]に値を代入しておいて自ページ遷移で値を取り出す、というかなり無理のある作りになってしまった。PHPは静的テキストを吐き出す言語だから、動的な動きは苦手だ。今の仕様だ…

タイムゾーン

午前中にLanguageTrainerを実行したらなぜか復習の問題が1問も出題されない謎の現象が起きた。いろいろ調べてみるとなぜかSQL文の日付の条件が1日前になっている。現在日付をゲットするdateオブジェクトの値を出力すると、なんと日本時間から13時間も遅れて…

夏の終わり

昨日色々と用事を済ますため街に出かけた。生徒にとっては夏休み最終日なので、明日からは高校生が電車に大勢集結することになるのだろう。ちょっとうんざり。自分たちもあんなのだったのだし、、と思ってやり過ごそう。 3日前にサーキュレーターのボタンが…

LanguageTrainerほぼβ版

六帖Webアプリ更新 LanguageTrainerに編集機能を付け、致命的なバグを取ってついでにいくつか機能を付けて、一通り使えるバージョンになった。miraiserverのアクセス制限については、そんなに頻繁にSQLアクセスはしないだろうということで、とりあえず放置。…

Windows8.1(64bit)+XAMPPユーザーのみなさん

通常使用のPCを新旧交換した。 CPU速度は目算1.5倍、メモリは2GBから4GBに、同じWindows8.1だけど32ビットから64ビットOSに、ディスプレイは15→21インチと作業環境が劇的に改善した。 まずFireFoxがフリーズしない。すばらしい。FireFoxはメモリが足りなくな…

miraiserverの制限?

六帖webアプリではmiraiserverという無料のホスティングサービスを使っている。LanguageTrainerで単語をひたすら登録していたら、30くらい連続で登録したところで動作しなくなった。真っ白なページが表示される。miraiserverの過負荷防止のための制限に引っ…

LanguageTrainer ある程度完成

六帖Webアプリ更新 2014-08-03の続き。一日かけてほぼ形になった。本日作業したのは ・出題画面作成、問題選択論理・ログ機能実装 ・若干の仕様変更、デバッグ(一番時間がかかった) で、ひとまず動作するようになった。問題は英語のみ22問登録した。明日か…

Head First Design Patterns

Head First Design Patterns デザインパターン入門書。引っ越しで時間が取れず読み終わるのに3か月もかかった。2004年の本なのでJavaの仕様が古いと思われるけれど、精神は汲み取れた。全体を通して言っていることは、クラス間の依存性をなくすということ。…

やはり平日は時間がない

完成はまだまだ先にお預けか。 Eloquent Javascriptを読み終わった。正直、作ってるプログラムの抽象度が高くて何をやっているのか感覚でしか分からないところが多かった。foreachに相当する関数やらメッセージハンドラの登録やら、全部自前の関数でやってし…

進捗

作り始めてみたら、PHPだけですべて実装できそうなので、JavaScriptを使うのをやめてPHPだけで実装することにした。引っ越しが入ったとはいえ4か月間かけて読んだ本はデザインパターンとJavaScriptの本だったので、何の役にも立たなかった。。PHPはまだ少し…

LanguageTrainer続き

※自分用のメモなので、適宜編集します 今日は日曜なので、実装の時間が若干は取れそうだ。 2014-04-10の仕様を変更する。必要なテーブル [LTUser] ユーザー UserID UserName Password[LTTable] テーブル名 TableID TableName TableType 出題フォーマット番号…

デザインパターン

今更だがデザインパターンを学習し直している。プログラマーになる直前に一冊本を読んだのだけれど、まだコーディングもロクにできていなかった頃に読んだので、全く活かせていない。せいぜいSingletonパターンを時々使っているに過ぎない。30過ぎて、もうプ…

FareMap4

簡単な保存・読み込み機能を追加(ファイル1つのみ) 読み込んだ時の駅名の位置がおかしい。

FareMap3 運賃一覧表示

FareMap更新。 ・同一名の乗換駅はひとまとめにして表示するようにした。 ・運賃一覧表示に対応した。駅をダブルクリックすると他の全駅への運賃が表示される。計算はほぼ正しいようだ。 ・駅、駅名をドラッグできるようにした。保存はまだできない。残り作…

.NETアプリケーションで遅延バインディングを使ってExcelのオートシェイプをコピー

Excelで画面上の文字にマルを付ける依頼があった。 それも、VBAからではなく、C#の.NETアプリケーションから。 しかも、バージョン違いを吸収するために、遅延バインディングを使え、と。 いろいろ試したところ、シートにマルのオートシェイプを作っておいて…

最短経路導出

最短経路導出論理を作成した。考えた案は次の通り。 1)デフォルトで、前回作成した最短経路予想を最短経路とする 2)駅をノード化して、子ノード(複数)と親ノードを持てるようにする −後楽園−本郷三丁目−御茶ノ水 | −飯田橋−九段下− | 市ケ谷 なら、 後楽園…