もどる TOP
--category "プログラミング等"

[PHP] さまよえるWebクローラ

 ネットするのもめんどくさくなった。それでクローラを作ろうと一瞬思った。気が付くとよく分からないものを作っていた。

 ページ内のリンクを集めてシャッフルし、なるべく現在のページとドメインが違うリンクを、既定の回数までランダムに踏み続けるPHPができた。クローラを名乗っているが何の意義も目的もない。ただ流して遊ぶだけである。

 使ってみればわかるが、どこに放ってもツイッターやグーグルに行きついてしまい、代わり映えがしなく、つまらないので、10回くらい遊んで地面に叩きつけてしまった。

iPhoneだけでWebサイトを作ってみた話

 ある経緯で親戚の店のWebサイトを作りました。所要時間はタダ働きで丸2日です。

 Webサイトといっても、本当にド静的な1ページに、挨拶とか店舗情報とか品書きを詰め込んだだけのものです。目的は、店を検索する系のサイトにちらばってる情報を補完することだったし、料理の写真とかはネットに上げてくださってるお客さんがいるし。作り終わってみるとマジで計3ファイル (index.html + 外部CSSファイル + トップ画像の写真) でした。シンプルですね。

 当初、ゴロゴロしながらiPhoneで必要事項をメモっていたのですが、そのまま勢いでHTMLを書き始めました。そしてふと、これってスマホだけでサイト作成して公開まで行けるのでは?と思い、試すことにしました。

[CSS] CSSだけで作れる見出しのデザイン置き場 (現在27個)

 CSSだけで実装できる見出しタグの装飾を作ってみました。

 全て黒背景向けです。背景を塗りつぶしている箇所があるため、背景画像があると、表示が不自然になるものがあります。文字サイズは固定してあるので、適宜変更して使用します。表示の確認は、Chrome・Firefox・Edgeにて、1行のテキストと複数行のテキストで行いました。

 [追記: 2017-07-29] 全体的に修正

 [追記: 2017-07-08] 全体的に調整、13個追加

[C] 開始アドレスと終了アドレスを指定してバイナリを切り出す

 全国的にあたたかい電波でこんにちは ( ^ω^ ) キリウ君とタンポポは相似だね

 新しいパソコンを買ってソフトを入れなおしてたら、ホットラインマイアミ熱が再燃しました。2が難しすぎて、前からいろいろ書こうと思ってたページをずっと諦めてたんだけど、全文書き起こすミッションをクリアしたからもう大丈夫!! やっぱりすごく好きなゲームです。

 すごく好きなのでメモリ見たりバイナリ読んだりに足をつっこみました。でもまだよくわかんないので、とりあえず1の素材が入ってそうなファイルをひらいて、頭としっぽがバッチリ決まってると噂のPNGデータを探してみました。

PNG ファイルフォーマット

 そしたらちょうど1個だけ暗号化とかなく普通の形式で入っててラッキー! 該当範囲をコピペ保存で画像は見れたけどでも範囲で選択するの長すぎて大変だたから勢いでCもデビュー (∩^ω^∩) うああ

 あ ここではマイアミだけどじっさいは開始アドレスと終了アドレスを指定してバイナリを切り出すだけだからなんでも使えるはずだよ (’ω` ) 知らんけど

C
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
	char *endptr;
	long startaddr, endaddr, size;
	FILE *fp;
	unsigned char buf[100000];

	if (argc != 5) {
		printf("パラメータの数がおかしいです。");
		exit(1);
	}

	startaddr = strtol(argv[3], &endptr, 16);
	endaddr = strtol(argv[4], &endptr, 16);
	size = endaddr - startaddr + 1;
	if (size <= 0) {
		printf("取得対象アドレスの指定がおかしいです。");
		exit(1);
	}

	if((fp = fopen(argv[1], "rb")) == NULL) {
		printf("入力ファイルが見つかりませんでした。");
		exit(1);
	}
	fseek(fp, startaddr, SEEK_SET);
	fread(buf, 1, size, fp);
	fclose(fp);

	fp = fopen(argv[2], "wb");
	fwrite(buf, 1, size, fp);
	fclose(fp);

	return 0;
}

 コンピャイルして引数に「バイナリファイルのパス」「出力ファイル名」「開始アドレス (16進数)」「終了アドレス (16進数)」をわたすと、実行ファイルと同じフォルダに出力ファイルがおよよ (∩^ω^∩)

コマンドライン
gcc binext.c -o binext.exe
binext "C:\Program Files (x86)\Hotline Miami\HotlineMiami_GL.wad" "output.png" 1481DBCD 14828990

 ( ^ω^ ) いやぜったい普通にツールとかあってできるんじゃねーのこれ。

 あとWAVファイルっぽい並びがいっぱいあったからヘッダ情報からファイルサイズを計算して切り出すくらいなら自力でいけそう!! あれ何しようとしてたんだっけ?

サイドバーを表示する
ブログ
Whiteday
Whiteday
尋ね人
尋ね人
かつてレレノイドは彼の瞳の中に希望を見ていたが、そのことをあっちこっちに言いふらしまくると、キリウ君は怒ってそれを燃えるゴミの日に出してしまった。