トップ 最新 追記

ヨタの日々

2001|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|12|
2024|01|02|03|04|05|06|07|08|09|10|

2013-10-01 :-(

_ 午前

0630 起床

0830 下丸子 && 客先へ本日から着任 && といっても 2007 年あたりから常駐していたところである

_ 午後

1300 受け入れなど

_

1710 退勤

1830 書類処理など

2100 飯。きすけの牛たん

_ [メモリ][malloc][メモリプール][メモリ管理]malloc/free などが在るのにメモリ管理機能を自作する動機はなんなのか

つまりこういうことだってばよ?

Effective C++

(pp. 267-269)

50項「どういうときにnewとdeleteの定義を自分で書くとよいか理解しよう」

  • 使用上の注意を見つけるため
  • 動的なメモリ管理に関して統計データを集めるため
  • メモリの確保と解放のスピードを上げるため
  • デフォルトのメモリ管理が使う無駄なメモリを減らすため
  • デフォルトのメモリ確保で行われる中途半端なアライメントを補う
  • 関係あるオブジェクトをまとめ置きする
  • 特別な動作をさせる

あわせて読みたい?

アプリを高速化したいなら,できるだけ malloc/free を呼び出す頻度を減らすこと. そのためには1回の malloc で確保した大きな領域 (メモリプール) に多数のオブジェクトを詰め込む必要がある (これは省メモリにもなる) が, どのオブジェクトを同じ領域に入れるべきかはオブジェクトの寿命 (extent),サイズ, アラインメントなどを考慮して決める必要がある. 特に,寿命を知っているのはアプリケーションだけだ. 目的に合ったメモリプールならば,malloc/free をそのまま使用する場合に比べて数十倍以上速くなることもある.

4894714515


2013-10-02 :-(

_ 午前

0520 起床

0830 出勤 && 勉強など

_ 午後

1300 勉強など

_

1700 退勤

1800 自社 && 打ち合わせ

1900 飯

_ 仕事場歓送迎会

自社のメンバー

送別するひとは欠席なので歓迎のみ。

千の庭 川崎東口店

愚痴を聞くなど。愚痴があるということはそこには解決すべき課題があるということで

IMG_0001.jpg

IMG_0002.jpg

IMG_0003.jpg

IMG_0004.jpg

IMG_0005.jpg

_ [艦これ]艦これ

ようやく山城さんを建造。

千歳航 2 人目


2013-10-03 :-(

_ 午前

0520 起床

0830 出勤 && 勉強

_ 午後

1300 勉強

_

1700 退勤

1830 読書

2100 飯。鮭のムニエル


2013-10-04 :-(

_ 午前

0530 起床

0550 筋トレ

0830 出勤 && 自習

_ 午後

1300 自習

_

1700 退勤 && 移動

1800 自社 && 業績評価面談

1850 退勤

2100 飯。豚肉の生姜焼き

_ [Knuth][hash][クヌース][ハッシュ][namazu]Knuth 先生の hash

はるか昔に namazu のコードを読んでいたときに knuth 先生の hash というものを見かけた。( 私が読んだときは namazu 1.x だったと思う。1.x は Perl で実装されているが、namazu は 2.x で全面的に書きなおされており、2.x では C で実装されなおされている。1.x はこちらにある Index of /stable )

namazu

1.x のコード

namazu-1.3.0.11/src/mknmz.pl

# Knuth先生の ``hash'' (UNIX MAGAZINE 1998 5月号) 用の乱数表
# 0-65535までの数を使った要素数256の乱数表を 4つ使います。
sub init_seed () {
    (
     [
      3852, 26205, 51350, 2876, 47217, 47194, 55549, 43312, 
      63689, 40984, 62703, 10954, 13108, 60460, 41680, 32277, 
      51887, 28590, 17502, 57168, 37798, 27466, 13800, 12816, 
      53745, 8833, 55089, 15481, 18993, 15262, 8490, 22846, 
        :
# Dr. Knuth's  ``hash'' from (UNIX MAGAZINE May 1998)
sub hash ($) {
    my ($word) = @_;
    my ($i, $hash);

    $hash = 0;
    $word =~ tr/\xa1-\xfea-z0-9//cd; # 記号を捨てる
    for ($i = 0; $word ne ""; $i++) {
    $hash ^= $Seed[$i % 4][ord($word)];
        $word = substr($word, 1);
    # $word =~ s/^.//;  is slower
    }
    $hash & 65535;
}

2.x のコード

namazu-2.0.21/nmz/seed.c

/*
 *
 * Reference: Dr. Knuth's ``hash'' (from UNIX MAGAZINE May, 1998)
 *
 */

int nmz_seed[4][256] = 
{
    {
    3852, 26205, 51350, 2876, 47217, 47194, 55549, 43312, 
    63689, 40984, 62703, 10954, 13108, 60460, 41680, 32277, 
    51887, 28590, 17502, 57168, 37798, 27466, 13800, 12816, 
     :

namazu-2.0.21/nmz/search.c

/*
 * Calculate the hash value of the string str.
 */
static int 
hash(const char *str)
{
    int hash = 0, i, j;
    uchar *ustr = (uchar *)str;  /* for 8 bit chars handling */

    for (i = j = 0; *ustr; i++) {
        if (!issymbol(*ustr)) { /* except symbol */
            hash ^= nmz_seed[j & 0x3][*ustr];
            j++;
        }
        ustr++;
    }
    return (hash & 65535);
}

knuth 先生の hash

肝心の UNIX MAGAZINE 1998 年 5 月号 p.108 のコード。

#include <stdlib.h>

#define TBLSIZ 1024 /* hash bucket のサイズ。 2 の冪乗でなければならない */
#define NSEED  4    /* 乱数表の種類。2 の冪乗でなければならない */

unsigned int seed[NSEED][256];

void
init_seed()
{
    int i, j;
    srand(time(NULL));
    for ( i = 0; i < NSEED; ++i ) {
        for ( j = 0; j < 256; ++j ) {
            seed[i][j] = rand();
        }
    }
}

int
hash(unsigned char *key, int keylen)
{
    int i, j, hash;

    hash = 0;
    i = j = 0;
    while ( i < keylen ) {
        hash ^= seed[j++][key[i++]];
        j &= NSEED - 1;
    }
    return (hash & (TBLSIZ - 1));
}

このハッシュ関数は『The Art of Computer Programlning VoL3』の旧版には載っておらず、新版で新しく書き足したのだそうです。(p.107)

これかしら。

4756146147

_ [艦これ]艦これ

建造 榛名さん 2 人目

建造 山城さん 2 人目

2-1-1 マラソン。ようやく千代田さんをゲット。


2013-10-05 :-)

_ 午前

0930 起床 && 部屋掃除

1020 おひる。うどん

1100 アニメ消化

_ 午後

1300 アニメ消化

_

1700 アニメ消化 || 雨降ってるしひたすら引き篭もっていた

2100 飯。かれいの煮つけ

_ [艦これ]艦これ

霧島さんゲット

伊勢さん 3 人目

榛名さんを改造

ひゃっはぁーさんゲット

彩雲ゲット


2013-10-06 :-)

_ 午前

0930 起床

1000 おひる。蕎麦

1100 アニメ消化

_ 午後

1300 買い物

1600 散歩

IMG_2931

_

1700 読書

1900 ぐったり

2130 飯。牛丼

_ 買い物

イトーヨーカドー

仕事場の電子レンジ待機列が長いので電子レンジは諦めて保温を頑張ってみることにした。ランチジャーとやらは使ったことがないんだけど試しに使ってみる。売り場には汁物容器がついているものもあったが自分には汁物の需要がないのでこれにした。

B005FOF7AY

_ [艦これ]艦これ

建造 衣笠さんゲット


2013-10-07 :-(

_ 午前

0530 起床

0550 筋トレ

0830 出勤 && 教育

_ 午後

1200 弁当は米を炊いたらすぐに弁当箱に入れるらしい(取説より) || 昼でも温かい。ほう

1300 コードリーディング || 盛り上がってまいりました

_

1700 上司と相談など

1740 退勤

1900 和訳

2100 飯。鮭のムニエル

_ [艦これ]艦これ

建造 榛名さん 2 人目

2-1-1 千代田さん 2 人目

千歳さんを航改にした。


2013-10-08 :-(

_ 午前

0520 起床

0830 出勤 && 自習

_ 午後

1300 自習

_

1700 退勤

1800 和訳

1830 ぐったり

1930 飯

2000 和訳

_ [NetBSD][翻訳]hubertf's NetBSD blog - Embedded NetBSD on iMX233/OLinuXino iMX233/OLinuXino での組み込み NetBSD

Petri Laskso has worked to get NetBSD going on the iMX233/OLinuXino ARM board, specifically the MAXI and MICRO boards. The port is stable enough to run multiuser and build software from pkgsrc. Supported hardware include SD card, GPIO, USB host, and a boot loader.

Petri Laskso は iMX233/OLinuXino ARM 基板、とくに MAXI and MICRO 基板上で NetBSD の作業をしています。移植は十分安定して、マルチユーザーで実行でき、pkgsrc からソフトウェアを構築できます。サポートされるハードウェアには、SD カード、GPIO、USB ホスト、およびブートローダーを含みます。

The hardware is ways below 50 EUR, so this is a good start to get a nice and easy machine. More information on how to get things running are available in Petri's blog.

ハードウェアは、50 ユーロ以下で買えるので、ナイスで手軽な機械で作業を開始できます。諸々を実行する方法についての詳細は ペトリのブログ でご覧いただけます。

Last, the impatient souls that can't wait to start playing can find the code in NetBSD-current already, thanks to Matt Thomas.

最後に、忙しい人のための NetBSD-current のコードはこちら 。マット・トーマスに感謝します。

_ 買い物

4041010217

4840149631

_ [艦これ]艦これ

ついに長門さんを建造した。資材食い過ぎる....

祥鳳さんを改造。


2013-10-09 :-(

_ 午前

0520 起床

0830 出勤 && コード読んだり

_ 午後

1300 コード読んだり

_

1700 退勤

1800 買い物

1900 和訳

2030 飯

_ 買い物

amazon

買ってみたもののすでに第三版まで出てるじゃないですかーやだー

4764902451

_ 買い物

@マルイ溝の口

水泳用に買うなどした。水着なんぞ 20 年近く利用してないもんだから最近のスポーティさについていけなかった。

B00ECWHMXA

_ [艦これ]艦これ

優しい提督

ありがとう。超ありがとう。

おかげで全員キラキラです。


2013-10-10 :-(

_ 午前

0530 起床

0830 出勤 && コード読んだり

_ 午後

1300 コード読んだり

_

1700 退勤

1800 川崎

1900 秋葉原 || 移動しまくったので疲れた

2130 飯。豚肉みそいため

_ 買い物

@アニメイト川崎

重版

B00EQCRXX0

@書泉ブックタワー

B00FFDLI58

_ 買い物

高橋コウタさん( リッジレーサーをプレイしているひとならば知らないひとは居ない )の曲。同じ曲は昔から高橋コウタさんのサイトからダウンロード可能だったんだが( よく聴いてます。ええ ) 今回は音質を ちゃんとした とのこと

SOLID STATE JAPAN : アルバム「EVERYONE」自主レーベルより配信リリース

_ [艦これ]艦これ

飛鷹さん改造


2013-10-11 :-(

_ 午前

0530 起床

0830 出勤 && コード読んだり

_ 午後

1300 コード読んだり

_

1700 退勤

1830 和訳

2130 飯

_ 買い物

amazon

B00F08HEKQ

_ 艦これ

資材が初めて 10000 を超えた。

k00.png

建造。霧島さん 何人目。

霧島さん( 1 人目 )を改造。電探が欲しいな。


2013-10-12 :-)

_ 午前

0930 起床 && 部屋掃除

_ 午後

1200 おひる。そうめん

1300 買い物

1400 アニメ消化

1630 散歩。この景色も見れなくなる(目の前にマンションが建つ)

IMG_2938

_

1800 ぐったり

2130 飯

_ ルーター

たまによく自宅ネットワークが遅くなることがあり、ルーターのログを見るとどうもソケットディスクリプタが溢れてるらしいので、ルーターの電源を抜き差しして対処していて、それはそれで電源をポチポチするので機械への負荷が高そうだよなあと思っていたところ、昨日ついにルーターの電源を挿しても反応しなくなったので寿命が来たかと焦っていたが、10 分ほどしたら復旧した。とくに何もしてないんだが。ともあれそろそろ替えどきだろうか。しかしホームルーターで後継機が無いんだよなあ。「なんとなくヤマハ」というだけでヤマハに拘る理由もないんだけど。

もう 10 年近く使ってるのか。

YAMAHA RT56v

_ 艦これ

レベル上位がこんなもん。2-4 突破のために戦艦と {正規空母,軽空母} をレベル 30 にしておきたいとこ。

第 2 艦隊は通商破壊作戦の遠征に出発した。

40h かかる。


2013-10-13 :-)

_ 午前

0620 起床

0800 池袋

1000 西武秩父

1100 龍勢会館

_ 午後

1300 龍勢打ち上げ

1315 退散

_

1800 写真整理

2100 飯。パエリア

_ [龍勢祭り][あの花][超平和バスターズ]龍勢祭り 超平和バスターズ

miwarin, yo_1

去年[ 20121014#p04 ]に引き続き行ってきた。

レッドアロー号クラシックだと

IMG_2946

IMG_2947

去年と同じように移動して去年と同じような位置に陣取った。

今年の超平和バスターズは茅野愛衣さん(めんま役)、近藤孝行さん(ぽっぽ役)がゲスト。口上は近藤孝行さんによるもの。

有料席のすぐ後ろで誰も目の前におらず最高の場所だと思っていたら、超平和バスターズが始まったころに目の前の有料席のひとが立ち上がったうえにちょうど発射台が隠されてしまった。おのれ...来年は有料席に行くかのう...

肝心の龍勢打ち上げは落下傘が開かず。残念。

口上

龍勢打ち上げ。落下傘は開かず

なおちゃんと開くと以下のようになる。

IMG_2956

IMG_2963

IMG_2968

IMG_2973

IMG_2987

_ [艦これ]艦これ

妙高さんきたー これで任務が出来る!と思ったら足柄さんが居なくなっていた。どこかで近代化改修に使ってしまったようだ。

出撃するたびに小破、中破、大破するんだが。


2013-10-14 :-)

_ 午前

0930 起床

1010 おひる。カルボナーラ

1100 アニメ消化

IMG_3002

_ 午後

1500 散歩

マンション建設現場。こういう装置があるんですなあ。

IMG_3008

_

1700 アニメ消化

1800 Cほげ

1900 飯。鮭のちゃんちゃん焼き || 明日は健康診断なので早めに飯を食べておく。

2200 腹減った

_ [C][デザインパターン][Commandパターン]C で Command パターン

安直な queue とか書いてみると実現出来るかしら。queue というかリングバッファになってるけど。

/*
  Command パターン的な
*/

#include <stdio.h>
#include <stdarg.h>

#define QUEUE_MAX 4
typedef void (*command)(int argc, ...);
command queue[QUEUE_MAX];

int start_index;
int end_index;

void enqueue(command cmd)
{
  if(queue[end_index] != NULL)
  {
    printf("queue is full\n");
    return;
  }

  queue[end_index] = cmd;
  end_index++;
  if(end_index >= QUEUE_MAX)
  {
    end_index = 0; 
  }
}

command dequeue(void)
{
  command cmd;
  cmd = queue[start_index];
  queue[start_index] = NULL;
  start_index++;
  if(start_index >= QUEUE_MAX)
  {
    start_index = 0; 
  }
  return cmd;
}

void initialize(void)
{
  int i;
  for(i = 0; i < QUEUE_MAX; i++)
  {
    queue[i] = NULL;
  }
  start_index = 0;
  end_index = 0;
}

void command1(int argc, ...)
{
  int i;
  va_list args;
  va_start(args, argc);

  printf("command1\n");

  for(i = 0; i < argc; i++)
  {
    int n;
    n = va_arg(args, int);
    printf("%d\n", n);
  }
  va_end(args);
}


void command2(int argc, ...)
{
  int i;
  va_list args;
  va_start(args, argc);

  printf("command2\n");

  for(i = 0; i < argc; i++)
  {
    int n;
    n = va_arg(args, int);
    printf("%d\n", n);
  }
  va_end(args);
}

void test_queue(void)
{
  int i;

  printf("test_queue start\n");

  initialize();
  enqueue(command1);
  enqueue(command2);
  for(i = 0; i < 16; i++)
  {
    command v = dequeue();
    if(v != NULL)
    {
      v(1, i);
    }
  }
  printf("test_queue end\n");
}


int main(int ac, char** av)
{
  test_queue();
  return 0;
}
test_queue start
command1
0
command2
1
test_queue end

_ [C][デザインパターン][Observerパターン]C で Observer パターン

Command パターンと同じようなもんで。ううん

/*
  Observer パターン的な
*/

#include <stdio.h>
#include <stdarg.h>

#define OBSERVER_MAX 4
typedef void (*observer)(int argc, ...);
observer observers[OBSERVER_MAX];

int end_index;

void register_observer(observer o)
{
  if(end_index >= OBSERVER_MAX)
  {
    printf("queue is full\n");
    return;
  }
  observers[end_index] = o;
  end_index++;
}

void notify_observer(void)
{
  int i;

  for(i = 0; i < end_index; i++)
  {
    observer o = observers[i];
    if(o != NULL)
    {
      o(1, i);
    }
  }
}

void initialize(void)
{
  int i;
  for(i = 0; i < OBSERVER_MAX; i++)
  {
    observers[i] = NULL;
  }
  end_index = 0;
}

void update1(int argc, ...)
{
  int i;
  va_list args;
  va_start(args, argc);

  printf("update1\n");

  for(i = 0; i < argc; i++)
  {
    int n;
    n = va_arg(args, int);
    printf("%d\n", n);
  }
  va_end(args);
}


void update2(int argc, ...)
{
  int i;
  va_list args;
  va_start(args, argc);

  printf("update2\n");

  for(i = 0; i < argc; i++)
  {
    int n;
    n = va_arg(args, int);
    printf("%d\n", n);
  }
  va_end(args);
}

void test_observer(void)
{
  printf("test_observer start\n");
  initialize();
  register_observer(update1);
  register_observer(update2);
  notify_observer();
  printf("test_observer end\n");
}


int main(int ac, char** av)
{
  test_observer();
  return 0;
}
test_observer start
update1
0
update2
1
test_observer end

_ [艦これ]艦これ

40h 遠征お疲れ様でした。


2013-10-15 :-)

_ 午前

0730 起床

0900 健康診断

1100 おひる

_ 午後

1200 午後休み

1300 アニメ消化

1500 Cほげ

_

1800 和訳

2130 飯。豚肉の生姜焼き

_ [連結リスト][デザインパターン][Commandパターン][C]連結リストで Command パターン

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdarg.h>

typedef void (*command_t)(int argc, ...);

struct node_t
{
  struct node_t* next;
  command_t cmd;
} root;

/* 先頭に追加 */
void put(command_t cmd)
{
  struct node_t* _p;
  struct node_t* _q;

  for(_p = &root; _p->next != NULL; _p = _p->next)
    ;

  _q = (struct node_t*)malloc(sizeof(struct node_t));
  if(_q == NULL)
  {
    perror("put");
    exit(0);
  }
  _q->cmd = cmd;
  _q->next = _p->next;
  _p->next = _q;
}

/* 先頭を削除 */
void get(void)
{
  struct node_t* _p;

  _p = root.next;
  if(_p == NULL)
  {
    printf("root is empty\n");
    return;
  }

  root.next = _p->next;
  free(_p);
}

void command1(int argc, ...)
{
  int i;
  va_list args;
  va_start(args, argc);

  printf("command1\n");

  for(i = 0; i < argc; i++)
  {
    int n;
    n = va_arg(args, int);
    printf("%d\n", n);
  }
  va_end(args);
}


void command2(int argc, ...)
{
  int c;
  int n;
  va_list args;

  printf("command2\n");

  va_start(args, argc);
  c = va_arg(args, int);
  n = va_arg(args, int);
  printf("c:%d n:%d\n", c, n);

  va_end(args);
}

void run(void)
{
  int n;
  struct node_t* _p;

  n = 0;
  for(_p = &root; _p->next != NULL; _p = _p->next)
  {
    if(_p->next != NULL)
    {
      _p->next->cmd(2, n, n * 10);
      n++;
    }
  }
}

void test_command(void)
{
  printf("test_command start\n");
  put(command1);
  put(command2);
  run();
  printf("test_command end\n");
}

int main(int ac, char** av)
{
  test_command();
  return 0;
}
test_command start
command1
0
0
command2
c:1 n:10
test_command end

_ [連結リスト][デザインパターン][Commandパターン][C][優先度]連結リストで優先度あり Command パターン

たんに連結リストの配列にしただけ。0 が優先度高くて、20 が優先度低いです。UNIX 系統の優先度と同じようなもんで。Command というかタスク管理というか。イメージとしては↓のような感じ。実行状態なんてないですが。

zu01_01.gif

(via オリジナルOS「MicrOS」の設計と実装(4) ―― リアルタイム性の確保 )

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdarg.h>

#define PRI_MAX 20

typedef void (*command_t)(int argc, ...);

struct node_t
{
  struct node_t* next;
  command_t cmd;
} root[PRI_MAX];

/* 先頭に追加 */
void put(int pri, command_t cmd)
{
  int i;
  struct node_t* _p;
  struct node_t* _q;

  for(_p = &root[pri]; _p->next != NULL; _p = _p->next)
    ;

  _q = (struct node_t*)malloc(sizeof(struct node_t));
  if(_q == NULL)
  {
    perror("put");
    exit(0);
  }
  _q->cmd = cmd;
  _q->next = _p->next;
  _p->next = _q;
}

void command0(int argc, ...)
{
  int pri;
  int n;
  va_list args;

  va_start(args, argc);
  pri = va_arg(args, int);
  n = va_arg(args, int);
  printf("command0 pri:%d n:%d\n", pri, n);

  va_end(args);
}

void run(void)
{
  int pri;
  int n;
  struct node_t* _p;

  n = 0;

  for(pri = 0; pri < PRI_MAX; pri++)
  {
    for(_p = &root[pri]; _p->next != NULL; _p = _p->next)
    {
      if(_p->next != NULL)
      {
        _p->next->cmd(2, pri, n);
        n++;
      }
    }
  }
}

void test_command(void)
{
  printf("test_command start\n");
  put(19, command0);
  put(19, command0);
  put(0, command0);
  put(0, command0);
  put(1, command0);
  put(2, command0);
  run();
  printf("test_command end\n");
}

int main(int ac, char** av)
{
  test_command();
  return 0;
}
test_command start
command0 pri:0 n:0
command0 pri:0 n:1
command0 pri:1 n:2
command0 pri:2 n:3
command0 pri:19 n:4
command0 pri:19 n:5
test_command end

_ [艦これ]艦これ

初霜を改造

初雪を改造

山城さんを改造

キラキラ遠征をやってなかったので 6 人をキラキラ状態にして

艦隊決戦援護任務( 15h )行ってきます。

こっちは 4 人キラキラにして

海上護衛任務( 1.5h )行ってきます。


2013-10-16 :-(

_ 午前

0530 起床 && 東急の各路線は便数を減らしての運行なので普通に出勤する

0700 仕事場

0800 東急線全滅のお知らせ || 早めに移動しておいてよかったのか何なのか

0830 出勤 && コード読んだり

_ 午後

1300 コード読んだり

_

1730 退勤

1800 プール

1830 上がり

1930 艦これ

2030 飯

2130 艦これ

_ [プール]20年ぶりくらいにプールへ行った

健康維持のためにいつかプールへ通おうと思いつつ 10 年くらい経過していたんだが、先日水着をようやく買ったし、いまの勤務先にプールがあるのでせっかくだから利用してみた。10 分泳いだだけで力尽きた。それでも休みつつ 30 分くらい過ごしたところで退散した。腕が上がらん。

_ [艦これ]艦これ

2-4-1 で日向さんをゲット

知人も艦これやってるらしくいろいろ話をするなど。


2013-10-17 :-(

_ 午前

0530 起床

0830 出勤 && コード読んだり

_ 午後

1300 コード読んだり

_

1700 自社業務打ち合わせ

1800 退勤

1900 ググったり

2100 飯。チンジャオロース ピーマンなし


2013-10-18 :-(

_ 午前

0530 起床

0830 出勤 && コード読んだり

_ 午後

1300 コード読んだり

_

1700 退勤

1830 いろいろググるなど

1900 Windows 7 がどうも猛烈に重いんだが原因がよく分からなんのでとりあえずデフラグしておく

2100 飯。カジキ煮付け

_ 買い物

amazon

IMG_3015

B00DDE0EWE

_ [艦これ]艦これ

キラキラ遠征のための 1-1 巡回でやられないように艦隊をせめて改造にする。


2013-10-19 :-)

_ 午前

0800 起床 && 部屋掃除

0900 トイレの貯水槽のアレ交換してもらった || まだ水が出てくるなあ

1000 おひる。スパゲティ

1100 アニメ消化

_ 午後

1300 病院 || しかし受け付けは午前中で終了していた || 後日出直す

1400 買い物

1500 アニメ消化

1600 散歩

IMG_3021

_

1700 アニメ消化

1800 読書

2100 飯。秩父の蕎麦

2200 ぐったり

_ [NetBSD][翻訳]hubertf's NetBSD blog - Raspberry Pi USB HC driver change - DMA support added Raspberry Pi USB HC ドライバ変更 - DMA 対応を追加

Nick Hudson reports that he has ``recently switched the Raspberry Pi kernel to dwctwo(4) a new USB drvier based on the Synopsys code. It's a more complete driver than the previous dotg(4) and has DMA support''. Jun Ebihara confirms that the driver works fine with a dmesg extract, and also lets us know that the driver will be in his next RPI image.

Nick Hudson は「最近 Raspberry Pi カーネルを Synopsys 社のコードを基にした新しい USB ドライバ dwctwo(4) に切り替えた」ということを 報告した。これは、以前の dotg(4) よりも完全なドライバであり DMA 対応もしている。蛯原純は そのドライバが正常に動作することを 確認した 。 抽出した dmesg も付いている。我々はドライバが彼の次の RPI イメージになることも知った。

This change does not only affect the Raspberry Pi, but also other machines that have a Synopsis USB like the OpenBlocks 600, as KIYOHARA Takashi lets us know.

この変更は Raspberry Pi だけでなく、OpenBlocks 600 のように Synopsis USB 備えたマシンにも影響を与えることを清原高志が 教えてくれた

_ 買い物

amazon

艦これ白書は誤植のアレです。

4797363282

4047318752

_ [艦これ]艦これ

陽炎ゲット


2013-10-20 :-)

_ 午前

0900 起床

1020 おひる。うどん

1100 アニメ消化

_ 午後

1500 読書

_

1800 ぐったり

2200 飯。豚肉の生姜焼き

_ [NetBSD][翻訳][Raspberry Pi]hubertf's NetBSD blog - Quick bootstrap of NetBSD on Raspberry Pi and Cobalt machines Raspberry Pi や Cobalt マシンで NetBSD を手軽に始める方法

NetBSD is a fine operating system, but the installation sometimes leaves a lot of rope to hang yourself on non-PC platforms. To make things easier to get a recent NetBSD version on the Cobat Raq and Qube machines, Izumi Tsutsui has released a Restore CD/USB image based on NetBSD 5.2.1 that allows for a quick bootstrap. There is also a Restore CD HOWTO available with more information.

NetBSD は素晴らしいオペレーティングシステムだが、非 PC プラットフォームにおいてはインストール作業はときどき多くの人がつまづく。

Cobat RAQ との Qube マシンでは最近の NetBSD バージョンだとより簡単に出来るようにするために、筒井泉が NetBSD 5.2.1 を基にしたリストア CD/USBイメージをリリースした。これですぐに始められる。より多くの情報が Restore CD HOWTO にもある。

If you're into somewhat more recent machines, the Raspberry Pi is for you. For easy bootstrapping of NetBSD, Jun Ebihara offers a SD card image with -current NetBSD and pkgsrc from October 2013 preinstalled. This also includes support for hardware floating point and DMA. Instructions are available on line in Japanese language. The important commands still are readable, so have a look!

もう少し最近のマシンに興味があるならば Raspberry Pi がよかろう。NetBSD を簡単に起動するために、蛯原純は 2013年10月から current NetBSD および pkgsrc がプリインストールされた SD カードのイメージを提供している

これはハードウェア浮動小数点および DMA 対応も含まれている。日本語だが 手順が公開されている。より重要なコマンドが読めるので、ぜひ見てくだしあ。

_ [艦これ]艦これ

2-2 で蒼龍さんゲット。正規空母がようやく 2 人目。

艦隊これくしょん ~艦これ~ 攻略&2chまとめwiki - 遠征

19 北号作戦 航戦(Lv22,22),軽巡(Lv21),駆逐(Lv22,20,20)Lv20以上で全て改なら行ける模様

ということらしいので条件に当てはまる娘がこんだけ。イケそうだ。

  • 航戦(Lv22,22)
    • 伊勢改 32
    • 山城改 32
    • 扶桑改 27
  • 軽巡(Lv21)
    • 夕張改 42
    • 由良改 29
    • 那珂改 20
  • 駆逐(Lv22,20,20)
    • 五月雨改 31
    • 初雪改 22
    • 初霜改 22

2013-10-21 :-(

_ 午前

0530 起床

0830 出勤 && コード読んだり

_ 午後

1300 コード読んだり

_

1700 退勤

1830 CEDEC Digital Library の資料が更新された通知が来たので読むなど

2000 和訳

2100 飯。おこわ

_ [艦これ]艦これ

2-2 だったか、高雄さんをゲット。これで任務が捗る。

_ ,

同窓会の知らせに「豚汁引換券」なるものが同封されていたので様子を見てみたらライブのゲストが超絶豪華だった件。脊髄反射でチケットを買ってしまった。

KOTOKO・南条愛乃・飛蘭 アコーステックLIVEin幾徳祭


2013-10-22 :-)

_ 午前

0730 起床 && 今日はお休み

0840 通院

1000 ぐったり || 頭が痛いので寝る

_ 午後

1200 おひる。カルボナーラ

1400 生田緑地

_

1700 アニメ消化など

1800 和訳

2100 飯。ブリの塩焼き

_ 頭部に何かデキたので病院へ行ってきた

イボだそうだ。

「冷やして治療しましょう」とのことなのでドライアイスらしきもので冷却された棒を「じぅぅ」とイボにあてるだけの治療だった。けっこう痛い。

_ [スパゲティ][]スパゲティを茹でるときに塩を入れるか入れないか問題

「スパゲティ 塩」でググれば大量にヒットする( このあたりは 自転車置場の議論 - bkブログ に似ているなあ )わけですが、今日初めて塩を入れて茹でてみた。結論: しょっぱい

私のスペック:

  • 「365日スパゲティが食べたい」を買って[ 20040717#p05 ]から 1 度も塩を入れて茹でたことがない
  • 外食でスパゲティを食べたのは 1, 2 度( ビュッフェで出たことはあるがそれは含めない )

近年チラホラとスパゲティを茹でるときに塩を入れるだろJK などといった話題があったものの塩を入れて茹でたことがなかったので、思い出したように実践してみた。

作ったのはカルボナーラである。

1 リットルくらいの水に塩 10 グラム程度( 5 グラムくらいかもしれん。測ってない) を入れて茹でてみた。

それで食べたところ、たしかに 塩の味がする

麺の硬さなどはうーん。変化あったのかこれ。

スパゲティの麺を作るときに塩を入れる( 落合務の本にはそう書いてある )わけだから、さらに茹でるときにも塩を入れるかどうかは好みでいいでしょうねえ、という感想しかモテない。

4579205391

4579207653

4838716281

_ [生田緑地ばら苑]生田緑地ばら苑

行ってきた。

8月休日出勤したときの代休がまだ消化しておらず( 7月のぶんは消化しきれずいくつか溶けた )仕事場でもまだそれほど戦力としてみなされていないので、余裕があるいまのうちに代休を消化するために今日行ってきた。なんとなく今日にしたんだが今度の週末は台風らしいし中々の運ではないだろうか。

平日ということで苑内はすいていたのでサクサクと見学できた。

花は 6 分咲きくらいかなあ。しかし花によって時期が異なるので既に散っているものがあったり、まだ咲いてないものがあったり。

IMG_3078

何かのカメラ。

IMG_3100

写真はこちら 生田緑地 ばら苑 2013-10-22 - a set on Flickr

_ [艦これ]艦これ

霞を改造

時雨を改造

響を改造

2-1 巡回で鳳翔さんをゲット


2013-10-23 :-(

_ 午前

0530 起床

0830 出勤 && コード読んだり

_ 午後

1300 コード読んだり

_

1700 退勤

1720 プール || 今回は早めに来たんだがさすがに混んでるなあ || 前回くらいの時間のほうがすいてて泳ぎやすいか

1900 和訳

2200 飯


2013-10-24 :-(

_ 午前

0530 起床

0830 出勤 && コード書いたり

_ 午後

1300 コード書いたり

_

1730 退勤

1900 読書

2130 飯。鮭のムニエル

_ [艦これ]艦これ

千代田さんを改造→千代田改

千代田さんを改造→千代田甲

レベル上げしていたら比叡さんがレベル 50


2013-10-25 :-(

_ 午前

0530 起床

0830 出勤 && コード書いたり

_ 午後

1300 コード書いたり

_

1720 退勤

1830 読書

2100 飯。喜助 の牛たん

_ [ランチジャー][弁当]ランチジャーを使い始めてから 2 週間がたちました

先日買ったアレ[ 20131006#p04 ]

おかげでお昼が捗るようになった。朝は手間が 1 つ増えたが、それでもお昼に温かい米を食べることが出来るので充分である。ナニより電子レンジ待機列に並ぶ手間が省けるようになったのが大きい。

before

  1. 前日 晩飯のおかず + 米( 2 合 )を余分に作る
  2. 前日 おかず + 米を弁当に入れて冷蔵庫へ入れる
  3. 当日 朝 飯( パン )食べる
  4. 当日 朝 弁当フタを閉めて持参
  5. 当日 昼 電子レンジ待機列に並ぶ。チン

after

  1. 前日 晩飯のおかずを余分に作る
  2. 前日 おかずを弁当に入れて冷蔵庫へ入れる
  3. 当日 朝 05:30 米 1 合(弁当 + 朝食)炊けるようにタイマー
  4. 当日 朝 飯( 米 )食べる
  5. 当日 朝 米を詰める
  6. 当日 朝 弁当フタを閉めて持参
  7. 当日 昼 フタを開けて食べる

_ [NetBSD]半年 ROM る NetBSD

コードを眺めるだけ。関数などの定義がすぐに追跡できるので、他のエディタなど用にタグを生成するよりは楽ちん。

インストール

eclipse を取得 Eclipse Downloads

eclipse.exe を起動

メニュー - Help - Install New Software...

Work with: --All Available Sites--

Programming Languages - C/C++ Development Tools

Next とか

ソース読み込む

メニュー - File - New - C Project

Project name: テキトーに

Location: テキトーに

Project type: Empty Project

Project Explorer - プロジェクト名で右クリック - Import

General - File System

From directory: NetBSD の src があるフォルダを選択

Advanced - Create links in workspace これチェックしておかないとソースファイルがワークスペースにコピーされる

Create link locations relative to: チェック外しておくほうが見やすい

フィルタ無効化

メニュー - Window - Preferences

C/C++ - Code Analysis - すべてのチェックを外す ( どうせビルドとかしない )

みんな大好き /bin/ls

_ [NetBSD][翻訳]hubertf's NetBSD blog - Mercedes Benz powered by NetBSD? メルセデス・ベンツは NetBSD で動いています?

There is a posting by Fefe which links to Open Source licenses used by Mercedes Benz.

Fefe による投稿メルセデス・ベンツでのオープンソースライセンス へのリンクがある。

This includes a number of BSD variants - original 4-clause as well as the 2- and 3-clause versions as well as company specific BSD licenses by car-supplier Continental, Acme Labs and Google. No explicit mention of NetBSD's license, but a bunch of NetBSD developers' names and mail addresses can be found. There is also an overview that the BSD license is used in about all models from A-Class over S-Class to SLK, and which also indicates that the new (2013+) S-Class includes much more BSD licensed software than all the other models. Which is not much of a surprise, as it's the most recent and also most technically advanced model (as far as I can tell).

これには BSD 系のいくつかが含まれている。自動車部品製造業や Acme 研究所や Google による企業固有の BSD ライセンスもそうだし、2-clause や 3-clause はもちろん、オリジナル 4-clause もそうだ。NetBSD ライセンスの明確には言及していないが、何人かの NetBSD 開発者の名前とメールアドレスを見つけることができる。

BSD ライセンスは A クラスから S クラス以上の SLK までのすべてのモデルで使用されていて、S クラス(2013 年~) は他のすべてのモデルよりも多くの BSD ライセンスソフトウェアが含まれていることも示している。これは驚くほかない。最近のものと、最先端技術のモデルのものもそうだ(私が聞いた限りでは)。

No details are included as to what software components are under the respective licenses. Anyone got details? Please share!

各ライセンスのソフトウェアコンポーネントとして何が含まれているのか詳細は無い。誰か詳細を知っているか? 拡散希望

_ [艦これ]艦これ

千代田航へ

千歳さん航改二へ


2013-10-26 :-)

_ 午前

???? 窓がガタガタちう音がするから何かと思って目覚めたら揺れが来たけど大きくないからそのまま寝た

0830 起床 && 部屋掃除

1030 おひる。うどん

_ 午後

1150 チネチッタ

1630 買い物

_

1800 アニメ消化

2100 飯

_ [魔法少女まどか☆マギカ]劇場版 魔法少女まどか☆マギカ 新編 叛逆の物語

@チネチッタ川崎

見てきた。まず OP だけで涙が出た。しかし衝撃が大きすぎて頭が整理できてないのでまた後日なにか書く。かもしれない。見どころはたくさんありすぎる。OP もそうだし、ナイトメアとの戦闘もそうだし、戦隊物風味もそうだし、暁美ほむら vs 巴マミ戦もそうだし( ガンアクションがホントすげえ。トライガンを思い出す )、その後の展開もハッピーエンドで終わると思わせておいて「えっ .... えっ? どうすんのこれ....」という裏切られ感がホント酷い。

前編後編の劇場版を見たときに「この OP こそ暁美ほむらが救いたかった世界ではないか」と書いた [ 20121029#p05 ] んだが、それは暁美ほむらが望んだ世界というだけでなく、私が見たかった世界だったのだと気づいた。5 人の魔法少女たちが殺しあうこともなく、魔女との戦闘や、魔法少女というシステムに苦しむこともない世界。5 人の魔法少女たちが和気あいあいと楽しく幸せに暮らしている世界を見たかったのは暁美ほむらだけではなく私もそうだったのだ( 暁美ほむらが望んでいた、といったことはパンフレットでも語られているのでそれは間違いない )

暁美ほむらは鹿目まどかを救うために数えきれないほど何度も時間を巻き戻し、ワルプルギスの夜と戦闘し、やはり何度も負け、そしてまた過去に戻り、そのような辛い思いをした末に、遂に鹿目まどかは神となってしまい、鹿目まどかを救う、または魔女化を防ぐということは達成されたかもしれない。しかし暁美ほむらが持っていた感情は、俗にいえば、鹿目まどかが欲しい、鹿目まどかと一緒に居たい、という欲望である。欲望を持ちながらもそれが叶えられず絶望するとき、魔法少女は魔女と化す。

私は暁美ほむらについて、意思を貫く鉄の女、という印象を持っていたんだけど、新編を見て、彼女も普通の女の子であり、自分の欲望に基づいて行動するようになったのだなと、むしろ人間臭さを感じた。

最後に登場した「魔女」が悲痛すぎて辛い。劇中に何度か断頭台のシーンが登場したし、魔女の手が繋がれていたから、たぶんあの魔女が向かう先は断頭台なのだろうけど、背中から生えた触手(?)が前に進みたくない、断頭台に向かいたくない、という意思を持ったように蠢いていて、その魔女の元だった魔法少女の心境を表しているようで、魔女の進軍を見ているのが辛かった。美樹さやかの「ああ見えて、一番辛いのは本人なんだからさ」という一言はやはり美樹さやからしい気遣いか。

m00

_ [艦これ]艦これ

2-4 初挑戦。羅針盤に阻まれた。しかし道中は割りと楽勝だったのでけっこうイケるかもしれず。

2-4 で初めての大井っちゲット

本日のツッコミ(全2件) [ツッコミを入れる]

_ youichi [まどマギみないと人間じゃないまで読んだ]

_ みわ [俺は人間をやめるぞ、まどかーー! まで書いた]


2013-10-27 :-)

_ 午前

0930 起床

1020 おひる。ボンゴレビアンコ

1100 アニメ消化

IMG_3122

_ 午後

1500 散歩

IMG_3126

_

1800 読書など

2130 飯。豚肉のみそ炒め

_ サンゴ

先日沖縄へ行ったときに拾ったサンゴ。これを漂白しておくと白くなる、というので漬けてみた。3 週間前

IMG_2923

今日。だいぶ白くなった。さて、どうすんだこれ

IMG_3127

_ [NetBSD][翻訳][g4u]hubertf's NetBSD blog - G4U Opinion Time: kernel with embedded RAMdisk vs. miniroot? G4U について考えよう: 組み込み RAMディスクのカーネルと miniroot どっちがいい?

Quoting my own mail to the g4u-help mailing list:

私の g4u-help メーリングリストへの投稿から引用

``I've found little time to hack on g4u in the recent past. Yet, I've managed to setup my development and test environment for g4u (crosscompiling NetBSD from Mac OS X, getting recent Qemu to compile), and also got g4u built from recent NetBSD-current sources. As such, take this as small sign of life.

最近 g4u ハックする時間をとった。まだ g4u 開発環境とテスト環境のセットアップを管理してるんだけど( 最近の Qemu をコンパイルするための Mac OS X から NetBSD へのクロスコンパイルだ )、最近の NetBSD-current ソースから g4u ビルドもした。というわけで、活動してるひと居ないんだよねー。ちぇ

Now, while I don't have any plans for large changes, I'd like to bring an update with latest drivers and bugfixes from NetBSD.

現在 大きな変更をすることは考えてなくて、NetBSD から最新のドライバとバグ修正についてアップデートをしようと思う。

There's one change that I'm pondering, though: g4u originally came as one kernel-file that had an embedded RAM-disk. This was changed in the last release to reflect NetBSD's ability to load a RAM-disk from a separate file. This change broke the ability to netboot g4u from a single file, and required some more effort. There were no real wins for g4u as such.

しかし 1 箇所変更点について思案していることがある。

もともと g4u は組み込み RAM ディスクを備えた 1 つのカーネルファイルとしてもたらされた。これは、NetBSD が別のファイルから RAM ディスクをロードするように反映され、前回のリリースで変更された。この変更は単一ファイルからの netboot g4u 出来なくなったし、いくつかのより多くの努力を必要とした。我々は、g4u として何の成果も得られませんでしたああ!

So, opinion time: keep the RAM-disk as separate file, or move it back into the kernel?

シンキングタイム。別ファイルとしての RAM ディスクのままにするか、カーネルに戻すか?

Looking forward for your opinions!''

さあ、みんなで考えよう!

_ 買い物

文教堂

後者 超高いわー ('A`)

B00FH1HF32

4499231183

_ [艦これ]艦これ

2-4 クリアした。2 回目の挑戦。

こんな装備。

全員キラキラにしてから出撃。

北側ルートだった。水色の点は「気のせいだった」でスルーされた。こんな点もあるのか。

ボスは 4 戦目だった。道中は戦艦をオーバーキルするくらい砲撃戦が強く昼間を 1 巡しただけ(戦艦 4 人が 1 回ずつ砲撃して終わり )で戦闘終了したんだが、3 戦目から弾薬が尽き始めたか、与えるダメージが小さくなってきた。3 戦目で千歳さん小破。小破なのでそのままボスへ進撃。

2-4 ボス。久しぶりに夜戦に突入した。夜戦で榛名さん大破したものの勝利。

ボスで榛名さん N 人目

2-4 道中で大井っち 2 人目

その後は任務消化など。最上さんを改造

3-1 出撃。クリア。比叡さん N 人目


2013-10-28 :-(

_ 午前

0530 起床

0830 出勤 && コード書いたり

_ 午後

1300 コード書いたり

_

1700 打ち合わせ

1800 退勤

1930 読書など

2130 飯。鮭のちゃんちゃん焼き

_ ボンミッソはもう無い

昔 名古屋方面へ出張したときに買ってたんだけど [ 20011126#p03 ][ 20070323#p06 ] もはやどこにも売っていないらしい。

シャチボン - Wikipedia

_ [艦これ]艦これ

長門さん改造。演習だけでレベル 30 にした。

たまには開発をします。三式弾を開発。


2013-10-29 :-(

_ 午前

0530 起床

0600 朝飯ったけどぐったりしてきたので仕事休みの連絡した

0620 寝る

_ 午後

1200 おひる。作っておいた弁当です

1400 寝る

_

1700 アニメ消化など

2100 飯。牛丼など

_ [艦これ]艦これ

大井さん改造

電ちゃん改造

3-2 に挑戦してみる。

ダメでした。道中で渦潮に巻き込まれたので戦闘せずに済んだのはよかったけど、ボス前ですらこの有り様。陣形は単横陣。やはり火力をカンストさせるくらいに改修しないとダメか。

腹いせに 4-1 行ったら普通にクリアできた。道中の潜水艦はろくにダメージ与えられなかったけど戦術的勝利なので問題なし。

_ [ruby]ASCII で書かれたファイルをバイナリへ変換して書き出す

# coding: utf-8

def conv(in_file_path, out_file_path)
  text = File.open(in_file_path).read()
  sp = text.split
  d = sp.map{|h| h.hex}
  File.open(out_file_path, "wb").write(d.pack("C*"))
end

def main(argv)
  in_file_path = argv[0]
  out_file_path = argv[1]
  conv(in_file_path, out_file_path)
end

main(ARGV)

こういうファイル

01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f

ruby は楽なんだけどな

_ [C]ASCII で書かれたファイルをバイナリへ変換して書き出す(C)

面倒くさすぎる

#include <stdio.h>
#include <memory.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>

enum ST_ANALYZE
{
  ST_ANALYZE_HIGH,
  ST_ANALYZE_LOW,
  ST_ANALYZE_DELIM,
};

char hex(char c)
{
  char h = 0;

  if('0' <= c && c <= '9')
  {
    h = c - '0';
  }
  else if('a' <= c && c <= 'f')
  {
    h = (c - 'a') + 10;
  }
  else if('A' <= c && c <= 'F')
  {
    h = (c - 'A') + 10;
  }
  return h;
}

void conv(char* in_file_path, char* out_file_path)
{
  struct stat st;
  int result;
  int in_file_size;
  char* in_file_buf = NULL;
  char* out_file_buf = NULL;
  FILE* in_fp = NULL;
  FILE* out_fp = NULL;
  int read_bytes;
  int write_bytes;
  char hi;
  char lo;
  int i;
  int in_pos;
  int out_pos;
  int analy_st;

  result = stat(in_file_path, &st);
  if(result != 0)
  {
    perror("stat");
    goto ERROR;
  }

  in_file_size = st.st_size;

  in_file_buf = (char*)malloc(in_file_size);
  if(in_file_buf == NULL)
  {
    perror("malloc");
    goto ERROR;
  }

  out_file_buf = (char*)malloc(in_file_size);
  if(out_file_buf == NULL)
  {
    perror("malloc");
    goto ERROR;
  }

  in_fp = fopen(in_file_path, "rb");
  if(in_fp == NULL)
  {
    perror("fopen");
    goto ERROR;
  }

  read_bytes = fread(in_file_buf, 1, in_file_size, in_fp);
  if(read_bytes != in_file_size)
  {
    perror("fread");
    goto ERROR;
  }

  analy_st = ST_ANALYZE_HIGH;

  for(out_pos = 0, in_pos = 0; in_pos < in_file_size; in_pos++)
  {
    char c = in_file_buf[in_pos];

    switch(analy_st)
    {
    case ST_ANALYZE_HIGH:
      hi = hex(c);
      analy_st = ST_ANALYZE_LOW;
      break;
    case ST_ANALYZE_LOW:
      lo = hex(c);
      out_file_buf[out_pos] = (hi << 4) + lo;
      out_pos++;
      analy_st = ST_ANALYZE_DELIM;
      break;
    case ST_ANALYZE_DELIM:
      if(c == ' ' || c == '\n')
      {
        analy_st = ST_ANALYZE_HIGH;
      }
      break;
    default:
      break;
    }

  }

  out_fp = fopen(out_file_path, "wb");
  if(out_fp == NULL)
  {
    perror("fopen");
    goto ERROR;
  }

  write_bytes = fwrite(out_file_buf, 1, out_pos, out_fp);
  if(write_bytes != out_pos)
  {
    perror("fread");
    goto ERROR;
  }

ERROR:
  if(in_file_buf != NULL)
  {
    free(in_file_buf);
  }

  if(out_file_buf != NULL)
  {
    free(out_file_buf);
  }

  if(in_fp != NULL)
  {
    fclose(in_fp);
  }

  if(out_fp != NULL)
  {
    fclose(out_fp);
  }
}


int main(int ac, char** av)
{
  char* in_file_path;
  char* out_file_path;

  in_file_path = "asc2bin.txt";
  out_file_path = "asc2bin.bin";

  conv(in_file_path, out_file_path);  

  return 0;
}

2013-10-30 :-(

_ 午前

0530 起床

0830 出勤 && コード書いたり

0900 体調復旧してなかった || オロナミンCを飲んでごまかす

_ 午後

1300 コード書いたり

_

1700 退勤 || 以前やってたプロジェクトに居た協力会社のひとの送別会が本日開催されるんだが体調不良により欠席 || 達者で

1830 ぐったり

2100 飯


2013-10-31 :-(

_ 午前

0530 起床

0830 出勤 && コード書いたり

_ 午後

1300 コード書いたり

_

1740 退勤

1900 eclipseほげ

2100 飯。回鍋肉 豚肉じゃなくて鶏肉

_ eclipse に既存の Android プロジェクトを import する

bk

既存プロジェクトが以下にあるとする。

C:\home\rin\work\Android\Hello

File - Import - Android - Existing Android Code Into Worskspace

を選択して Root Directory に

C:\home\rin\work\Android\Hello

を選択すると怒られる。

C:\home\rin\work\Android\Hello overlaps the location of another project: 'Hello'

正しいのはこう

File - Import - General - Existing Project into Worskspace

Select root directory に以下を入力

C:\home\rin\work\Android\Hello

おk

ref. Eclipse Issue: ".. overlaps the location of another project .. " - Fledglings' nook

_ [関数ポインタ][Command][デザインパターン][Java]Java で Command パターン?

関数ポインタが無いから interface を作るのが定石らしいんだけど、マジすか。クラスが量産されるん?

動作未確認

public interface Command
{
  String command(String msg);
}

public class CommandA implements Command
{
  public String command(String msg)
  {
    return "CommandA";
  }
}

public class CommandB implements Command
{
  public String command(String msg)
  {
    return "CommandB";
  }
}


public class CommandC implements Command
{
  public String command(String msg)
  {
    return "CommandC";
  }
}

public static void main(String[] args)
{
  ArrayList list = new ArrayList();
  list.add(new CommandA());
  list.add(new CommandB());
  list.add(new CommandC());

  for (int i = 0; i < list.size(); i++)
  {
    System.out.println(list.get(i));
  }
}

ref. たぶんら - Javaで関数ポインタ

_ [艦これ]艦これ

蒼龍さんを改造。

主人公を改造