Hatena::ブログ(Diary)

:source myself

2011-08-13

WZR-HP-G300NHに接続できない現象が頻出するのでその対策

10:53

WZR-HP-G300NHという無線LANルーターを使っているのですが、これとの接続がうまくいかないときが多かったのでその対策を探してみました。Googleで検索しようとすると、うしろに不具合というのがサジェストされるので、不具合が多い機種だったのかもしれないです。

自分が参考にしたのはWZR-HP-G300NHでの不安定動作 - Almost in Dreamlikeで書いてあった「WPA/WPA2-Mixed TKIP+AESモードが不安定?」というところで、マルチSSIDをやめて一つのSSIDのみにするとWPA2-AESのみの選択ができるようになるので、これで今のところ快適に動いています。

2011-08-12

CoreTextをつかって使用可能なフォントの一覧を出力する

18:29

リファレンスを見ながらぽちぽち書いてみる。

CFStringを標準出力に出すには、いったんCStringとしての表現を取得した後にそれをprintfすればいい。それを普通にやってくれるのはCFStringGetCStringPtrで、CFStringCreateExternalRepresentationをつかっていったんCFDataにしてからやってもよい。後者の場合はヌル終端ではないので、printfを使うときに長さを指定しないといけない。

標準出力でなくてもよいのであれば、CFShowでだしてもよい。ただ、これは通常デバッグ用途らしい。(とリファレンスには書いてあった気がする。)

2011-04-26

コメント内にあるTODOとかBUGとかの文字を強調する

| 15:31

ソースコード内でそんなことを管理するのはアレという意見はごもっともですが.

これで(たぶん)すべての言語でコメントとなっている部分でそういった文字が強調表示されます.ミソはcontainedinのところで正規表現がつかえるところですね.ほとんどのシンタックスプラグインではコメントの部分を言語名+Commentというグループに割り当てて,そのあとhighlight linkをつかってCommentとかのグループにリンクさせているはずなので,これでだいたいうまくいきます.

というのをid:thincaさんに,Yokohama.vim#1の中でやってもらったんDA! ありがとうございます.

2010-06-07

欠けたコードの補完

20:26

「そうだ、これもひとつのコード。僕の中の可能性。今のコードではない、いろんなコードがあり得るんだ」

「そうだ、スパゲッティではないコードもあり得るんだ」

「そう思えば、このコードも決して悪いもんじゃないわ」

「このコードは悪くないかもしれない。でも、自分は自分の書いたコードが嫌いだ」

「コードを悪く嫌だと捉えているのは君の心だ」

「コードを真実に置き換えている君の心さ」

「コードを見る角度、置き換える場所、これらが少し違うだけでプログラム全体は大きく変わるわ」

「コードは人の数だけ存在する」

「だが、君のコードはひとつだ。狭量な世界観で作られ、自分を守る為に変更された仕様、歪められた真実さ」

「ま、人一人が書けるコードなんてちっぽけなもんや」

「だけど、人はその自分の書いたコードでしか自分を表現できないわ」

「与えられた他人の尺度でしか物事を見ようとしない」

「コメントは厚く」

Goto文は悪」

「と教えられたらそう思い込んでしまう」

Goto文だって良いときもあるのに」

「コメントひとつでまるで別のものになってしまう脆弱なものだ、人が書いたコードとはな」

「人間が書いたコードなんてその程度のものさ。だからこそより深いマクロを書きたくなるんだね」

「ただ、お前は自分のコードを書くことに慣れていないだけだ」

「だからそうやって人の顔色ばかりうかがう必要なんて、ないのよ」

「でも、みんな僕が書いたコードは嫌いじゃないのかな?」

「あんたバカぁ?あんたが一人でそう思い込んでるだけじゃないの」

「でも、僕は僕のコードが嫌いなんだ」

「自分が嫌いなコードを他人は好きに、信頼するようになれないわ」

「僕のコードは複雑で、読みにくくて、バグだらけで、意味不明で」

「コードがわかればリファクタリングできるでしょ」

「僕は僕のコードが嫌いだ」

「でも、好きになれるかもしれない」

「僕はコードを書いていてもいいのかもしれない」

「そうだ、僕のコードは僕のでしかない」

「僕のコードは僕のコードだ、僕のコードでいたい」

「僕はコードを書きたい」

「僕はコードを書いてもいいんだ」

2009-12-17

決定性有限オートマトン

| 11:07

普通にかけるもんだ.

(define (make-DFA K T t q0 F)
  (define (qf? q)
    (list? (memq q F)))

  (define (get-next q symb)
    (let ((symbtable (assq q t)))
      (if symbtable
          (let ((ret (assq symb (cdr symbtable))))
            (if (pair? ret)
                (cdr ret)
                #f))
          #f)))

  (define (proc lst q)
    (if (null? lst)
        (qf? q)
        (let ((next-q (get-next q (car lst))))
          (if next-q
              (proc (cdr lst) next-q)
              #f))))
  (lambda (str)
    (proc (string->list str) q0)))

(define M
  (make-DFA '(q0 q1) (list #\a #\b)
            (list (cons 'q0
                        (list (cons #\a 'q1)))
                  (cons 'q1
                        (list (cons #\b 'q0)))
                  )
            'q0
            (list 'q1)))

(print (M "aba"))