2014年07月14日

【艦これタイマー(仮)を作ろう(5)】


【艦これタイマー(仮)を作ろう(5)】

突如始めた連載。
人気が出るわけもないのですが、こうやって公開することがモチベーションの一つになるので続けてます。
そろそろFNV環境復活したのもありまして今回でいったんENDとなります。

前回は「カウンタを充実させました」

【今回の成果】


【変更点】

・音声ボリュームを設定できるようになりました。
 消音対応(`・ω・´)
 ・・・起動し直しが必要なのでそこは改修の余地あり

・カウンタのバグを修正
 裏側です

・その他細かいバグ修正
 タブストップとか

【今後の予定】

・タイマーがずれる部分の修正
 タイマーコントロールはかなりアバウトっぽいからサーバータイマー使わないとなぁとか。
 めんどくさー。マルチスレッドとか考えたり? めんどくさー

・細かいバグ修正。

・ソースを美しくする

【おわりに】

とりあえずFNV環境が戻るまでに何か作ろうという事で始めたコンテンツです。
ちょこっと反応もいただけましたし、自分で使う分には十分な機能を備えました。
バグだらけなので公開は全然出来ないんですが、自分で使う分には満足しちゃうという。

そんな感じで短い間でしたがご静聴ありがとうございました。

開発工数・・・8時間程度。1人/日

posted by Fuchs at 22:18 | Comment(0) | TrackBack(0) | プログラミング
2014年07月07日

【艦これタイマー(仮)を作ろう(4)】


【艦これタイマー(仮)を作ろう(4)】

突如始めた連載。
人気が出るわけもないのですが、こうやって公開することがモチベーションの一つになるので続けてます。
そろそろFNV環境復活させたいんですが時間が取れなくて・・・。

前回は「タブ分けしました」

【今回の成果】


【変更点】

・カウンタの種類が増えました
 あ号の他に、い号、ろ号、通商破壊を追加しました。

・音声ボリュームについて若干改修
 裏側なので表には何もまだ無いです

【今後の予定】

・音声ボリューム設定の追加
 結月ゆかりさんの「遠征が終了しました」ボイスの音量を変えられるようにします。
 消音にも対応

・タイマーがずれる部分の修正
 タイマーコントロールはかなりアバウトっぽいからサーバータイマー使わないとなぁとか。
 めんどくさー。マルチスレッドとか考えたり? めんどくさー

・細かいバグ修正。

こんなんどうだろうなんて機能があったら教えてください。
めんどくさくない+シンプルな機能で、自分も便利だと思ったら追加していきたいなぁと。

【公開は悩み中】

・・・こんなソフト欲しい人いますかね?
と、前回書いたらお一人だけ声がw
となれば、全体配布じゃなくて希望者のみ配布的な感じですかねぇ。

まだ配布には至らない代物なので先の話ですが。

posted by Fuchs at 22:45 | Comment(0) | TrackBack(0) | プログラミング
2014年06月30日

【艦これタイマー(仮)を作ろう(3)】

【艦これタイマー(仮)を作ろう(3)】

突如始めた連載。
人気が出るわけもないのですが、こうやって公開することがモチベーションの一つになるので続いています。

前回は「あ号カウンタ」をつけました。

【今回の成果】


【変更点】

・3つのタブにしました。
 大きくなっちゃって邪魔くさくなってきたので・・・。

・設定を設け、設定できる項目ができました
 設定タブに「最前面表示固定」にする機能、「最終表示位置を固定」する機能を実装
 自分が欲しいと思った機能です

・手入力の遠征開始の実装
 今までコンボボックス内のデータだけでしたが、手入力にもやっと対応しました。
 入力チェックとかめんどくさいので適当です

ということで、自分の欲しいと思った機能はほぼ実装しました。
カウンタ類をもう少し増やそうかなとは思いますが

【今後の予定】

・音声ボリューム設定の追加
 結月ゆかりさんの「遠征が終了しました」ボイスの音量を変えられるようにします。
 消音にも対応

・タイマーがずれる部分の修正
 タイマーコントロールはかなりアバウトっぽいからサーバータイマー使わないとなぁとか。
 めんどくさー。マルチスレッドとか考えたり? めんどくさー

・細かいバグ修正。
 タブストップとかぐだぐだ

・・・こんなソフト欲しい人いますかね?
いや。前回コメント頂いて欲しいかもーなんてありまして。
自分用のおもちゃなので「あんたのPCに何が起きても知らないぜ」と
「ノークレーム、ノーサポート、ノーリターンなジャンク扱い」なら配布してもいいかなぁとは思いますが・・・。

配布するにしてもまだ先になりますけどねぇ・・・不安定過ぎるので。

完全に手動ツールなので、艦これの規約に抵触しません!
ちょこっとずれるキッチンタイマーとしても使える優れものです!(優れてませんね!!


posted by Fuchs at 21:30 | Comment(2) | TrackBack(0) | プログラミング
2014年06月23日

【艦これタイマー(仮)を作ろう(2)】


【艦これタイマー(仮)を作ろう(2)】

先週から突如始めた連載。
人気が出るわけもないのですが、こうやって公開することがモチベーションの一つになるので。

先週は「config」に値を保存するあたりで止まってましたが。

かなり成長を見せました。



【変更点】

・名称を【遠征タイマー(仮)】
・見た目
・手動入力欄を追加(機能はまだ入れてない)
・configに保持し開くときに再ロードし自動的に開始する機能の追加
・あ号カウンタの追加

横に終了日時が出るのがお気に入りですw

【あ号カウンタ】
時間を保存するのに利用した部分を応用し、あ号のカウンタを作りました。
いつも正を書いて数えてたりしたんですが、忘れちゃうこととかもあるので入れてみることに。
遠征ばかりして、出撃をあまりしない私には「あ号」が一番やっかいなウィークリーだったりします。
ろ号? 知らない子ですね

ということで、目安としてつけてみました。


若干大ぶりになってしまいましたが欲しいなと思っていた機能で残っているのは手動入力部分。
あとは安定性向上などを目指して行こうかなと。

ということで、順調に機能が積み上がってますw

posted by Fuchs at 22:16 | Comment(2) | TrackBack(0) | プログラミング
2014年06月16日

【艦これタイマー(仮)を作ろう(1)】


【艦これタイマー(仮)を作ろう(1)】

【きっかけ】
PCトラブル発生後、失ってしまったアプリケーションがいくつかあります。
その中の一つが「艦これタイマー(仮)」でした。

手動操作のタイマーで「絶対に規約に触れない」であろうその作りがすごくお気に入り。
終了1分前に黄色く変わって、終わったら音が鳴る。
ただそれだけのタイマーなんですがそのシンプルな作りがすごく好きだったのです。

PC復旧中に「さて落としてくるか」と思ったんですが。
「すでに公開されていませんでした」

なんでだろう(´・ω・`)

