ポケモン&メガテン

買ってしまうと他のことが出来なくなってしまいそうなので、我慢している。

ProductName 真・女神転生 STRANGE JOURNEY(ストレンジ・ジャーニー)

アトラス / ¥ 6,279 (2009-10-08)
一時的に在庫切れですが、商品が入荷次第配送します。配送予定日がわかり次第Eメールにてお知らせします。商品の代金は発送時に請求いたします。

Technasia

そういえば2002のmetamorphoseはtechnasia目当てでいったのだけど、朝方だったので、疲れてテントで寝ながら聴いてたのであった。

ProductName Future Mix
Technasia
Hardware / ?円 ( )


個人的にはcode redの曲とか入ってるPLUSとかいうmix albumのほうが好き。

ROVO

2002年にふらっと行った(ふらっと行ける距離に住んでた)metamorphoseで衝撃を受けたのが、ROVOだった(あとhifana)。U隊長も衝撃を受けたようで、それから半年くらいは、ずっとROVOメインで聴いてたような(今はcalmみたいだけど)。

ProductName FLAGE
ROVO
ファースト・エイド・ネットワーク / ¥ 2,800 (2005-06-01)


ProductName TONIC2001

Tzadik / ¥ 2,940 (2002-05-02)


ProductName MON
ROVO
ファースト・エイド・ネットワーク / ¥ 3,000 (2004-11-10)


ProductName live at liquidroom 2001.5.16
ROVO
ユニヴァーサルIMS / ¥ 2,415 (2002-07-06)


できればライブで聴くのがよい。さらにはraveで。日本ランドの時は日が落ちたところにあのスペーシーさにやられたんだったけな。

Unix/Linuxプログラミング理論と実践 7章 (シグナル)

シグナル

ProductName Unix/Linuxプログラミング理論と実践
Bruce Molay
アスキー・メディアワークス / ¥ 6,090 ()
在庫あり。

#include <stdio.h>
#include <signal.h>

#define INPUTLEN 100

int main(int ac, char *av[])
{
  void inthandler(int);
  void quithandler(int);
  char input[INPUTLEN];
  int nchars;

  signal( SIGINT, inthandler );
  signal( SIGQUIT, quithandler );

  do {
    printf("\nType a message\n");
    nchars = read(0, input, (INPUTLEN-1));
    if ( nchars == -1 )
      perror("read returned an error");
    else {
      input[nchars] = '\0';
      printf("You typed: %s", input);
    }
  }
  while( strncmp( input , "quit" , 4 ) != 0 );
}

void inthandler(int s) 
{
  printf(" Received signal %d .. waiting\n", s );
  sleep(2);
  printf(" Leaving inthandler \n");
}

void quithandler(int s)
{
  printf(" Received signal %d .. waiting\n", s);
  sleep(3);
  printf(" Leaving quithandler \n");
}

実行してみる

Type a message
^C Received signal 2 .. waiting
^C^C^C Leaving inthandler 
 Received signal 2 .. waiting
 Leaving inthandler 

macbookでやってみると二番目のシグナルはブロックされて、三番目以降のシグナルは無視される。

Glitch: Perfet Imperfections

欲しい

ProductName Glitch: Designing Imperfection

Mark Batty Publisher / 2839円 ( 2009-09-16 )


TODO:Glitchのコードを少しやる

Luv Connection / Tei Towa

自分のitunes掘ってたらみつけた。

特にMAWのremixが好きだけど全部よいですな。

Unix/Linuxプログラミング理論と実践 7章 (インターバルタイマ)

interval timerを使うと定期的にシグナルを送れる。

ProductName Unix/Linuxプログラミング理論と実践
Bruce Molay
アスキー・メディアワークス / ¥ 6,090 ()
在庫あり。

#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <signal.h>

int main()
{
  void countdown(int);

  signal(SIGALRM, countdown);
  if ( set_ticker(50) == -1)
    perror("set_ticker");
  else
    while( 1 )
      pause();
  return 0;
}

void countdown(int signum)
{
  static int num = 10;
  printf("%d ..", num--);
  fflush(stdout);
  if ( num < 0 ){
    printf("DONE!\n");
    exit(0);
  }
}

int set_ticker( int n_msecs )
{
  struct itimerval new_timeset;
  long n_sec, n_usecs;

  n_sec = n_msecs / 1000;
  n_usecs = ( n_msecs % 1000 ) * 1000L;

  new_timeset.it_interval.tv_sec = n_sec;
  new_timeset.it_interval.tv_usec = n_usecs;

  new_timeset.it_value.tv_sec = n_sec;
  new_timeset.it_value.tv_usec = n_usecs;

  return setitimer(ITIMER_REAL, &new_timeset, NULL);
}

sleepは秒単位だけどusleep使えばmicrosecondで一時停止できる

Unix/Linuxプログラミング理論と実践 6章 (端末制御)

端末に関して、カノニカルモードとかノンブロッキングとか。あとシグナル処理。

ProductName Unix/Linuxプログラミング理論と実践
Bruce Molay
アスキー・メディアワークス / ¥ 6,090 ()
在庫あり。

端末を非カノニカル(cr)モードにするには

  • ICANONビットをオフにする
  • 制御文字バッファのVMIN要素に1をセット

ノンブロッキングモードにするには

  • O_NDELAYビットをONにする

Unix/Linuxプログラミング理論と実践 5章 (stty)

端末ドライバのプログラミング。

writeなんてコマンドがあるのか。

ProductName Unix/Linuxプログラミング理論と実践
Bruce Molay
アスキー・メディアワークス / ¥ 6,090 ()
在庫あり。

  • flagset |= MASK (bitをセット)
  • flagset &= ~MASK (bitをクリア)

ioctlシステムコールにはほとんど触れてない。