自分自身のための ものづくり / 自分自身のためのものづくりメモ

* レトロゲーム的グラフィック

…といっても、ファミコンどころではなく、インベーダーより前の話。


現状のスペック
 横56ドット、24ライン
 各ライン毎に1バイト割いて、前景色・背景色を8階調で指定できる
(手持ちのPIC16F648Aだと、VRAM形式ではこれが限界かな…?)

 ちょっと灰色を表示できるだけで、白黒のみに比べて格段に表現力が上がると感じた。
 灰色の直線は「床」とか「壁」に見立てることができる。各ライン毎に色を指定できるので、パレットアニメーションでスペースハリアー風の地面表現で疑似3Dものもいけるかも。
…とか、色々妄想できる。

#PIC #電子工作 #途中経過

* てきとーな、DDSっぽい波形発生器

 PICとR-2Rラダー回路でDDSっぽいのを組んでみた。

(ReadMore...)

* 馬鹿なspam投稿ツール?

 Apacheのログに、BBSへのPOSTを行ったもののエラーか何かで反映されていない、spammerからのアクセスが時折見られた。
 ApacheのログにはPOST内容までは記録されないので、BBSのプログラムを少しいじってPOST内容を記録するようにして、その手のアクセスを待ち構えることにした。

 で、やっとそんなアクセスが1件あったのだが…
rep_num 0
pass    bsbl7822
do      post
name    Helga
data
mail    vovo@hotmail.com
subj    carpet-cleaning

 本文空っぽ。URLとかを書き込もうとした形跡もなし。
 何をやりたいのだろう?と思って、とりあえず"vovo@hotmail.com"をぐぐってみると…
 どうやら、本文のtextareaのname属性が"body"じゃないと、本文と判断しないらしい。
…馬鹿?

 ま、spammerが能無しなのはありがたいことだ。
 とりあえずDSBLに登録されているOpenProxy経由のを弾いても稀にすり抜けて投稿されるのがまだあるので、そんな馬鹿な作者のツールばかりではないようだが。

#掲示板spam対策 #Web

* いわゆる公開プロキシからのアクセスを弾く

掲示板へのspamが激しくなりつつあるので対策。
(ReadMore...)

* 掲示板spamキタ━━━━(゜∀゜)━━━━ッ!!

 どマイナーな"picoBBS"を使っているおかげで、設置した2003年8月以来まったくspam投稿がなかったわたしゃのWebサイトの掲示板に、ついにspamが書き込まれた。

 むかつくよりも、むしろキタ━━━━(゜∀゜)━━━━ッ!!と大喜び。(笑)

 書き込まれたのは、あちこちで蔓延している英語でのURL羅列系。おそらく披リンク数を増やして検索ランキングを上げる目的だろう。
 その節操の無さから、それっぽいformに片っ端から書き込みを行っているのだろうと推測していたが、これでそうだと確信できた。

 書き込みを行ったホストを調べてみると…
$ echo 84.235.100.2 | ./what_country.pl
SA
$ echo 217.75.194.118 | ./what_country.pl
BA

SA?BA???

http://www.nsrc.org/codes/country-codes.html
によると、
SA - Saudi Arabia
BA - Bosnia Herzegovina

これはこれはわざわざ遠いところから…

参考資料:
不正アクセスの発信地の国別統計をとろう!
http://www.nminoru.jp/~nminoru/memo/ip-address/what_country_from.html

#Web #掲示板spam対策

* はてなのキーワードへのリンクを殺す

はてなダイアリーのキーワードへのリンクを消すProxomitorn用フィルタ。
[Patterns]
Name = "Hatena Keyword Killer"
Active = TRUE
URL = "d.hatena.ne.jp"
Bounds = "<a*/a>"
Limit = 256
Match = "<a class="keyword" href="http://d.hatena.ne.jp/keyword/*">(*)\0</a>"
Replace = "\0"

「このはてなダイアリーの存在意義のひとつと言っても過言ではない素晴らしい機能。」
とあるが…正直、邪魔。

#Proxomitorn #Web

* RandomNote 作成日を表示+年月日のみで時分秒は非表示

def print_leaf(fname, view=nil, anchor=1)
内を改造
      s = "%s\n\n%s\n%s" % [mes.chomp, Time.at(fname.gsub(/\D/,'').to_i).strfti\
me('create : %Y/%m/%d (%a)'), File.mtime(fname).strftime('update : %Y/%m/%d (%a\
)')] # modified by bakuchikujuu

#RandomNote #Web

* target="_blank"があらかじめわかるように

 target="_blank"がついたリンクの前に&rArr;を挿入するproxomitorn用フィルタ。
