はてなって、ブログパーツ使えるじゃん!
ぷよぴたっ! http://sega-pc.com/puyopuyofever/puyopita/
はてなってさー、ブログパーツ使えないと思っていたら、なんと今回の更新で「ぷよぴたっ!」に対応したみたいっ!
つーか、色々と使えるのが増えていってるんですね!
いやー、意外。
おっ、PSUぴたっ!も使えるんだねー。 ユーザーからの要望ベースで使用可能にして行ってるみたいだな〜。
ってことは、はてなって意外とセガファンが多いのかなー。(それともセガ関係者が多いのかなー?)
ということでラフィーナさん記念(?)アップ〜
3Dモデリングツール Metasequoia(メタセコイア)のプラグインは以下の場所で公開しています。
Cさん C++さん
#include <windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // 起動するファイルを指定する LPCTSTR exeFile[] = { TEXT("example1.exe"), TEXT("example2.exe"), NULL }; // 終端文字ね♪ // Note: MessageBox(NULL,TEXT("アプリを起動して終了するまで待つよ"),TEXT("TEST"),MB_TOPMOST|MB_ICONWARNING|MB_OK); PROCESS_INFORMATION Procinfo; ZeroMemory(&Procinfo, sizeof(Procinfo)); STARTUPINFO stinfo; ZeroMemory(&stinfo, sizeof(stinfo)); // 起動プロセスの条件をSTARTUPINFOメンバに設定 stinfo.cb = sizeof(stinfo); stinfo.dwFlags = STARTF_FORCEOFFFEEDBACK; // 0 or STARTF_FORCEOFFFEEDBACK for(int i = 0; exeFile[i] != NULL; i++) { if(CreateProcess(NULL, (LPSTR)exeFile[i], NULL, NULL, FALSE, 0, NULL, NULL, &stinfo, &Procinfo) == 0) return( false ); // 起動できなかったら終了・・・? CloseHandle(Procinfo.hThread); WaitForSingleObject(Procinfo.hProcess, INFINITE); // 終了するまで待つよ CloseHandle(Procinfo.hProcess); // Note: MessageBox(NULL, TEXT("指定ファイルが終了したよ!"), exeFile[i], MB_TOPMOST | MB_ICONWARNING | MB_OK); } return( true ); }
VC++2005とかVC++2008とかでビルドすると(W文字への変更が必要)、
CreateProcess()で強制終了するんだけど…。
なぜに〜?
c (DOS)
#include <stdio.h> #include <stdlib.h> #include <dos.h> typedef int BOOL; typedef unsigned char BYTE; typedef unsigned short WORD; typedef unsigned long DWORD; #define KETASUU (4) #define _SLOAD (13) #define _SPLAY (23) #define _GLOAD (33) #define _GDRAW (43) #define _GX (53) #define _GY (63) #define _GZ (73) #define _BR (81) #define _WAIT (92) #define _GO (102) #define _SIZE (112) #define _COLOR (125) #define _TX (132) #define _TY (142) #define _FLAG (154) #define DUMMY ( 0) #define BUFFER_SIZE (0xFFFF) // ・・・酷いなw FILE *read_fp, *write_fp; char readFile[] = "txt.txt"; char writeFile[20]; double org_atol(BYTE *buf) { double ret = (double)0; for(; *buf != '\0'; buf++) ret = ret * (double)10 + (double)*buf - (double)'0'; return( ret ); } BYTE *StrA2a(BYTE *buf) { for(; ;) { if((*buf < 'a' || 'z' < *buf) && (*buf < 'A' || 'Z' < *buf)) break; if('A' <= *buf && *buf <= 'Z') *buf += 0x20; buf++; } return( buf ); } BYTE *Get09AZ(BYTE *b, BYTE *ret) { char c1, c2; for(; ;) { if(*b != ' ') break; b++; } StrA2a(b); c1 = '0'; c2 = '9'; if(*b < c1 || c2 < *b) { c1 = 'a'; c2 = 'z'; } for(; ;) { if(*b < c1 || c2 < *b) break; *(ret++) = *(b++); } *ret = '\0'; return( b ); } int CheckStrLen(char *str) { int i; for(i = 0; str[i] != '\0'; i++) ; return( i ); //終端文字を含まない仕様(全角文字にも未対応) } bool CheckStr2(BYTE *st1, char *st2) { int i, len; len = CheckStrLen(st2); for(i = 0; i < len; i++) if(st1[i] != st2[i]) { if(st1[i] == st2[i] + 0x20 && 'a' <= st1[i] && st1[i] <= 'z' && 'A' <= st2[i] && st2[i] <= 'Z'); else if(st1[i] + 0x20 == st2[i] && 'A' <= st1[i] && st1[i] <= 'Z' && 'a' <= st2[i] && st2[i] <= 'z'); else return( false ); } return( true ); } BYTE *GetStr2(BYTE *org, BYTE *toc, int word) { int i; for(i = 0; i < word; i++) toc[i] = org[i]; toc[word] = '\0'; return( toc ); } char *org_itoa(int kazu, char *ret_moji, int retu, char c) { int i; for(i = 0; i < retu; i++) ret_moji[i] = c; for(i = retu - 1; i > 0; i--) { ret_moji[i] = '0' + kazu % 10; if(kazu - 10 < 0) break; kazu /= 10; } return( ret_moji ); } char *nameCreate(long int no, char *name, int retu, char *c) { int i = 0; org_itoa(no, name, retu, '0'); name[retu] = '.'; for(; ;) { name[retu+i+1] = c[i]; i++; if(c[i-1] == '\0') break; } return( name ); } /* BYTE *Char2Byte(char *in, BYTE *out) { BYTE *ret = out; for(; ;) { *(out++) = (BYTE)*(in++); if(*(out - 1) == '\0') break; } return( ret ); } */ BYTE *wwmsg(BYTE *r, BYTE *w) { for(; ;) { if(*r == '\n') break; if(CheckStr2(r, "<br>")) { *(w++) = _BR; *(w++) = DUMMY; r += 4; } else { *(w++) = *(r + 1); //前後バイトを入れ替えて格納 *(w++) = *r; //(テキストが見えないように・・・あまり意味は無い) r += 2; } } return( w ); } BYTE *text_flag(BYTE *r, BYTE *w) { WORD u; DWORD ud; int i; BYTE mode = NULL; BYTE command[21]; r = Get09AZ(r, command); if(CheckStr2(command, "br")) mode = _BR; else if(CheckStr2(command, "go")) mode = _GO; else if(CheckStr2(command, "wait")) mode = _WAIT; else if(CheckStr2(command, "sload")) mode = _SLOAD; else if(CheckStr2(command, "splay")) mode = _SPLAY; else if(CheckStr2(command, "gload")) mode = _GLOAD; else if(CheckStr2(command, "gdraw")) mode = _GDRAW; else if(CheckStr2(command, "gx")) mode = _GX; else if(CheckStr2(command, "gy")) mode = _GY; else if(CheckStr2(command, "gz")) mode = _GZ; else if(CheckStr2(command, "size")) mode = _SIZE; else if(CheckStr2(command, "color")) mode = _COLOR; else if(CheckStr2(command, "tx")) mode = _TX; else if(CheckStr2(command, "ty")) mode = _TY; else if(CheckStr2(command, "flag")) mode = _FLAG; if(mode == NULL) return( NULL ); *(w++) = mode; *(w++) = DUMMY; //コード埋め込み作業(各種別コードはdefine(value.h)によって設定) if((mode % 10 == 2) || (mode % 10 == 3)) //WORD { r = Get09AZ(r, command); u = (WORD)org_atol(command); *(w++) = (u % 0x00FF); *(w++) = (u / 0x0100); } if((mode % 10 == 3) || (mode % 10 == 5)) //後半DWORD { r = Get09AZ(r, command); ud = (DWORD)org_atol(command); *(w++) = (BYTE)(ud % 0xFF); *(w++) = (BYTE)((ud / 0x00000100) % 0xFF); *(w++) = (BYTE)((ud / 0x00010000) % 0xFF); *(w++) = (BYTE)((ud / 0x01000000) % 0xFF); } if((mode % 10 == 4)) //flagタグ処理 for(i = 0; i < u + 1; i++) //uには選択肢数が残っているはず { r = Get09AZ(r, command); u = (WORD)org_atol(command); *(w++) = (u % 0x00FF); *(w++) = (u / 0x0100); //全角文字が出てくるまで飛ばす for(; ! ((0x81 <= *r && *r <= 0x9f) || (0xe0 <= *r && *r <= 0xfc)); r++); w = wwmsg(r, w); //読み込みポインタを次の行頭に持ってくる for(; *r != '\n'; r++); r++; } return( w ); } void main(void) { long int i; long int fileCount = 0; long int size; char ch; BYTE line[1001]; BYTE *r; BYTE read_buf[BUFFER_SIZE]; BYTE *w; BYTE write_buf[BUFFER_SIZE]; if(NULL == (read_fp = fopen(readFile, "rb"))) { printf(" Not find. : %s", readFile); getchar(); exit(1); } for(; ;) //全体 { //有効な(?)1ブロックをread_bufに格納する for(i = 0; i < BUFFER_SIZE; i++) { read_buf[i] = 0; write_buf[i] = 0; } r = read_buf; for(; ;) { //一行読み込む ch = fgetc(read_fp); //\rを終端文字として扱う(MSDOS系CR+LF環境のみ有効) for(i = 0; (i < 1000) && (feof(read_fp) == 0) && (ch != '\r'); i++) { line[i] = (BYTE)ch; ch = fgetc(read_fp); } //文字列の最後に\nを追加のはず。。。 ch = fgetc(read_fp); line[i] = ch; //暫定的だが行頭の**で終了とする if((line[0] == '*')) goto LOOP_EXIT; //暫定的だが行頭の::で区切りとする if((line[0] == ':')) { //終端コードのつもり。。。 *(r++) = ':'; *(r++) = ':'; *(r++) = ':'; break; } else for(i = 0; ; i++) { if(line[i] == '\n' || line[i] == '\r') //一応。。。 { *(r++) = '\n'; break; } else *(r++) = line[i]; } } //read_bufに格納したテキストを簡易コード化 r = read_buf; w = write_buf; for(; ;) //解析ループ { if((0x81 <= *r && *r <= 0x9f) || (0xe0 <= *r && *r <= 0xfc)) w = wwmsg(r, w); //全角文字列処理ルーティンへ else if(*r == '<') //タグ処理ルーティンへ { if(NULL == (w = text_flag(++r, w))) goto ErrInn; } else if(*r != '\n') //空行は飛ばす { ErrInn: //エラー処理 printf("Error %ld: %c(%d) in Block %ld", (long)(r - read_buf), (char)*r, (int)*r, fileCount); getchar(); exit(1); } //読み込みポインタを次の行頭に持ってくる for(; *r != '\n'; r++); r++; //終了判定 if(*r == ':') break; } //write_bufの有効サイズを決定 *(w++) = 'E'; *(w++) = 'N'; *(w++) = 'D'; for(size = 0; ; size++) if(write_buf[size] == 'E' && write_buf[size+1] == 'N' && write_buf[size+2] == 'D') break; // 出来上がったwrite_bufをファイルに書き出す if(NULL == (write_fp = fopen(nameCreate(fileCount, writeFile, 4, "tex"), "wb"))) { printf("Don't open : %s", writeFile); getchar(); exit(1); } fwrite(write_buf, size, 1, write_fp); fclose(write_fp); // fileCountを一要素増やし、またループへ fileCount++; } LOOP_EXIT: // 全体ループからの脱出 fclose(read_fp); printf("Complete!!"); getchar(); }
はてなTシャツ欲しい!
買うと言っておいて何だが、
はてなTシャツ欲しい! はてなTシャツ欲しい! はてなTシャツ欲しい! はてなTシャツ欲しい! はてなTシャツ欲しい! はてなTシャツ欲しい! はてなTシャツ欲しい! はてなTシャツ欲しい! はてなTシャツ欲しい! はてなTシャツ欲しい! はてなTシャツ欲しい! はてなTシャツ欲しい! はてなTシャツ欲しい! はてなTシャツ欲しい! はてなTシャツ欲しい!
ということで、「〜日記に「はてなTシャツ欲しい!」と書いて、はてなオリジナルTシャツ2007をもらおう!10名様に当たるプレゼントキャンペーン実施!〜」に参加。
えーと、あとは好きなはてなキーワードを3つ書けばいいのか・・・。
という感じかな。
理由としては、
- どうぞご利用ください。
- はてなキーワードの奥の深さに気づくキッカケになりましたw
- 死亡フラグ
- いろいろなフレーズが載ってて面白い。(ちょっと違うな〜、ってのもあるけど)
- 冷蔵庫2.0
- Webの広がりを感じましたw
あと、最近だと
もツボだけど、まあ、これはいいっしょw
はて☆すた(と、はてメッ) リリース記念にカキコ
う〜ん。オレは はてメッ を目にすることはあるのかな?
http://d.hatena.ne.jp/hatenastar/
まあそれは置いといて、
よおし、全然見出しと関係無いが「はてなTシャツ」買っちゃうぞ!
https://www.hatena.ne.jp/info/hatenatshirts
アンテナのロゴが結構良い感じだけど、ベーシックのひし形wも捨てがたし…。
まっ、ひし形かなあ。
そういや、去年(?)くらいに風力Tシャツを注文したと思うけど、アレどうなったんだっけかな・・・?
js
Event.observe(window, 'load', initLightbox, false);