弐条海月の とはずがたり

そこはかとなく書き綴るブログなるもの

» 2011-04-08の日記

HSPでの開発話…

仕事でスタッフに毎日使ってもらっているアプリケーションを新規で開発し直すことになりました。業務上の仕様変更のためこれまで自動化できていた部分が手動での作業になってしまうため、それでは…と手を入れることにしたものです。開発言語は、いつもの通りWindowsで動作するフリーのインタプリタ型プログラム言語「HSP(Hot Soup Processor)」。以前のアプリケーションは、HSPの古いバージョン「HSP2.6」で書いており、基本的なプログラム言語の仕様が大きく変わっていること、私のプログラムの書き方もかなり変化したことから最新の「HSP3.2」で新規に書き直すことにしたものです。そのお話。

このアプリケーションは、先方から定期的に送られてくるテキストデータを整形して切り分け、1日ごとのファイルに変換。その後、1日ごとのファイルを読み込み中のデータ(数値や文字列)をもとに対応する画像ファイルを選択し、それをグラフのようなベースの所定の場所に貼り付けて最終的に1枚の画像を作るアプリケーションです。生成した画像は印刷にも使える大きさになっているのが特徴です。

 このアプリケーションは2006年秋に開発しました。それまでは数値や文字列に対応する画像を手作業で1枚ずつベースに貼り付けていました。ベースに貼り付ける画像は1日分で84枚ありますから、手作業でやるとかなり時間がかかります。2日分だとその倍の時間がかかることになります。それを完全に自動化するために開発したアプリケーションなのでした。

今回はグラフのようなベース画像が変更になったので、プログラムの修正をかけることにしたのですが、「HSP2.6」時代にお世話になり現在は使わなくなったプラグインではない処理方法を検討する必要がありました。HSPでのアプリケーション開発には欠かせない「HSP-NEXT」のさくらさんが作られたHSPモジュール集「stdlib」を主に使い、文字列の取り扱い部分では私が自作したモジュール「kurage_mod」を使って開発しました。

作ろうと決めたのは実は4月に入ってからです。「HSP3.2」になって画像処理系の命令も強化されているため、標準命令でかなりのことができそうな気がしたのですが、普段書いているプログラムは文字処理関連が主なので、画像処理は苦手です(汗)。

予定では5月からこのプログラムを動かして業務することとなっておりますので、早期に開発してテストを行い万全を期したいと思っておりましたが…今日のうちに取りあえず組み上がりました。昨日と今日はプログラム開発しかやっておりませんので、思った以上に早かったです。単純な比較にはならないかもしれませんが、「HSP2.6」で開発した従来アプリではソースが552行あったのですが、新たに「HSP3.2」で開発したバージョンでは、機能は複雑化しているのにもかかわらず行数は467行と100行近く短くなっております(爆)。

とりわけ、今回のアプリケーション開発で勉強になったのは、画像処理の部分ですね。HSP2.6xで開発した以前のアプリケーションは、サードパーティー製のプラグインを使用しデータに沿ってPNG画像を読み込み、所定の場所に貼り付けておりました。その際、透明画像のサポートが必要な場合と、そうでない場合の処理を両方書いて、それぞれの画像をどちらの方法で処理するか判断しておりました。

今回は純正の命令で新しく登場したcel関数を用いて透明処理を含む画像処理を行うことにしました。この命令を使うと、画像の管理が簡単になります。従来は仮想画面を作成してから画像を読み込むことになっておりましたが、celload命令では仮想画面の作成も込みで画像を読み込むことができます。読み込んだ画像は、celdiv命令にて分割サイズを設定すれば、同サイズの画像であれば任意の場所から画像を切り出して使うことができますから便利です。これによって従来は様々なデータに対応する画像(アイコン)が116個あったのですが、cel命令でまとめることができたのでわずか34個になりました(笑)。すべての画像をまとめた訳ではありませんが、まとめて処理しているのといないのとでは、明らかに動作速度が違い後者のほうが高速ですね。

また、今回はPNG画像の読み込みにImgCtxを利用して画像ファイルを読み込むモジュール命令「mod_img.as」の命令文「imgload」を使用してみたのですが、BMP画像を使って新しいcel関数を使用したほうが高速に処理ができることが分かったのでPNG画像はすべてBMPに変更しました。