・・・(゚∀゚)!? 作ればいいんじゃね!?

ということで、作る事にしました。

【言語選択】

何使って作ろうかなーと思ったんですが。
日曜大工・・・じゃなくて日曜プログラミングするときは決まって「VB.NET」を使ってます。
仕事と違って「頭使わなくていいから」です。

どうせ自分しか使わないのでw

VisualStudioExpress2012を使います。

【コーディング】

Windowsアプリでー
フォーム1に、てこてことオブジェクト置いてー
だらだら中身を書いてー


2時間くらいでできたのがこちら。


・・・Label2が適当さを物語ってますwww

コンボボックスで遠征データを選択し、ボタンを押すとタイマーが作動します。
遠征データは、configファイルに定義してあります。追加も楽ちん!
終了1分前にボタンの背景色が黄色に変わります。


終わると「遠征が終わりました」と、結月ゆかりさんが教えてくれます。


んで、ボタンを押すとタイマーがリセットされて再開できます

すごく単純な作りですね。
ただこれでも私の要件は満たしているので早速使い始めているという。

・・・まだ実装してないのが「再開」機能。
アプリ落としちゃったらオールリセットされるという欠陥品ですw
16時間遠征とか対応できない!

途中からの再開を作り込まなければいけません。
configファイルに書き込んで読み込んでーをやらなくちゃいけないので、一瞬手が止まってます。

