コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2009年12月2日 >>> 2009年11月19日
link もっと後

2009年12月1日

バージョンアップしたら劣化したよ

この間Kaspersky Internet Security 2009(以降KIS9)のライセンスが切れてしまったのでKaspersky Internet Security 2010(以降KIS10)を購入して使っているのですが不便な点が2つ。

不便な点その1は、勝手に始まるルートキットスキャン。

バックグラウンドで細々とスキャンしているようですが、突然重くなることもあります。困ったことに 1日に何度も「勝手に」起動し、キャンセル不可能、起動しない設定にすらできません。これはナンセンスです。

不便な点その2は、劣化したユーザインタフェース。特に「アプリケーションコントロールウインドウ」と「ファイアーウォールウインドウ」の2つ。


アプリケーションコントロールウインドウ

「アプリケーションコントロールウインドウ」はリストアイテムの複数選択ができなくなりました。は?それだけ?と思うかもしれませんが、使わないルールを削除するときにかなりイライラします。元々KIS9ではできていただけに残念です。


ファイアーウォールウインドウ、「文字化け」やら「不明」な設定がちらほら

「ファイアーウォールウインドウ」は複数選択は出来るものの、トップアイテムであるアプリケーションルールが削除できません(子アイテムである個別のネットワークルールは一部だけ削除可)。

実はKIS9から引き継いだルールが1/3くらい文字化けしてしまい、今も削除できずに残ったままなのです。上記をクリックして拡大していただくと分かります。これはあまりにもかっこ悪いです。

対策

その1のルートキットスキャンについては、レジストリをいじって止める方法を使って強制的に停止させています。

無理矢理スキャンを止めているので他の機能に影響が出るかもしれません。自己責任でどうぞ。

私の環境ではスキャンを止めてもGamepot rootkit(ラテールのゲームクライアント)を起動すると、隠しオブジェクトがある!と警告してきますので、恐らくリアルタイム保護は働いているであろうと推測して、そのまま使っています。

その2についてはどうしようもないですね…。Kasperskyは細々した設定を便利にできるところが良かったのに、その点KIS10はかなり残念になってしまいました。

何を細かいことをグダグダと…そんなに嫌なら買わなきゃ良いのに?というのもごもっともですが、Kasperskyは細かい設定を気にする人に需要があることを忘れて欲しくないです。

とにかく動けばいいと言う人、設定なんか全く見ない、全部デフォルトで放置しても何も気にならない人が、Kasperskyをわざわざ買って、インストールするはずがない。だってKIS10って、ウイルスバスター2010の2倍するんだよ?物好きしか買わないんだよ。

編集者:すずき(2009/12/01 23:14)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2009年11月29日

子供の頃の夢

社会人になってすっかり忘れていたのですが、子供の頃、ラジコンが欲しかったのです。特に車タイプと空飛ぶタイプが欲しかったのです。

車タイプは大学生の時に買いました。部屋の中でも遊べるくらいの小さいやつを買ったのですが、モーター音があまりにうるさくて近所迷惑だったのですぐ止めました…。

今日、ヘリコプターのラジコンを、しかも「室内用」と書いてあるラジコンを見つけたので思わず買ってしまいました。単三電池がたくさん必要と書いてあったので、充電式エボルタ8本と一緒にまとめ買いです。

いざ寮の廊下で飛ばしてみると、結構楽しいのですが、やはりモーター音がうるさくて、かなり近所迷惑な音がします。

寮の部屋でもやってみましたが、やはりうるさいのと、狭すぎてすぐに事故って全然楽しくありません。いったんぶつかると吹っ飛んで、ピンボールのようにあちこちにぶつかっります。今にも壊れそうです。

「空を自由に飛びたいな〜。」「えっ?何!?聞こえないよ!!」

飛行機もヘリコプターも、ものすごい音たてて飛んでいます。エンジン近くでは会話が不可能なほどの爆音です。

空を自由に飛ぶと言えば、ドラえもんに登場するタケコプターですが、作中では人間一人を軽々と持ち上げ、それでもかなりの加速力を発揮しています。

飛行機やヘリの騒音から想像するに、タケコプターの騒音も相当なもので、飛行中の会話なんて不可能ではないでしょうか?

でもドラえもんやのび太はタケコプターで飛行中でも、地上に居るときと同じように会話しています。未来の道具はとても静かなのでしょう、羨ましいですね…。

編集者:すずき(2010/07/30 23:14)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2009年11月22日

