Fit Boxing やってみたさで Nintendo Switch 買いました

6月ごろに Fit Boxing なるソフトを知ってから一ヶ月あまり、やってみたい欲求が持続したので購入しました。 7月末から実際にやってみて今日まで11日継続しております。

今の所感じたこととしては

  • お手軽
  • かなりの汗をかく
  • ダッキングやスウェーがかなりハード
  • 現時点で体重は減らない

という感じです。

Fit Boxing というより Nintendo Switch というハードに関しての感想ですが、 コントローラのボタンを押すだけで開始できるのでかなりお手軽です。

かなり汗をかきます。いい運動している感はあります。

ダッキングやスウェーがかなりハードで太ももと腹筋に効いてる感じがします。 なぜ腹筋にきてるのか、多分フォームが悪いのかもしれません。

そしてダイエットを目的として続けていますがまだ体重は減りません。もう少し長い目で見る必要があるようです。 楽しいのでこのまましばらくは続きそうです。

ガチンコファイトクラブの皆さん、もとい、リアル(プロ|アマ)ボクサーの人達ってかなりすごいんだなぁと。

感嘆符多めの暑苦しい謝罪

依頼されている Laravel 案件のタスクがここ一ヶ月遅滞しております。

申し訳ない!Kさん! (一応依頼主Kさんとは連絡を取り合っており、どうにか理解をいただいております。ありがたや)

今夜ようやく時間を確保できたので早速現状を確認、以前に比べて画面がかなり見やすくなっていて驚いたと同時にさすが、と感銘を受けた次第であります。

お疲れ様であります!ますます申し訳ない! あっしはこれから頑張ります!

今日は1日だらけていた。家事も仕事もしていない。 夜になって気晴らしに妻としょぼいドライブに出た。家で淹れたコーヒーをもって。 港町の夜釣りスポットに車を止めて道途中で買ったチーズバーガーを遅めの夕飯とした。

しばらくして一匹の猫がすぐそばまで来ていてこちらを見つめていることに気づいた。 枯れた声で鳴いて食い物を要求していた。 手元のチーズバーガーのパティとバンズをちぎってやった。 しばらくしたら落ち着いた様子になって佇んで、でも相変わらずこちらを見ていた。 写真でも撮ってやろうかと思ったけど気が変わって撫でてみることにした。 思った通り潮風と排気ガスでベトベトしていたが構わず撫でていると、もっと撫でろと言わんばかりに尻尾を立ててすり寄って来た。 換毛機というのか毛が生え変わる時期らしくすごい勢いで毛が抜けていくのでこちらもとことん抜いてやった。

気が晴れたところで車に戻ったら今度はまた別の猫が現れた。こいつは最初のやつ以上にもふもふしていた。 車の下に潜られて少し面倒だった。

今度は行くときは水と食料持ってってやろう。

両親をスシローに連れてった。去年買った安い軽自動車に乗っけて、妻と一緒に。帰り道途中家に寄ってグアテマラを淹れてやった。親父は要らんというから俺が飲んだけど、やっぱり風味豊かで美味かった。

妻よありがとう。

Twitter アカウントを削除しました。 ヘイトや差別的なツイートに対する Twitter の不十分で緩慢な対応に辟易としたからです。

前回の更新が5年半も前であることにおどろいた。光陰矢の如し。

あるぺちぱーの最期

昨日、某PHP拡張の作者に、5.5対応してくれってんでパッチ送ったんですわ。ええ、恥ずかしながら人生初パッチですわ。
それがね、一時間もしないうちに「その変更は既に行われていて、すぐに公式にリリースする」って、ご丁寧にgithubのURLまで添えて返信返ってきたんですわ。
顔真っ赤にしながら、change log

 
憤死した情弱の手記はここで途切れていた。

 
 
 
 

iOS プログラミングメモ; HTTP を扱う

概要

HTTP リクエストを発行しレスポンスを受信するまでのプログラムの流れはだいたい次の通り。

  1. リクエストヘッダ(NSURLRequest)を作る
  2. NSURLConnection のクラスメソッドを用いリクエストを発行する
  3. レスポンスヘッダ(NSURLResponse)とレスポンスボディを取得する

Request オブジェクトを作る

NSMutableURLRequest を用いる。
NSMutableURLRequest は親クラスである NSURLRequest に比べリクエストボディ(POSTデータ)や HTTP ヘッダの設定が容易に行える。

NSData *query = [[NSString stringWithFormat:@"foo=bar&baz=%@", @"foobar"]
                       dataUsingEncoding: NSUTF8StringEncoding];
NSMutableURLRequest *request = [NSMutableURLRequest
                      requestWithURL:[NSURL URLWithString:@"http://localhost/test/"]
                      cachePolicy:NSURLRequestUseProtocolCachePolicy
                      timeoutInterval:60.0];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/x-www-form-urlencoded" 
                      forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d", [query length]] 
                      forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:query];

同期方式

NSURLConnection.sendSynchronousRequest:returningResponse:error: を用いる。
同期方式は sendSynchronousRequest を呼び出したスレッドにおいて、リクエスト・レスポンス送受信が逐次処理される。 仮に UI スレッドでこのメソッドを呼び出すと、呼び出し元に制御を返すまでブロックされ、画面はフリーズする。

NSHTTPURLResponse *httpResponse;

/* HTTP リクエスト送信 */
NSData *contents = [NSURLConnection sendSynchronousRequest:request 
                      returningResponse:&httpResponse error:nil];
NSString *contentsString = [[NSString alloc] initWithData:contents encoding:NSUTF8StringEncoding];
NSLog(@"contents:\n%@", contentsString);

/* HTTP レスポンスヘッダ取得 */
NSDictionary *headers = httpResponse.allHeaderFields;
for (id key in headers) {
    NSLog(@"%@: %@", key, [headers objectForKey:key]);
}

非同期方式

NSURLConnectionDelegate プロトコルを実装する。 NSURLConnection.initWithRequest で接続されるが、同期方式と違い別スレッドでリクエスト・レスポンス送受信が処理されるためブロックされない。

@interface HTTPDownloadDelegate : NSObject<NSURLConnectionDelegate> {
    NSMutableData *contents;
}

@end

@implementation HTTPDownloadDelegate

/* レスポンスヘッダを受け取る */
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    // (NSHTTPURLResponse *)にキャストする
    NSHTTPURLResponse *httpResopnse = (NSHTTPURLResponse *)response;
    // レスポンスヘッダを列挙
    NSDictionary *headers = httpResopnse.allHeaderFields;
    for (id key in headers) {
        NSLog(@"%@: %@", key, [headers objectForKey:key]);
    }
}

/* データを受け取る度に呼び出される */
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [contents appendData:data];
}

/* データを全て受け取ると呼び出される */
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSString *csvContents = [[NSString alloc] initWithData:contents
                      encoding:NSShiftJISStringEncoding];
    NSLog(@"%@", csvContents);
}

@end

int main(int argc, char *argv[]) {
    /* リクエストを作る */
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://localhost/"]];

    /* 上で定義した NSURLConnectionDelegate のインスタンスを作る */
    HTTPDownloadDelegate *delegate = [[HTTPDownloadDelegate alloc] init];

    /* リクエストを送信する。 
     * この main スレッドから分岐し別のスレッドでリクエスト・レスポンスの送受信が行われる。
     * そのためアプリはここでブロックされない。 */
    NSURLConnection *connection = [[NSURLConnection alloc]
                      initWithRequest:request delegate:delegate];
    if (!connection) NSLog(@"failed to create connection");

    [[NSRunLoop currentRunLoop] run];
}

参考