ちなみにラベルのところに出てる数字は、終了予定時刻。
これが個人的に欲しかった機能だったのでつけました。

こんな感じで遊んでいるため、他のことが何もできていないという。
プログラミングってやり始めるとなんかはまっちゃうんですよね−。

仕事でさんざんやってるくせにwww
と、言うことで、ちまっと連載してみます。

posted by Fuchs at 22:39 | Comment(0) | TrackBack(0) | プログラミング
2009年11月06日

VBAでUnicodeEscapeSeaquenceをデコード

さて、先日、ニコニコ動画が、(9)に変わりまして、マイリストの仕様がかなり変わりました。

週間ボカランのマイリストから、「ボカランを再ランキング」コンテンツを作っている私としては結構死活問題です。

ちなみに、再ランキングを動かしているスクリプトの環境は。

WindowsXP + Excel2000という数世代前の環境ですw
んでVBA(マクロ)でがっしがっし動くように作っていたんです。

話は戻りまして。
今まで、マイリストは今までHTMLで構成されていたんですが、今度からはJavaScript(Ajax)となってしまいまして。
データ形式が大幅に変更となりました。

ってことで、抽出スクリプトをガシガシ変えていたんですが。
でかい壁にぶち当たりました。

Unicode Escape Sequence(ユニコードエスケープシーケンス)

2バイト文字が総じて、「\u521d\u97f3\u30df\u30af」こんな感じにエンコードされているわけです。
こいつをデコードしなくちゃ日本語として表示できないわけでして。

こりゃやべぇと。
あちこちのサイトとか巡ったわけです。
んで、やっとこさ自分の納得できる関数ができあがりました。
バグ取りとかなーんもしてないので、何か問題起きてもしらんですが、とりあえず私の環境ではまともに動いているようなので、スクリプト晒します。

何の役に立つかは解りませんがwww




''--------------------------------------------------------
'' \u521d\u97f3\u30df\u30af こんなふうに
'' Unicode Escape Sequence(ユニコードエスケープシーケンス)
'' されている文字を変換するVBAスクリプト(XP-Excel2000動作確認済)
'' 引数に\u521d\u97f3\u30df\u30afとなっている文字をぶち込んで下さい
''
'' 使ったことで何か起きても責任は持ちませんので、自己責任でよろしくです。
'' (趣味用で適当に組んだのでバグがあるかもwww)
''---------------------------------------------------------
Private Function Henkan(ByVal strTemp As String) As String
On Error GoTo Err_Henkan:
Henkan = ""

Dim INT_BYTE As Integer
''INT_BYTEは、\uの後数値何文字あるか。
''一応定義しておく定数。大概4だと思うけど。
INT_BYTE = 4

Dim i As Integer
Dim flgUnicode As Boolean

''初期値設定
flgUnicode = False

