「プログラミング」に関する日記(15)

プログラミング関係の話題。プログラミングコーナーを更新したとか、プログラミングの内容に踏み込んだ話とか。

<前 次>

SQLiteで端数処理とドラゴンクエストX職人素材データベース

突然ですが、「SQLiteで端数処理」更新しました。
整数の切り上げを追加。
これでこのシリーズは完成です。
もっと突き詰めるならば、正の数限定とかもやってよさそうですが、あまり増やしすぎても仕方ないかな、と思うので、とりあえず、これで終わりです。
結構幅広く対応できるので便利じゃないかと思います。

DQ10の素材データベースもちょっと強化。
なんというか、こう、画像と文字コンテンツを横並びにしたときに、必要に応じて縦並びに切り替えるという、そういう機能をCSSで実装しました。
結構実装が面倒な割には、結構目立たない場所です…。
でも、極限状態の閲覧環境だと、これが結構効いてくるのだと思うのです。

SQLiteで端数処理/

続き書きました。
今回は切り捨て。
四捨五入と違い、小数の使い回しではなく、ちゃんと整数用の式を一から作っています。
あとは切り上げのみ。
これは、実はアンパンマンDB3でも使っています。

無題

SQLで端数処理、更新しました。
どうせ小数版をちょこっと修正するだけなのでさっさと完結させてしまいたいですね。

無題

とりあえず、SQLiteの端数処理のページ、整数も扱ってみることにします。
他にも正の数に限った簡易版とかもやってみたいですが、とりあえずこれからは少しずつネタを小出しにしていこうかと。

無題

というわけで、小数の整数への丸めだけですが、書いてみました。
しかし、それだけとはいえ、負の数の扱いや、.5をどちらに丸めるかなど、色々と充実した記事になりました。
とはいえ、ものによっては常用に堪え難いほどクエリが長くなったり、実数型を前提にしているなど、あまり使い勝手の良いものとは言えない印象があります。
よく使われる0以上の範囲に限って正しく動くシンプルなクエリや、整数をより大きな位の整数に丸める方法など、まだまだ話を広げようと思えば広げられそうです。

無題

先日のアンパンマンDB3の機能実現のため、数の切り上げをやろうとしたのですが、SQLiteには四捨五入の関数しか用意されていないため、クエリを工夫して切り上げを実現していました。
切り捨て・切り上げがないのは実に不便ですが、逆に言えば、こういうところが私の工夫の見せ所ということにもなります。
プログラミングコーナーに結構充実した記事が書けそうなのです。

無題

プログラミングコーナーで公開していた「FilesizeFormat」クラスをダウンロードコーナーで改めて公開しました。
プログラミングのサンプルというよりは、そのままプロジェクトに組み込んで使うほうが便利なものだったので。

無題

これまでずっとsmartyではバージョン2の記法で書いてきたのですが、実はうちで使っているのはバージョン3だったのでもっと書きやすい気泡があったのでした。
foreachとかずっと{foreach from=$array item=value}なんてことやってましたよ。
バージョン3では{foreach $array as $value}というPHPに近い表記も可能なのです。
とりあえず見つけ次第新しい表記に直していこうと思います。

無題

プログラミングコーナーの当たり判定補助クラスにミスがあったので修正しました。
報告してくださったtetさんに感謝します。

アンパンマンDBは、登録するデータの重複を一部省略してデータサイズを削減したり、リンク機能無しのリスト表示など。
自動リンクを入れると結構骨が折れるのですが、それさえなければただの単純なサブクエリなのです。

無題

アンパンマンDB3のデータベース管理クラスを検索機能のクラスと編集機能のクラスに分割しました。
現状のアンパンマンDB2のように何でもかんでも1箇所に集約しすぎてソースがごちゃごちゃしてきたのと、ユーザー側のページでも呼び出していないだけで編集機能そのものは動く状態で存在していたのが理由としてあります。
編集機能は結構大きいので、ユーザー側のページでは絶対使わない編集機能を読み込むのも無駄な話だし、もし万が一間違えて編集機能を呼び出すコードなんて書いてしまったら大変です。実際紛らわしい内容のメソッドもありますし。