誕生日?焼き肉だろ!

同期の誕生祝いに焼き肉屋に行きました。

同期で誕生祝いをするときはケーキを買って行って、食事の最後に出すのですが、今回は焼き肉とケーキというヘビーすぎる組み合わせになりました。

店のチョイスからしておかしくね?というツッコミはその通りな気がしますが、こまけぇこたぁいいんだよ。みんな食ってたからいいんです。

編集者:すずき(2010/07/30 23:20)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2009年11月19日

経過日を年月日に変換 - その3

前回(2009年11月18日の日記参照)は経過日から年の計算を行いました。今回はそのテストを行います。

テストの方法

そもそもこの問題を解き始めた動機は、年月日から経過日への変換関数はあるけど、逆はないよね?でした。要するに世の中には年月日から経過日を計算する、信頼できる関数があるってことです。

テストの方法は下記の通り、
経過日 --(今回作成の関数)-> 年月日 --(実績ある関数)-> 経過日
として、同じ経過日が出てきたらOK、違っていたらNGです。

年月日から経過日(修正ユリウス日)への変換関数にはフリーゲルの公式を選択しました。

Wikipediaユリウス通日の項から引用)
グレゴリオ暦y年m月d日午前0時の修正ユリウス日は、x以下で最大の整数をfloor(x)で表すと、
floor(365.25 * y) + floor(y / 400) - floor(y / 100) + floor(30.59 * (m - 2)) + d - 678912

実装する関数の仕様は下記の通りです。

year
グレゴリオ歴の西暦を渡します。値域は1以上です。
month
グレゴリオ歴の月を渡します。値域は1〜12です。ただし1年の場合は3〜12です。
days
グレゴリオ歴の日を渡します。値域は1〜31です。グレゴリオ暦にない日(閏年でない年の2月29日など)を渡した場合はエラーになります。
mjd
修正ユリウス日を返します。値域は -678516(1年3月1日)以上 です。
返り値
成功ならば0を返します。エラーが起きた場合は -1を返します。

この処理をC言語で書くと下記のようになります。floatへのキャストがかなりウザいですが、気にしないでください…。

フリーゲルの公式、実装例

int cal_to_mjd(int year, int month, int day, int *mjd)
{
        int chk[] = {
                31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
        };
        int u, d;

        if (month < 1 || 12 < month ||
            day < 1 || 31 < day) {
                return -1;
        }
        if (year % 400 == 0) {
                u = 1;
        } else if (year % 100 == 0) {
                u = 0;
        } else if (year % 4 == 0) {
                u = 1;
        } else {
                u = 0;
        }
        if (chk[month - 1] + u < day) {
                return -1;
        }

        if (month == 1 || month == 2) {
                year -= 1;
                month += 12;
        }
        if (year < 1) {
                return -1;
        }

        d = (int)(
                floor(365.25 * (float)year) +
                floor((float)year / 400.0) +
                - floor((float)year / 100.0) +
                floor(30.59 * ((float)month - 2.0)) +
                (float)day - 678912.0 );

        if (mjd) {
                *mjd = d;
        }

        return 0;
}

テストを行う前に、私の作った関数とフリーゲルの公式が取る「引数の差」について考える必要があります。

引数私の作った関数フリーゲルの公式
経過日 400で割り切れる年(基準年とする)
の3月1日を0日とする経過日
修正ユリウス日
(1858年11月27日を0日とする経過日)
基準年からの経過年 西暦(グレゴリオ歴)
月(3月〜14月) 月(1月〜12月、グレゴリオ歴)
日(1日〜31日、グレゴリオ歴) 日(1日〜31日、グレゴリオ歴)

以上から、私の作った関数とフリーゲルの公式の引数では、経過日、年、月の3つが異なっています。まずはこの差を埋める補助関数を作ります。

引数の変換

経過日については、修正ユリウス日から適当な値(でたらめという意味ではありません)を引いて、3月1日を0とするような日に直してあげます。

基準とする日は400年で割り切れる年ならどこでも良いです。しかしグレゴリオ暦の採用年が1582年以降であることを考えると、そこ付近のグレゴリオ暦にはあまり意味がありません。1600年あたりを開始日とするのが妥当でしょう。

経過日0日が表す1600年3月1日の修正ユリウス日は -94493日です(フリーゲルの公式より、計算省略)。修正ユリウス日に94493を足せば経過日へ変換できます。

