スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

宅建学習支援サイトの開発よりの話

http://www.happiese.com/takken/

開発よりの話。

今回、PHPとMySQLで作ったが、結構はまった。
今までPHPでは、1,2ページで完結するようなちょっとしたものしか書いたことがなかったが、今回は、小規模案件レベルとなった。テーブルは7テーブル、PHPファイルは、18ファイルになった。

PHPは簡単で生産性が高いと言われているが、個人的にはJavaが一番生産性が高い。IDEに慣れてしまっていると、エディタでごりごりスクリプトを書くのは耐えられない。eclipseを使っていると、いろいろ便利なことがありすぎで、エディタを使うときにひどく生産性が落ちるような感じがする。スペルミスなんて一切気にする必要がない。

まあ、結論としては、生産性が一番高いのは、自分が一番慣れている言語、ということ。

ただ、スクリプト言語としては、個人的には、Rubyの方が好きだし、断然書きやすい。
Railsをレンタルサーバにインストールしようかと思ったが、いろいろつまりそうなので、最初から組み込まれているPHPにした。

変数に$を付けなければならないのと、グローバル変数のルールはあまり好きではない。モジュールでも、いちいち<?php>で囲まなければならないのも気に入らない。

一番つまったのは、PHPというよりも、MySQLの文字コード問題。いつものことだが、新しい環境では避けては通れない問題だ。

set names など効かず。全EUC-JPにしたりUTF8にしたりしても効かない。
phpMyAdminで表示されるのが、画面だと表示されない。画面で表示されるものがphpMyAdminでは表示されない。画面から登録したものは画面では表示される。マスターはインポートしたいが。

よく見れば、mysqlの設定がおかしいが、レンタルサーバなのでいじれない。同様の問題はフォーラムでも上がっていたが解決したようには見えない。DB作成時に、文字コードをSJIS,EUC,UTF-8の三つから選べるが、どれを選んでも、
show variables like %char%;
で見ると、latin1が混ざってしまう。これはひどすぎる。自分でやるときは、my.cnfをいじって文字コード関連の変数は全部同一にする。

sqlファイルでphpMyAdmin経由せず直接インポートするとうまく画面でも表示されるので、LOAD DATA INIFILEを使うが文字化けする。mysqlimportを使ってもだめ。仕方ないのでUTF-8でDBを作って、UTF-8のSQLファイルを作り、phpMyAdminは使わずにSSHで直接、mysqlコマンドでアクセス。SQLを使えばphpMyAdminは使う必要がない。

こんなつまらないことでかなりの時間を食った。こういう時間が無駄でならない。何の生産性もない。

あとMySQLでは、'文字(シングルコーテーション)の検索ができない。
\'も''もだめ。
"%\'s a miracle%";
ならOKで
"%t\'s a miracle%";
はだめ。前Javaからやったときはできた気がしたのだが。ここは時間をかけるほどのものではないので断念。

あとPHPでつまったところ。どれも基礎的なことばかりなのが情けない。