それと、1日分の処理を終えてJPG画像を書き出そうと思ったら…標準命令では画像を書き出せないのを思い出しました(笑)。そこで画像処理に特化した拡張画面制御命令用の純正プラグイン「hspcv」を初めて使うことに。すでに仮想バッファ内で画像を張り終えたベース画像を以下の命令文にてJPG画像として保存しました。


Vブレーキシューの交換

今シーズン初のマイ自転車通勤を昨日行ったわけですが(笑)、リヤブレーキが効かなかったことからあらかじめ購入してあったブレーキシューに交換しました。そのお話。

私が乗っているのはDOPPELGANGER(ドッペルギャンガー)202 / blackmax。黒にこだわった車体にオレンジ色の差し色が映える自転車です。安い自転車ですが、20インチの折りたたみ自転車では決して多くないアルミフレームなのが良いと思いまして。また、整備の基本を覚えたりカスタマイズを楽しむのにはピッタリと考え昨年購入したものです。

私は札幌に住んでいた中学生のころ、MTBで山を下っていて転げ落ちた経験があります。以来、フロントブレーキをかけるのが怖くてもっぱらリヤブレーキを使うため極端に減りが早いようです(笑)。

今までの純正シューは効きがイマイチでしたから、シマノ製のシューには期待しています。購入したVブレーキシューは「シマノ BR-M330 S65T Vブレーキシューセット Y8GP9804A」というもの。取り付けにあたり、一度Vブレーキユニットをすべて外してパーツクリーナーにて洗浄。稼働部をグリスアップしてから組み直しました。Vブレーキシューの位置決めは、左右のクリアランスを揃えるのにスペーサーでの微調整が大変でした。

ちなみに現在はリヤタイヤのスポークが2本折れている状態。昨日の日記にも書いた通り、スポークは入手済みですが取り付けに伴いスプロケット外しの工具が必要なのです。ホームセンターの方からの連絡では取り寄せに3週間もかかるのだとか。取りあえず頼んでおきました。

スプロケ外しの工具が届くまでは、自転車に負担をかけずに乗ろうと思い、改めてニップル回しを使っての振れ取り作業もしておきました。また、変速機が調整しきれないのでワイヤーを貼り直してみました。

今日は昼に雨の予報だったのでやめておきましたが、明日は自転車で通勤しようと思います。

今回、私が交換したVブレーキシューはこちらでした。


Google Analytics Dashboard

このサイト『弐条海月の「とはずがたり」』はWordPressを使って運営しております。今日はWordPressのプラグイン「Google Analytics Dashboard」を追加しました。このプラグイン「Google Analytics Dashboard」は、Googleが提供するWEB上のアクセス解析ツール「Google Analytics」のページを開かなくとも、WordPressのダッシュボード上で簡単なアクセス解析が見られるようになるプラグインなんです。

もちろん、あらかじめGoogleのアカウントを取得していて、Google Analyticsの登録(WordPressで運営しているブログを)も済ませていることが前提ですけれども。

このプラグイン「Google Analytics Dashboard」を導入することでダッシュボード(WordPressの管理画面)に表示されるアクセス解析項目は、過去一ヶ月間のページビューのグラフがメイン。そこに一ヶ月のVisits、Pageview、Pages/Visit、BounceRate、Avg.Time on Site、New Visitsがいずれも数値で表示されます。さらによく読まれている記事のTop10、検索ワードTop10などを知ることができます。また、ダッシュボードの投稿記事の一覧表示画面でも、各記事のアクセス解析結果が表示されます。

私の場合、「Google Analytics」がSEOに有効であることは重々承知なのですが、実際に「Google Analytics」のページを確認するのはごくたまにだったんです(笑)。このプラグイン「Google Analytics Dashboard」を導入することで、SEOが身近になったような気がします。すごく便利なので、もっと早く導入しておけば良かったと思いました。

ちなみにこのサイト『弐条海月の「とはずがたり」』で人気の記事は、この一ヶ月間ではMacBookPro(Early2011)に関する記事ですね。たいしたことは書いておりませんから、サイトを訪問してくださった方はガッカリしている可能性が高いのですが(笑)。


固定ページ

最近の投稿

カテゴリー





カレンダー

2011年4月
 123
45678910
11121314151617
18192021222324
252627282930  

過去の日記はこちら

キーワードで検索