年については、経過日をグレゴリオ暦の1600年を基準としたので、結果に1600を足せばグレゴリオ暦の年に変換できます。

月については、3月〜12月まではそのまま、13月、14月を翌年の1月、2月と考えます。これで経過日、年月日ともにフリーゲルの公式と揃えることができました。

実装する関数の仕様は下記の通りです。

mjd
修正ユリウス日を渡します。値域は -94493(1600年3月1日)以上 です。
year
グレゴリオ歴の西暦を返します。値域は1600以上です。
month
グレゴリオ歴の月を返します。値域は1〜12です。
days
グレゴリオ歴の日を返します。値域は1〜31です。
返り値
成功ならば0を返します。エラーが起きた場合は -1を返します。

この処理をC言語で書くと下記のようになります。

修正ユリウス日からグレゴリオ歴への変換

int mjd_to_cal(int mjd, int *year, int *month, int *day)
{
        int base, date, y, m, d, mod;
        int result;

        base = 1600;
        date = mjd + 94493; //date 0 is 1600/3/1
        date += (1600 - base) / 400 * 146097; //date 0 is base/3/1

        result = date_to_year(date, &y, &mod);
        if (result == -1) {
                return result;
        }
        result = date_to_month(mod, &m, &d);
        if (result == -1) {
                return result;
        }

        y += base;
        if (m > 12) {
                y += 1;
                m -= 12;
        }

        if (year) {
                *year = y;
        }
        if (month) {
                *month = m;
        }
        if (day) {
                *day = d;
        }

        return 0;
}

上記で説明したこと以外に、mjd_to_cal関数では基準年を変更できるようになっています。base = 1200にすれば1200年3月1日以降の修正ユリウス日を扱えます。ただし負の数、0年には対応していないため、最小値は400年3月1日(base = 400)です。

テスト

きちんと変換できるか、異常値に対してエラーを返すかどうか、-94495(1600年3月1日の2日前)から944929(4446年1月2日)までの経過日を与えてテストします。

経過日から月日への変換、テスト関数
int main()
{
        int y, m, d, mjd;
        int f, result, i;
        int tmin, tmax;

        f = 0;
        tmin = -94495;
        tmax = 944930;
        for (i = tmin; i < tmax; i++) {
                result = mjd_to_cal(i, &y, &m, &d);
                if (result == -1) {
                        printf("mjd->date:%3d -> error\n", i);
                        continue;
                }
                result = cal_to_mjd(y, m, d, &mjd);
                if (result == -1) {
                        printf("date->mjd:%4d/%2d/%2d -> error\n", y, m, d);
                        continue;
                }
                if (i != mjd) {
                        printf("mismatch!!\n");
                        printf("mjd->date:%5d -> %4d/%2d/%2d\n", i, y, m, d);
                        printf("date->mjd:%4d/%2d/%2d -> %5d\n", y, m, d, mjd);
                        f = 1;
                }
        }
        if (f == 0) {
                printf("Test Passed, mjd [%d, %d]\n", tmin, tmax);
        }

        return 0;
}

実行結果は下記の通りです。

経過日から年月日への変換、テスト結果
mjd->date:-94495 -> error
mjd->date:-94494 -> error
Test Passed, mjd [-94495, 944930]

1600年3月1日より前の日付はエラーになり、それ以外はテストにパスしました。どうやら正しく変換できているようです。

残る課題

ネットで調べていたら、経過日から月日へ変換する際にループを回すのは遅くてナンセンスという記述を見つけてしまいました。な、なんだってぇー!?

高々12回、平均6回のループがそんなに遅いだろうか…?計算一発で出す方式を考えて、ループ方式と速度比較しようと思います。

編集者:すずき(2009/11/23 02:44)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2009年12月2日 >>> 2009年11月19日
link もっと後

管理用メニュー

link 記事を新規作成

<2009>
<<<12>>>
--12345
6789101112
13141516171819
20212223242526
2728293031--

最近のコメント5件

  • link 26年1月23日
    すずきさん (01/29 09:48)
    「おおー、そんな昔からなんですね。歴史感じ...」
  • link 26年1月23日
    hdkさん (01/27 19:53)
    「#! はUNIX v8からだったってWi...」
  • link 24年12月9日
    すずきさん (01/18 15:45)
    「Thank you for your i...」
  • link 24年12月9日
    Up2Uさん (01/15 12:57)
    「Hi I also find the p...」
  • link 25年12月18日
    すずきさん (12/23 23:51)
    「良く見たらksys_read()でfil...」