あと、SearchPhraseParserを微妙に更新しました。
本体の動作が変わらないほど本当に微妙な変更ですが。
ただ、オプション項目を追加する程度のことはできたかなーって気がします。

無題

アンパンマンDB3のトップページを作成中。
50音順もバージョン2よりパワーアップさせています。

あと、プログラミングのページも更新しました。
最近必要があって作ったBOM検索のプログラムです。

111111

カービィWii、本当の100%クリアしました。
本編は、ですが…。
あとは夢の対決のあの人と戦うことになるあのモードが……

アンパンマンDB3のカテゴリは元々の入れ子集合モデルのままで行くことにしました。
書き換えの手間やデータ量の点で経路列挙モデルが不利というのももちろんですが、入れ子集合モデルには入れ子の表現に遣う値がそのまま並び順にもなっているという利点があったのでこちらを選びました。

プログラミングのページ更新しました。
ファイルサイズを文字列に変換するFormatProviderです。
サンプル的なものなので色々抜けていますが、もうちょっと調整すればちゃんとしたものとしていろんな面で使えるようになりそうです。

無題

文字列の左側共通部分を取り出すプログラムを以前作ったので、今日は右側を作ってみました。
まあ、割と簡単な内容でした。

あと、カービィWii、あっち方面もクリアしました。

無題

ふわふわふにゃの開発はGitの練習も兼ねてやっていこうと思っています。
Gitはブランチ(開発の分岐)を作ったり統合したりするのが得意なので、メインブランチと新機能ブランチとバグフィックスブランチに分けて開発いくこともできそうです。
そうすれば、新機能が未完成なせいでバグフィックス版が公開できないなんて悲劇も防げそうです。
すなわち、バグフィックスのアップデートは頻繁に行いつつ、裏ではじっくりと新機能の開発もしていけるわけです。
今はまだGitの使い方がよくわかっていないので、失敗してもダメージの少ないこのふわふわふにゃでGitの練習もしていこうと思います。

無題

enchant.jsを使ってJavaScriptでふわふわふにゃを作ろうかと思っています。
JavaScriptは以前と比べると劇的に速くなったとはいえ、まだまだ本格的なゲームを動かせるほどではなさそうなので、こういったミニゲーム類から攻めていこうかと。

無題

マウス新しいの買いました。
クリックが効かなくなるのは嫌なので今回は耐久性重視で選びました。
中央ボタンのクリック感がいまひとつなほかは割といい感じです。

AmazonAWS、うまくいきました。
ただの検索ですが、ちゃんと認証も通って結果が返ってきました。
あとはこれをどう組み込むかといったところですね。

無題

8月に言っていたレーダーチャート、アップしました。
サンプルはアキヤメのプログラムをちょっといじって作りました。

個人的な話ですが、Gitの改行の扱いちょっと変更しました。
CRLFを自動変換しているとGithub上にはVisualStudioでそのまま読めないVisualStudioのプロジェクトが存在することになってまずいので、改行コードをそのまま維持するようにしました。
そうすると今度はUNIX系のOSで動かすCGI系統で困りますが、いまどきちょっと気の利いたソフトなら改行コードが違っても読み込んでくれるし、こちら側で編集段階からLFで改行していてもいいわけです。

無題

AmazonAWSの認証について調査中。
一応何かライブラリを使えば簡単にできないこともなさそうなのですが、認証周りのことを一度よく理解しておいたほうがよさそうな気がしたので自分で実装してみることにしました。
アンパンマンDBの商品情報の更新の一助にしようと考えています。

無題

SPDYなんて技術が開発中らしいですね。
HTTPを高速化するとかなんとか。
Googleが開発中のようです。
ブラウザの開発元でありサーバーの提供元でありネットワークに情報を流すことで利益を上げている企業だからこそ、ブラウザとサーバーの両方の対応が必要でネットワークの通信に大きく関わるようなことに着手できるんでしょうね。
おそらくPHPとかでプログラムを組んでいる私のようなものには直接的には絡んでこない事象でしょうが。

<前 次>