トップ «前日 最新 翌日» 編集
RSS feed

ただのにっき


2001-06-18(月) [長年日記]

ノートPC

心の底ではC1には転びたくないと思っているので(アイデンティティの問題があるしさ)、L1に援軍があると嬉しい(笑)。やっぱ画面ですか。C1は縦480しかないもんね。

あと、たしかにNICは環境によって差し替えられる方がいいとも言える。自宅は有線、職場は無線、外ではBluetoothとかね。よしよし、L1気分が高まってきたぜ。これでSmartMediaスロットが憑いてれば即買いなんだが……。ネットワーク使用中にデジカメのデータを吸い出せないのはつらい。どっちかをUSBにしろということ?

でも、デジカメもSANYO DSC-MZ1がいい感じだしなぁ。ワイドレンジショットって、コントラストのキツい石像撮影にはうってつけ。そうなるとメディアもCFに変わるから、そんなところにこだわっていてはいかんっ。つーか、気にしないでとっとと買え >おれ

Mobiler

tDiaryが一息ついたので、Mobilerのバージョンアップにとりかかる。

ここ数日、ZnZさんにもらったJisCompactFilterを使ってみてるんだけど、特定の文字列で極端に遅くなり、メモリを食い尽くす現象が。無限ループかと思ったけどそうではなくて、データ構造に問題があるような……気がする。なにせ、アルゴリズムがよくわからない(笑)。人のコードが理解できないことほど悲しいことはないのぅ(泣)。

とりあえず全角/半角が頻繁に切り替わっている長めの文字列では、hが莫大な大きさになってしまって現実的ではないということはわかった(気がする)。改造方法を考察中。知恵熱出そう。

ちなみに、問題が出るのはこんなの(↓)である。出典はPC Watch

1MHz刻み)で設定できる。DIMM×4(最大512MB)、AGP×1、PCI×6、CNR×1、USB×4

替え歌

そういえば、アキバで5時なんてのもあった。ずいぶん前に作ったので固有名詞が古い。A-Masterなんて、もう誰も覚えちゃいまい。

本日のツッコミ(全3件) [ツッコミを入れる]
MoonWolf (2001-06-18(月) 19:38)

JISCompactの処理を書いてみました。

#!/usr/local/bin/ruby -Ke
module ISO_2022_JP
  K2A = {
    '♯' => '#',
    '、' => ',',
    '。' => '.',
  }
  A2K = {}
  ' !”#$%&’()*+,−./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|} ̄'.split(//).each_with_index do |ch,i|
    c = ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~'[i].chr
    A2K[c] = ch
    K2A[ch] = c
  end
  
  def min(kcode_string)
    #フェーズ1 文字列を半角に出来る部分と出来ない部分に分ける
    states = []
    tokens = []
    token = ''
    state = :ASCII
    kcode_string.scan(/./) {|ch|
      s = ch.size
      ascii = K2A[ch]
      case state
      when :ASCII
        if s==1
          token << ch
        else
          if ascii
            token << ascii
          else
            unless token.empty?
              states << state
              tokens << token
            end
            token = ch
            state = :JIS
          end
        end
      when :JIS
        if s==1
          unless token.empty?
            states << state
            tokens << token
          end
          token = ch
          state = :ASCII
        else
          if ascii
            unless token.empty?
              states << state
              tokens << token
            end
            token = ascii
            state = :ASCII
          else
            token << ch
          end
        end
      end
    }
    unless token.empty?
      states << state
      tokens << token
    end
    #フェーズ2
    last = states.size-1
    (0..last).each {|i|
      state = states[i]
      token = tokens[i]
      if state==:ASCII and i>0 and i<last
        if token.size<6
          kanji = ''
          token.each_byte {|b|
            kanji << A2K[b.chr]
          }
          tokens[i]=kanji
        end
      end
    }
    tokens.to_s
  end
  module_function :min
end

p ISO_2022_JP::min("1MHz刻み)で設定できる。DIMM×4(最大512MB)、AGP×1、PCI×6、CNR×1、USB×4")
p ISO_2022_JP::min("漢A漢")
p ISO_2022_JP::min("漢AA漢")
p ISO_2022_JP::min("漢AAA漢")
p ISO_2022_JP::min("漢AAAA漢")
p ISO_2022_JP::min("漢AAAAA漢")
p ISO_2022_JP::min("漢AAAAAA漢")

MoonWolf (2001-06-18(月) 20:42)

"token = ascii"は間違いです。
"token = ascii.dup"にしてください。

でんすけ (2001-06-18(月) 21:38)

今週末あたりに会社支給で新しいノートが貸与されますが、
Powerbook G4になりました(わら
ある程度自分で選んだことも原因だけどね。
携帯機はiPAQにLinuxいれて、それをメインにしたいな。


トップ «前日 最新 翌日» 編集
RSS feed