最近の記事20件

  • link 26年2月11日
    すずき (02/14 13:38)
    「[shebangの役割 - シェル側] 目次: Linux前回(2026年1月29日の日記参照)、スクリプトの先頭(例えばシェ...」
  • link 23年4月10日
    すずき (02/14 03:04)
    「[Linux - まとめリンク] 目次: Linuxカーネル、ドライバ関連。Linux kernel 2.4 for ARMが...」
  • link 23年5月15日
    すずき (02/09 22:27)
    「[車 - まとめリンク] 目次: 車三菱 FTO GPX '95の話。群馬県へのドライブ1群馬県へのドライブ2将来車を買い替え...」
  • link 26年2月8日
    すずき (02/09 22:27)
    「[車の修理……のはずが雪] 目次: 車以前(2025年11月21日の日記参照)、ジャガーさんの左前...」
  • link 26年2月9日
    すずき (02/09 22:10)
    「[SSLに対応 - Let's Encrypt] 目次: 自宅サーバー一昨年(2024年2月2日の日記参照)にJPRSドメイン...」
  • link 23年6月1日
    すずき (02/09 22:09)
    「[自宅サーバー - まとめリンク] 目次: 自宅サーバーこの日記システム、Wikiの話。カウンターをPerlからPHPに移植日...」
  • link 24年2月2日
    すずき (02/09 22:09)
    「[SSLに対応 - JPRSドメイン認証型SSL] 目次: 自宅サーバー今更感がありますが、このサイトもSSL対応にしました。...」
  • link 26年2月1日
    すずき (02/02 23:17)
    「[エンジン出力特性は三者三様] 目次: 車Automobile Catalogue(リンク)という素敵なサイトがありまして、各...」
  • link 21年5月7日
    すずき (02/02 19:31)
    「[LLVM - まとめリンク] 目次: LLVM一覧が欲しくなったので作りました。LLVMの本を買ったClangのmain関数...」
  • link 26年1月19日
    すずき (02/02 19:31)
    「[LLVMインストール] 目次: LLVMLLVMの公式サイト(リンク)にある手順そのものなんですけど、いつもググっていて面倒...」
  • link 26年1月29日
    すずき (02/02 19:22)
    「[shebangの役割 - カーネル側] 目次: Linux前回(2026年1月23日の日記参照)はshebang(ファイル先...」
  • link 26年1月23日
    すずき (01/27 02:47)
    「[shebangの役割] 目次: Linuxスクリプトの先頭(例えばシェルスクリプトなど)に書く"#!〜"から始まるおまじない...」
  • link 26年1月21日
    すずき (01/22 02:55)
    「[日本のテレビメーカーの衰退] ソニーがテレビ事業を分離するニュース(ソニーはなぜ、テレビ事業を「分離」するのか - 中国TC...」
  • link 25年12月26日
    すずき (12/30 14:01)
    「[Linuxのjournal操作メモ] 目次: Linux最近のLinuxディストリビューションはsystemdを採用している...」
  • link 25年12月22日
    すずき (12/28 23:39)
    「[ゲームを買ったら遊びましょう3] 目次: ゲーム前回の振り返り(2024年10月20日の日記参照)から1年経ちました。所持し...」
  • link 21年12月28日
    すずき (12/25 00:40)
    「[ゲーム - まとめリンク] 目次: ゲームNintendo DSを買ったパネルでポンDS最近の朝はパネポンDS聖剣伝説DSチ...」
  • link 08年3月25日
    すずき (12/24 22:16)
    「[シムシティDS2クリア] 目次: ゲームシムシティDS2のチャレンジモード「現代 温暖化」編をクリアして、スタッフロールを拝...」
  • link 25年12月10日
    すずき (12/24 01:02)
    「[LinuxからBIOS/UEFIの設定を取得する] 目次: Linux設定によって何か動作を変えたい、PC再起動するのが嫌な...」
  • link 25年12月16日
    すずき (12/24 00:47)
    「[initramfsの更新方法] 目次: Linuxいつも忘れてググっている気がするのでメモしておきます。Linuxカーネルを...」
  • link 16年3月2日
    すずき (12/24 00:37)
    「[Device Treeの謎] 目次: LinuxDevice Treeを使ってARM Linuxを起動したとき、どうやってコ...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 2025年
open/close 2026年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www2.katsuster.net
RDFファイル RSS 1.0

最終更新: 02/14 13:38