ネトゲアンテナが新システムに移行しました

自分用のツールとして開発してからはや3年。
ローカルでの処理が前提だったため、HTML書き出しをFTPでアップするというトンデモシステムのまま2年近く続いていました。
しかし、いいかげんどうにかしなければということで、結構前から弄ってはいたのですが、
何かと忙しく、路頭に迷いそうにもなりながらも改修を続けていました。
テストを何度か行い、大きな問題はなさそうなので、いつ切り替えようかと思っていましたが、
まとまった時間ができたので更新することにしました。

完全以降までは時間がかかりますが、
これからもネトゲアンテナをごひいきにしていただきますようお願いいたしますm(_ _)m

なぜだかいつもフルスクラッチ

このサイトは最近WordPressに移行したので、いろいろと楽(だが面倒)なのですが、
ここ以外の趣味ページやお仕事ページはなぜか一から書き起こしてます。
テンプレートが使えないような独自のものがほとんどだからなのですが、
この仕事量を普通に金額にしたら相当な額ですね。
フルスクラッチとはいえ、自分用のテンプレートがあるのですが、
一から作った完全オリジナル。
いつか限界が来ないことを祈りつつ(それなりに柔軟に作ってはいますが)
今日も980円のUSBキーボードをこれでもかと叩きまくる。

Flash MXにはマイターリミットが無い

Flashに図形を描く機能を持たせたツールを作ってますが、
PostScriptにはあるはずの機能が無いことに気がつきました。
そう、線をつなげた場合の角のパラメータ、マイターリミット。
検索してみたらAdobeのサイトに行き着いたのでlistStyleの項目を読んでいくと、
このパラメータを指定できるのはFlash8からということで、少々困ったことに。

う~ん、角は尖って欲しいんだけどなぁ・・・

ActionScript2には円を描く関数が無い?

今頃にFlash MXを引っ張り出してActionScriptの勉強してます。
図形で円を動的に描こうと思って調べているとdrawCircleなる関数があるという。
しかしよくよく調べていくと、この関数が使えるのはActionScript3からだとか。
わざわざ数式を用意するのと、インスタンスを使うのではどちらが軽いんだろう。
Flash9は高いしなぁ~

お助けツールに罫線文字登場

文字で絵を表示する文化がアスキーアート、
罫線で文字を表示するのは・・・罫線文字?
ということで、罫線文字に変換するサービスを公開しました。
変換できる文字は英数字ぐらいですが、結構使えるかもしれません。
penlaboと小文字で書くとこうなります。

    ┏━┓  ┏┓    ┏┓
┏━┫━┣━┫┣━┓┃┗┳━┓
┃┃┃━┫┃┃┃┃┗┫┃┃┃┃
┃┏┻━┻┻┻┻━━┻━┻━┛
┗┛

PENLABOと大文字で書くとこうなります。

┏━┳━┳━┳┳┓┏━┳━┓┏━━┓
┃┃┃━┫  ┃┃┃┃┃┃━┗┫┏┓┃
┃┏┫━┫┃  ┃┗┫  ┃━━┃┗┛┃
┗┛┗━┻┻━┻━┻┻┻━━┻━━┛

Flashでカーソルの座標を得る

Flashを始めました。
JavaScriptで処理するにも、いろいろと限界もありますし、
ActionScriptを利用すれば非常に簡単に実行できることもあったりします。
クロスブラウザを気にしなくていいのが最大の利点でしょうか。

さて、基本となるカーソルの座標取得方法です。

_root.onMouseMove = function(){
  trace( _root._xmouse + '/' + _root._ymouse );
}

window.onunloadでハマる

ブラウザの履歴操作をイベントとして捕捉しようと調べていましたが、
ブラウザによってwindow.onunloadの挙動が微妙に違うようです。

window.onunload対応表(動作確認:Windows Vista)
ブラウザ 戻る 更新 進む 閉じる(タブ) 閉じる(ウィンドウ)
Internet Explorer 7.0
Firefox 2.0
(lolifox0.3.6)
Firefox 3.0
Opera 9.51 × ×
(ブラウザの進む機能は無効)
× ×
Google Chrome ベータ

細かい仕様は確認していませんが、Operaはスクリプターにとってはあまり歓迎されない実装をしているようです。

(※この比較表は、ブラウザの履歴機能と、HTML内のち通常リンクで検証しており、historyオブジェクトによるページ推移は考慮されていません。)

進数の変換

16進数を10進数に、
16進数を8進数に、
10進数を16進数に、
10進数を8進数に、
8進数を10進数に、
8進数を16進数に、
他にもいろいろありますが、コピペを使い続けてきたためか、いざ自前で式を書こうとすると全く書けません。

検索の仕方が悪いのかの、関数があるのを見落としているだけなのか、なかなか見つかりません。
PHPにはbase_convert()がありますが、使い勝手がよろしくない。

my $str = '本日は晴天なり';
my $buf = q{};
$buf .= sprintf( '\%o', $_ ) foreach unpack 'C*', $str;

う~ん、美しい。

ネトゲアンテナ改修中

ネトゲアンテナは、ネットゲーム(オンラインゲーム)の情報サイトです。
今までは、ローカルで解析したデータを下にHTMLファイルを作成。
そのファイルをFTPでアップしてj更新するという古臭いやり方でした。

もともとが自分用のツールだったので、単独コンテンツにしても、
スクリプトはベースを変えずにその延長で使い続けていましたが、
さすがに限界も見えてきたため完全に動的に処理できるように改修してます。

リンクとかトラックバックとか死んでる機能も多いので、どうにかしないと。

いまどきはスクレイピングって言うんですよね。
ネトゲアンテナ改めネトゲスクレイピング?舌を噛みそう

PerlでPOSTメソッドの送信を行う

PerlでPOSTする必要があったので調べてみた。
HTTP::Request::CommonでPOSTするデータを用意して、LWP::UserAgentに委ねるだけ。
この連携はいつ使っても感動しますね。

use strict;
use LWP::UserAgent;
use HTTP::Request::Common;

# POST準備
my $url = 'http://exsample.com/receive.cgi';
my %postdata = ( 'id' => 'id', 'pass' => 'pass' );
my $request = POST( $url, \%postdata );

# 送信
my $ua = LWP::UserAgent -> new;
my $res = $ua -> request( $request ) -> as_string;