''文字数分ループ
For i = 1 To Len(strTemp)
''Unicodeフラグがたっていなくて、"\"がきたら
If (flgUnicode = False) And (Mid(strTemp, i, 1) = "\") Then
i = i + 1
''ひとつ文字を進めて次がUで、\u ユニコードエスケープシーケンスだったら。
If Mid(strTemp, i, 1) = "u" Then
i = i + 1
flgUnicode = True
Else
i = i - 1
flgUnicode = False
End If
End If

''Unicodeフラグがたっていたら
If flgUnicode Then
''4バイト分切り出して16進変換してChrWで文字変換
''INT_BYTEは、一応定義しておく定数。大概4だと思うけど。
Henkan = Henkan & ChrW("&H" & Mid(strTemp, i, INT_BYTE))
i = i + 3
''フラグ戻しておく
flgUnicode = False
Else
''ただの半角文字だったら
Henkan = Henkan & Mid(strTemp, i, 1)
End If
Next i

Exit Function
Err_Henkan:
Henkan = "残念ですがエラーが発生しました。"
End Function


ま、こんな感じっす。
ご使用はあくまで自己責任でお願いします。
何か起きても私は一切責任を取れませんのであしからず。
posted by Fuchs at 20:32 | Comment(0) | TrackBack(0) | プログラミング
2008年06月16日

趣味であっても

趣味でもプログラミングをカタカタやっている私ですが。
大分終盤に近づいていてきたのです。
そうなるとやることはデバッグになるわけです。

まー。苛々ですよ。

上手くいかない部分があちこち出てくるわけで、それに手を入れて動かすと思わぬ所がまた動かなく…の繰り返し。

苛々苛々…うきーーーーヽ(`Д´)ノ

趣味でもそんな苛ついてどうするんだと。
それならやらなければいいっしょってなものなのですが。

うん。何となくやらなくちゃなぁと。
苛々しながらも地味にちびちび先にすすもうと思っています。

今月中には公開予定です。
posted by Fuchs at 21:48 | Comment(0) | TrackBack(0) | プログラミング
2008年05月27日

PHPメモ書き

趣味の部分でかちゃかちゃ作っているプログラム。
もう少しでαぐらいのバージョンはアップ出来そうだなという感じになっていました。

で、色々作っている内に分かってきたこともあります。
メモ書きみたいな感じで残しておこう。

try-catch-finally…finallyねぇよ(;´Д`)
あったら便利なのにねぇ。次のバージョンで検討しているとかなんとか。

XML DOM
XML書き出しの$dom->save("ファイル名");
これは、排他制御ないっぽ。
ってことで、テキストファイルとして保存していく感じ。

//dump_memでテキストをはき出す。
$txtTmp = $dom->dump_mem(true,'UTF-8');
//ファイル作るよ。
$fp = fopen('ファイル名.xml','wb+');
//んでろっく。
flock($fp, LOCK_EX);
//かきこもう
fwrite($fp,$txtTmp);
//とじよう
fclose($fp);

こうやって排他をかけると。うむ。これで忘れない。
あー。
$doc->load();
は、ファイルがあるかどうかチェックしてないから、直前に
file_exists
なんかでチェックしておくことも重要。
Warningでるよ。

んなかんじでメモ書き。
posted by Fuchs at 20:44 | Comment(0) | TrackBack(0) | プログラミング
2008年05月08日

PHPでのプログラミングで

最近こつこつ進めているPHPプログラム。
XMLを利用するのですが、ノードの切り貼りしなくちゃいけないんですよね。

まだやり始めたばかりだったので、新しくノード作ってそこにコピー元のノードから取り出したデータを入れ直すという凄く面倒な事やっていたんですよ。

何か楽な方法無いかなぁと思っていたらcloneNodeってのがあるわけですよ。
これ使えばいいじゃん! と思ったのですが、こいつがなかなか上手くいかないと。
使い方がワカランのですよw

ふつーにコピー元のノードをcloneNodeでコピーするという形ではないんですよね。

まずコピー元のノードを取得します

$copy = $xpath->query("/root/data");
んでクローンノードを作る

$clone = $copy->cloneNode(true);←確か中身もコピーするんだったらtrueにするんだったきがす。

ここからが分からなかった部分。

新しいコピーノードを作る(コピー先の準備)
コピー先にクローンを作ったノードをぶっ込む準備をしてやるわけです。それがimportNode 他からモッテキタノードをインポートするって感じじゃねーかと私は理解したw

$copytmp = $doc->importNode($clone,true);

んで、コピー先のいれたいノードにappendChildしてやりゃ良い訳ですよ。
$コピー先ノード->appendChild($copytmp);

これでXMLのノードをコピーするのがラクラクに。良かった良かった。
まー。こんな情報役に立つかしらんが一応載せておこうw
posted by Fuchs at 22:09 | Comment(0) | TrackBack(0) | プログラミング
2008年03月31日

大分慣れて

PHPでのプログラミングも大分慣れてきました。
これまでずっとテキストエディタで打ち続けてましたが。
流石にそれは疲れてきたのでPHPエディタを使うようになりまして。
これが結構便利だったので助かってます。
ローカルにもPHPが動作出来る環境を整えてみましたが。

こちらはあまり上手く動かず。
やはりLinuxで動かしている方がいいやと改めて思いました。
Windowsは信用ならない!

そんなこんなで進捗はじりじりと。
posted by Fuchs at 23:15 | Comment(0) | TrackBack(0) | プログラミング