・register_globals は使わず、すべてパラメータやセッションは、$_POST、$_SESSIONで受け取るようにする。
・Cannot modify header information - headers already sent byがよく出た。出力については気をつける。
・Fatal error: Cannot redeclare xxx() (previously declared in のエラー。
 require_onceを使う
・グローバル変数の参照
 関数の中でglobalと宣言
・文字コード すべてEUC-JPに統一することで解決
・DBの結果件数は、select文であれば$result->FetchRow()で、update文であれば$db->affectedRows();で調べる。



あと、MySQLは、InnoDBにしていたが、トランザクションを使っていないので、MyIsamでもよかったかもしれない。拡張していった段階で、トランザクションが必要になる場面が出てくるかもしれないのでそのままでもよいか。昔、トランザクションがないアプリケーションを聞いてそんなものがあるのかと思ったが、こういう規模のアプリを作るphp屋であればトランザクションは必要ないだろう。
スポンサーサイト

テーマ : ソフトウェア開発
ジャンル : コンピュータ

宅建学習支援サイト Tackunの公開

宅建は毎年、10月に行なわれる試験ですが、あと半年を切り、受験を考えている方は、そろそろ準備に手を付けるころかと思います。

私は、昨年首尾よく合格しましたが、2ヶ月という学習期間は短く、かなり苦労しました。
そのとき、自分で過去問を演習するアプリがあればいいなと思い、最初はエクセルに問題と答えを入力して、関数やマクロを使って、解答を表示するなんてやっていましたが、結構作るのが面倒で、プログラムをつくる時間を割くよりも、勉強した方がいいということで、学習アプリは先送りにしました。

宅建を取ったものの、特に活かすことをしていないので、宅建の資格を、宅建の資格のために?役立てようということで、宅建用の学習サイトを立ち上げました。

http://www.happiese.com/takken/

これは過去問を順番に演習していくもので、特徴としては、

・選択肢自体を問題と見立てて、正誤を判断していく
 実際に勉強の際には選択肢一つ一つを理解する必要があります。
・即その頁で正誤の結果がわかる。
・選択肢ごとにフラグを立てられる。
・選択肢ごとにメモやリンクを設定できる。

というところがあります。
まだ他にも、個人用のメモ帳を充実させるとか、ジャンプ機能、シャッフル機能など思いつくものもありますが、とりあえず現段階でβ版としてリリース。


904SHから921Pへの移行

この921Pがっかりすることが多い。
やはりSB携帯はシャープにすべき。

シャープだったらtxtファイルは開くことができたが、921Pではそれができない。だから、メール添付のテキストファイルが開けないし、その他のフォルダに保存することもできない。なのに全部ダウンロードしてくるとは一体何なのか???

それから顔認証がないのはもちろんだが、携帯を開けたとき端末認証するようにするのだが、待ち受け画面が表示されないと、メールの新着アイコンが表示されない。

と書けばきりがない。

●ホワイト学割のこと
機種変更した際、使いもしない、不要なサービスを1ヶ月無料ということで勝手に付けられる。結局使わず、月末に近づいたのですべて解除した。し忘れれば、余計な料金をどかっと請求される。解約しようにも、何ページも基本オプションパックの宣伝を通過しないといけなかった。こういうところがせこいやり方をする会社だ。
あと、Wホワイトに1ヶ月はしておかなければならないということだったが、どうにも変更の仕方がよく分からない。
明細を見てみないことには実際いくら取られるのかよくわからない。

●データの移動
アドレス帳は、ショップで移動してもらったが、それ以外をどうするか。
ソフトバンクユーティリティというのをWebからダウンロードしてきて、専用のUSBケーブルで携帯とPCを接続する。
こが困ったことにいまいち使えない。やはり専用のソフトを買う必要があるか。といっても、1回だけのために買うのはもったいない。
シャープからパナでは、フォーマットが違うのでそのままフォルダをコピーというのもうまくいくかどうかわからない。というか、カードリーダがSDHCに対応していなかったので、新しいカードリーダは発注して、シャープのデータファイルを手動でソフトバンクユーティリティに入力して、921Pに同期させるという方法をとることにした。

で、そのデータファイルだが、中を見ると日本語はQUOTED-PRINTABLEで記述されている。ブックマークなどは、アドレスがわかればよかったので、英数字だけ持ってくればよかったが、メモ帳となるとそうも行かない。
そこで、スクリプトを書いて、日本語を表示させるようにした。

これがそのスクリプト。公開するほどのものではないが。

rubyで書いているので

ruby quotedprintable.rb ファイルパス

で、シャープのデータファイルをくわせる。
データの内容に応じて、QUOTED-PRINTABLEが始まる直前の文字列と、QUOTED-PRINTABLEが終わったあとの文字列を指定する。

変換結果は標準出力に表示されるので、テキストファイルにリダイレクトして、あとは、ソフトバンクユーティリティに手作業で入力する。

結局、メモ帳と、ブックマークだけ転送できた。
カレンダーとTo Do Listは折角入力したのに、サポートしていないと怒られた。(なら、最初からメニューに表示せずDisableにしておけ!) サポートサイトを見ると同期はできないが、バックアップ・リストアはできると書いてあるのだが。最初にバックアップしてから編集する必要があったのかも。

さらにその他のフォルダにデータを送りたかったが、データフォルダにその他のフォルダが表示されない。結局これは、カードリーダが来てから、そのフォルダに直接コピーすることにした。

と、
今になって、よくサポートサイトを見てみたら、上記以外の機種、という記述があった。上記の機種だけが対象とばかり思い込んでいた。904SHでもこれ使えたの?
SIMを差し替えてするのが面倒なので試してはいない。

●フェリカの移動
マツキヨポイントカードの移動をしようとしたが、904SHの方でサーバへデータの保存をしたら、データ自体削除されてしまい、会員番号がわからなくなってしまった。

●Eitanの移植
起動はするものの
"java.io.Exception: could not create file"
と出る。
調べると、
conn = (StorageConnection)Connector.open("file:///mc/Other Documents/sample.dic");
conn.openOutputStream();
で発生。

①Other Documentsの直下は駄目なようだ。なのでディレクトリを作ってその下に置く。

②そもそも、外部メモリに書き込みさせてくれない。Other Documents/XXX/での存在チェックもアウト。内部メモリは①の対処でOKになった。と思ったが、なぜか駄目になった??読み込みはできる。
⇒と思ったが、端末を再起動したら直った。外部メモリもOKになった。

③921Pがファイル名をすべて大文字に勝手に変換してくれる(大迷惑)。プログラム側からはファイルの大文字・小文字は区別しているのでそこで対象外となってしまう。
⇒対処としては、辞書リストを読むとき、.DICも読むようにしたこと。921P側では拡張子のリネームは出来ない。

なので直したのは、プログラム側で.DIC(UpperCase)の追加、あとディレクトリの指定をOther Documents/EITANにしたこと、およびそのヘルプ。

しかしなぜか動作が不安定だ。動作中にフリーズしたりする。
掲示板では、いろいろと不安定な動作が報告されているが、どうも端末自体が未成熟なようだ。

シャープだと、Other Documents直下でないと動かなかったので、端末に応じて、あるいは自動的に切り替えるような仕組みが必要だ。
アプリゲットの本サイトにアップするのは、それができてからにしよう。
というか、使いたいという要望がコメントなどで寄せられない限りは、放置。

エコ推進

今日、買い物に行って思ったこと。

屋久島では全店がNoレジ袋となっていた。町全体で取り組むのはよい。
ここでは店に任せられている。スーパーでは大体、レジ袋を不要にするとポイントがつくようになっている。だからなるべくマイバック、エコバックを持っていく。

だが、お惣菜を買うとき、自分で選んで、置いてあるプラスチックのケースに入れ、ゴムで止め、レジへ持っていくとポリ袋にご丁寧に入れてくれる。
この辺も徹底して、マイ・タッパーを持っていってそこに入れるべきでは?と思う。
レジ袋だけを目の敵にするのはいかがなものか。レジ袋は、ゴミ袋として再利用できるが、製品自体の包装やケースは、きちんと分別しなければ単なるゴミとなってしまう。
マイバックでポイントがつくといったインセンティブがあるように、包装ケースを集めると市のポイントがつくといった特典を設けるなどやった方がいいのではと思う。「太田光の私が総理大臣になったら」でも前、国でポイント還元することが話題になっていたが、こういうところに使うのもいいかもしれない。

あとそれから、コンビニ。大概は、自分から袋要りませんと言うのだが、ボーッとしていると、瞬く間に店員がいくつもの袋に包んでしまう。そのたびにしまったと思う。なぜなら、コンビニを出た途端に袋から取り出して食べてしまうので、袋はきれいなままゴミ箱に捨てられてしまうからだ。

こんなときに、

みたいなバッジを胸に着けておくと、コンビニの店員はそれを見て、言わなくても、シールだけで済ませるようにする、となるといいかもしれない。
着けている本人のエコ意識も高まる。

屋久島への旅

屋久島へ旅行に行ってきた。
屋久島は以前から行ってみたいところだった。4年ぐらい前にラジオで屋久島の特殊な状態と素晴らしさを聞き、大自然と純粋な状態にあこがれた。
また巨大な縄文杉にも興味があった。そこにたどり着くには、往復10時間かかる。以前はよく登山をしていたが、最近は、少し歩いただけで疲れる状態なので、非常に難しいと感じていた。ただ、その場に入ってしまえばできるだろうと思っていた。
人の多い時期を避け、また寒い時期を避けるということで、4月下旬はじめはちょうどいい季節だと思った。天候も恵まれて、初日こそ雨が降ったものの、その後はずっと晴れで、天気が変わりやすいと言われる山でも一滴も降らず、東京に帰ってきたときに雨が降ったという感じでタイミングがよかった。


しばしば道で野生の鹿に出くわすことが多い。


猿もこのとおり、人から逃げることなく道端にいる。

屋久杉
屋久島には巨大な杉が至る所にある

トロッコ_P1010152
縄文杉へは登山口からしばらくの間、トロッコ道を登っていく。
これはたまたま工事の人がトロッコで登っていくところ。

ウイルソン_P1010169
ウイルソン株の中から上を見ると、(ハートマーク)に見える。

縄文杉_P1010177
やっとたどり着いた縄文杉。
行く途中でも大きな杉が多く見られたが、その上をいく巨大な姿に圧倒される。
やったと思ったら、隣にいたおじさんが「ここが終点じゃないよ。まだ帰りがあることを忘れちゃいけないよ」と厳しい言葉。

帰りのトロッコ道の特に小杉集落跡からの平坦な道がつらかった。旅館のおかみさんが、「途中下車はできない」と言ったまさにそのとおり、つらくても帰らないといけない。


◎縄文杉トレッキングで必要だと思ったもの

・簡単な地図
 各ポイントと概ねの距離・時間が書いてあるものでOK。ガイドブックは高いので買わなかった。本格的な登山をするわけではないし、道に迷う心配もほとんどないので地形図も不要。私は、宿泊先に置いてあった雑誌の1ページをコピーした。ヤクスギランドや白谷雲水峡では、簡単なガイドをもらえるが、縄文杉行きには特にないので用意しておく。

・テーピング、あるいは足首・ひざへのサポータ

・サロンパス等湿布薬
 普段ある程度運動していてもこれだけの長時間歩くと結構な筋肉痛になる。そして短期の旅行中に詰め込みで、あちこち行こうとすると無理が出る。そんなときは湿布が結構役に立つ。

・糖分・ビタミンCの補給 飴やチョコレートなどがいい。弁当と水だけでは足りない。

・杖 登山口に他の登山者が置いておいたものが時々ある。

・登山靴 普通の靴でも大丈夫という人もいるが大株歩道から縄文杉まで山道となるので必要。普通の靴でもいいが結構ぼろぼろになるので、レンタルした方がいい。

・小型の水筒・ペットボトル 水はところどころで水場があるので多く持ち歩く必要はない。またいちいちリュックサックから取り出さなくてもいいように、首や腰やリュックサックの横に引っ掛けておけるようにして、必要なときすぐに水分補給できるようにするのがいい。

・荷物は出来るだけ軽く
 いざというときの非常用品を入れるかどうか難しい判断となる。夜遅くなったときのためのヘッドライト、防寒対策のカイロ・固形燃料・防寒具・エマージェンシーブランケット、救急医薬品、ガイドブックなどなど、すべてを含めると結構な重さになる。荷物が軽いと、かなり軽快に動くことができ、その分体力は維持できるし、時間も短くて済む。そうするとヘッドライトなどは不要になる。非常対策を取るか、軽さを取るかのトレードオフとなる。往復10時間もかかる日帰りのプランというのは結構厳しい。
 ガイドを頼んで、これらのものはガイドが持つだろうから、自分は身軽になるのもいいかもしれない。ガイドはいろいろ面白い説明をしてくれるだけではなく、こういう点でも役に立ってくれるかもしれない。
 ただレインウエアは天気予報が晴れでも必須。実際ふもとでは快晴だったがところどころで曇っていた。

◎その他
・交通
鹿児島から屋久島へ船で行くよりも飛行機で行ったほうがいい。
鹿児島空港から高速船乗り場まで1時間ぐらいで1200円+@かかる。さらに高速船で2時間ほどで屋久島に着く。移動や手続き等を考えると時間がもったいない。

・レンタカー
バスで大体どこへも行けるが、本数は多くないし、おそくまで便はないので、レンタカーで柔軟に行動できるようにした方がいい。登山口の最終に間に合わせるために、急いで行動していた人も結構いた。
ただガソリン代が高く、このときには、リッタ144円だった。

もののけ_2009042312490000~1
白谷雲水峡にあるもののけ姫の森

太鼓岩_2009042313360001~2
太鼓岩からの眺め(ここからの眺めは最高。360度まではさすがに行かないがぐるっと見渡せる)


太鼓岩若者_P1010194
太鼓岩で命知らずの若者に出会う。丸みを帯びたその先は断崖絶壁だというのに。
未だに屋久島では転落死した人はないそうで。

テーマ : 九州の旅
ジャンル : 旅行

携帯:904SHから921Pへ機種変更

904SHを使って2年半以上経ち、それ以上待っても割引のメリットもなく、また外観がボロボロになってきたので、機種変更することにした。

携帯をそこまで使い込んではいないので、904SHでもほぼ満足していたが、もう少しインターネットを高速化したいというのと、いろいろと制限があるのが不満だったので、新しいのに変えたいと思っていた。

大学入学のおかげで、ホワイト学割(基本使用料980円割引)が使えることも、これを後押しした。
既存の場合、ホワイト学割は機種変更をしないと適用されない。
昔と違い、端末は0円ではなく、割賦払いになるのでそう簡単には機種変更などできない。904SHもそうなる前に急いで買ったもので、いろいろ割引をつけて16000円で済んだ。
機種変更時の実質負担金を見ると、0円なのが結構ある。実質負担金が加算されるというのはいやだが、980円までならいいだろうと思った。

980円かかるOMNIAと300円の921Pのどちらにするか迷ったが、前者はFelicaがないので、後者にすることにした。

使ってみて気づいたこと(904SHとの比較)

・レスポンスが悪い
・ボタン操作がしにくい
・何かの操作の際に押すボタンの回数が多い
 メールを削除するのに、5回ボタンを押す必要がある。
 確認画面でデフォルトがNoなので、Yesに移動してからボタンを押す必要がある。
・オプションが少ない
・迷惑メールフォルダがない。
・ブラウザでリンクをクリックしたとき、アクセスしに行っているのかどうかがわからない。(たぶん取得を始めてからアイコンが点滅しだす)
・手ぶれ補正ってちゃんと効いている?
・英大文字のみ入力がしにくい。いちいち変換が必要?
・家計簿メモがない
・ソフトバンクユーティリティ
 その他のフォルダの転送ができない。

・カメラはきれい
・ただし押してからシャッターを切るまで時間がかかりすぎる。

・通信速度が速い。
 ただしブラウザの最初の接続に時間がかかるし、取得を始めるまでに時間がかかる(4秒ぐらい)のでPCに比べると全く快適ではない。
・スクロールを半頁/一頁でできるボタンがあるのはよい。

・高解像度
・文字入力がしやすい
・ワンセグ まあまあ感度がよい。ほか同様室内ではテレビ埼玉が入らない。

・マルチタスク 904SHでは二つまで
 ただし同じグループは一つまで。二つブラウザと立ち上げられないのは痛い。

・eitanが使えない。IOException: could not create fileと起こられる。多分、ファイルの保存パスの問題だろう。直さなきゃいけない。

安いのには意味があるということ。シャープの方が一歩先を行っている、というかユーザの使い勝手を考慮している感じがする。
そういう意味ではサムスンも同じか。

しかしどうもこのビジネスモデルというのは気に入らない。
買う時期によって負担金が違ってくる。なら一括で購入すればいいのだが、割引を考えると、どうしても分割にしたくなる。
一括なら、待ってれば安くなったのか、損したなあ、でそのときで終わりだが、分割の場合、それが後々まで付いてくる。

Logicol QVP61HSSV

サイバー大学の受講の認証のため、Webカメラが必要になった。
家のノートPCにはついていたが、デスクトップにはない。
Skypeとかメッセンジャーとか昔ちょこっと音声でのみかじった程度なので、Webカメラは使う機会はない。
ということで、手ごろなものを探すことにした。

評判から、30万画素でも十分ということで、Logicol QVP61SVを買うことにした。
が、ヘッドセット付のLogicol QVP61HSSVと400円しか違わないので、どうせならと付いている奴にした。最初、カメラ部に何か違いがあるのかと調べたがよくわからない。たぶん同じ。
アマゾンで取り寄せ、2日後に到着。CDでドライバとソフトをインストールしている最中にUSBに接続するように要請される。が、一つのUSB端子につないだが全く認識しない。別の端子につなぐと認識した。
全端子が埋まってしまったので、HUBを買わないといけない。

セットアップを無事完了し、カメラも映るようになった。
が、異常に画質が悪い。これでは使い物にならない、と思っていたら、単にピントがあっていないだけだった。PCのメニューからフォーカスの設定を探したが、この機種ではない。仕様には、マニュアルとある。どうするのかと思ったら、カメラのレンズのところが回るようになっていて、そこでピントを合わせるようだ。最初それかと思ってまわそうとしたが固かったので回らないかと思っていた。

面倒だが、別に一度ピントを合わせたら距離を変えることはほとんどないので、マニュアルでも十分だろう。
ピントを合わせれば、高画質とはいえないものの、そこそこ十分。

テーマ : 日記
ジャンル : 日記

プロフィール

dayan

Author:dayan
小職は、SE(システムエンジニア)を専門としておりますが、技術的な情報を中心に、それ以外に経済関連の日記、たわいもない日記も載せていきます。
[公式HPもよろしく!]

天気予報

-天気予報コム- -FC2-
リンク
ブロとも申請フォーム

この人とブロともになる

カテゴリー
最近の記事
ブログ内検索
最近のコメント
最近のトラックバック
RSSフィード
月別アーカイブ


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。