[Patterns]
Name = "_blank identifier"
Active = TRUE
Bounds = "<a*>"
Limit = 256
Match = "(<a*target=("| )_blank("| )*>)\1"
Replace = "&rArr;\1"

#proxomitorn #Web

* RP2C05-03, RP2C05-04

VS Top GunのPPUはファミコンのRGB化には使えない…?orz

MAMEのvsnes.c http://www.mameworld.net/maws/mamesrc/src/machine/vsnes.c より
/* VS Top Gun: ROMs bankings at $8000-$ffff, plus some protection */
static READ_HANDLER( topgun_security_r )
まだ眺めただけなのでよくわからないけど、なんか特別扱いしてるし…。

Nintendo Vs. Series - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Nintendo_Vs._Series
Several of the later Vs. games employed further measures of protection by using special PPUs which swapped pairs of I/O registers and/or returned special data from normally unimplemented regions of memory - attempts to run these games in other Vs. systems would result in the game failing to even start.

 他のPPUじゃ動かないのに加えて、他のROMを持ってきても動かないのかな…。現に、RP2C03BでRGB化したファミコンのと差し替えて動かないし。

#RGB #ファミコン

* RGB出力PPU

 ファミコンをRGB出力するのに必要なPPUに関して。

RP2C03BTENNIS
DUCK HUNT
RC2C05-03GUMSHOE
RC2C05-04TOP GUN
RC2C05-99編集ファミコン(ファミコンタイトラー)
不明ファミコンテレビC1

 RC2C05-03, RC2C05-04は使えない?
 手に入れたのをRP2C03BでRGB出力化したAVファミコンのと差し替えたら、ゲームが起動しなかった。どの辺に非互換部分があるんだろうか?


 C1不可のソフトがあるのは、C1のPPUが古い仕様で新しいので直ったバグが残っているためらしい。通常のファミコンでも初期のものは同様の症状が発生する可能性があるとのこと。

 C1はRP2C03Bを積んでいるのではないかと推測される。ということは、編集ファミコンに搭載されているRC2C05では改善されていて、C1不可のゲームでも不具合がでないのかも。


参考文献
RGBイヒ】ゲーム機改造 4機種目【その他小ネタ】
http://game9.2ch.net/test/read.cgi/gameurawaza/1117339941/600
一流メーカーの過去の駄作。
http://piza.2ch.net/jisaku/kako/986/986571947.htmlの170

http://gavin.panicus.org/doc/2C02%20technical%20reference.txt

#電子工作 #RGB

* elm-chan.orgを閲覧できなくなった

ここ数日、
えるむ - Electronic Lives Mfg.
http://elm-chan.org/index_j.html
を閲覧できなかった。
 困った。色々と大いに参考になるページなのに。

 アクセスすると、www.pir.orgに飛ばされる。どうやら、ロボット対策とかの絡みらしい。UA名やIPアドレスで弾いているそうだ。心当たりないんだけどなぁ…。
 幸い、使っているケーブルテレビがHTTPプロキシサーバを用意していて、それ経由だと普通に閲覧できた。elm-chanを読ませていただくときだけは、それを使うことにしよう。

 ブラウザをsleipnir(IE)じゃなくてFirefoxやOperaにしてみたり、鯖をおいてあるYahoo!BB回線からアクセスしてもだめだった。鯖をおいてあるホストは80番ポートを開けてあるからいわゆる公開proxyとして誤認される可能性があるけど、自宅のケーブルテレビ回線からでもダメなのはどういうわけなんだろ?

Web 電子工作

* ヤフオク用Proxomitronフィルタ

ウォッチリスト(等)の、邪魔なだけな「商品ID」やほとんど役に立たない「最高額入札者」の項を消去。
(仕様変更のため、もはや正常に機能せず)
(ReadMore...)

* ヤフオクのウォッチリスト用フィルタ

 ウォッチリストから商品IDが消えたと思ったら、まったくもって邪魔な「ポイント」とやらが出現。
 うりうりとProxomitron用フィルタを作成した。改変すると言うよりは、必要な情報を抽出して再構築するフィルタ。

商品名のみ
http://openwatchlist2.auctions.yahoo.co.jp/jp/show/mystatus?select=watchlist&s1=end&watchclosed=0&myaucpic=false
商品名と画像
http://openwatchlist2.auctions.yahoo.co.jp/jp/show/mystatus?select=watchlist&s1=end&watchclosed=0&myaucpic=true
等に対して機能。
 明示的に"myaucpic=true"とか書いてないと、どちらかを判別できないので適用されない。
(ReadMore...)

* mixi外からmixiへのアクセスを防ぐ

Proxomitorn用フィルタ
[Patterns]
Name = "Block mixi form not mixi (IP)"
Active = TRUE
URL = "(^mixi.jp)"
Limit = 512
Match = "59.106.41."

Name = "Block mixi form not mixi"
Active = TRUE
URL = "(^mixi.jp)"
Limit = 512
Match = "mixi.jp"
Replace = "mixotron.jp"
mixi.jp以外のサイトではmixi.jpという文字列を片っ端から書き換えてしまうという力業。
※単純に文字列の置換を行うだけなので、Javascriptで難読化されたりすると通用しない。
#悪用のヒントを出すのはどうかとも思うが、どーせ悪用するような人はそれぐらい思いつくだろう。
(ReadMore...)

* YAH!X試験中

 Yahoo!オークションWebサービスにより提供されるXMLデータを使うYahoo!AuctionHelperを作成中。

↓とりあえずの実験バージョン
http://baku.homeunix.net/program/yahX/yahX_test01.rb?category=2084045752&pic=true
categoryを書き換えれば他のカテゴリを見れる。
pic=trueで画像表示。それ以外で非表示。

 YAH!の特徴である各種NG機能は、とりあえず「NGキャラクタ」のみ実装。
 「次の25件」をいちいちクリックしなくてもいいので、現状でもとりあえずそこそこ役立つと思う。

 YAH! Ver.3としようかと思っていたけど、Yahoo!オークションWebサービスでは今のところキーワード検索ができないっぽいなどの理由で、Ver.Xとして別物としての扱い。

#Ruby #REXML #ヤフオク #YAH! #途中経過