iTunes画面がでない場合の対処法

iTunesを最小化して元に戻そうとしても、ウィンドウ(画面)がディスプレイに表示されなくなってしまうことがあります。

バージョン11からかと思いますが、そんな時の対処法をまとめます。

環境

そもそも

iTunesのウィンドウは、表示されていることになっていると思います。でも、下の画像のように、ディスプレイには表示されていないと思います。

極端に言えば、下の画像のような症状に近いと思います。

orz…。これじゃあ、停止できなくなっちゃって、電波ソング垂れ流しだおー。

対処法

ウィンドウを移動しましょう。

ウィンドウの移動

ウィンドウは、ウィンドウのメニューの[移動]を選択すると、カーソルキーやマウスで移動することができます。

手順

1.ウィンドウのメニューの[移動]を選択する

タスクバーのiTunesアイコンを、キーボードのShiftキーを押しながら、右クリックします。
そうすると、下の画面のようなメニューが表示されるので、[移動]をクリックします。

2.カーソルキー(十字キー)のどれかを押す

上下左右なんでもいいです。

3.マウスを動かす

ちょっと軽めに適当に動かしてください。

マウスカーソル(矢印)に合わせて、iTunesウィンドウが表示されているはずです。
ちょうどいい箇所で、クリックすれば終わりです。

暴走したノートンのサービスを停止させる

ノートンは、他のアンチウィルスソフトより軽いし、メジャーだから使っています。*1
そんなノートンのサービスが暴走し、重くなってしまった時のサービス停止方法をまとめます。

そもそも

通常は、暴走したプロセスはタスクマネージャから停止させます。しかし、Nortonのサービスについてはどうしてかそれができません。下手順にあるように、Norton製品の改変対策でできないんじゃないかなっと思います。

環境

ノートンのサービス

  • Symantec Service Framework
  • ccsvchst.exe
  • C:\Program Files (x86)\Norton AntiVirus\Engine\19.8.0.14

手順

f:id:kanaharu:20120825153159p:image
ノートンのダイアログを開きます。インジケーターが隠れていると思うので、表示させて、右クリックをして、「Norton AntiVirusを開く」をクリックします。


f:id:kanaharu:20120825153157p:image
ノートンのダイアログを表示させたら、設定をクリックします。


f:id:kanaharu:20120825153158p:image
ノートンの設定ダイアログで、上タブ[一般]をクリックし、右メニューの[製品セキュリティ]をクリックして、Norton製品の改変対策をオフにします。


f:id:kanaharu:20120825153715p:image
セキュリティ要求ダイアログは、とりあえず15分でいいでしょう。


次にタスクバー(ウインドウボタン横のバー)でアイコンがない部分を右クリックし、「タスク マネージャーの起動」でWindows タスクマネージャーを起動します


f:id:kanaharu:20120825154129p:image
[プロセス]タブで、[すべてのユーザーのプロセスを表示]ボタンをクリックします。


f:id:kanaharu:20120825154700p:image
ユーザー名がSYSTEM、イメージ名がccsvchst.exeを選択し、[プロセスの終了]ボタンをクリックします。
※これでノートンのサービスがすべて停止します。


スタートメニューから、Norton AntiVirusを起動します。

*1:他に軽くてメジャーな奴あったら教えてー

Hyper-VにCentOS6.2

CentOS6.2 x64Hyper-Vにインストールする方法をまとめます。といっても、自分メモ程度。次回自身がインストールするときに困らない程度にまとめます。

Before After

現在、kanaharu.comネットワーク内には、常時稼働なサーバーが2台あります

このうちAtomのhttpd鯖を、Windows2008のHyper-V内に移して、鯖を1台にまとめたい!というのが事の発端です。

Hyper-V設定

ネットワークな設定のみ注意する。あとはお好みでOK?
ネットワークの設定をする場合は、レガシーなネットワークアダプタではなく、通常のネットワークアダプタがよさげ。理由ははっきり言えないけど、結局Hyper-V統合サービスをインストールすること、自分の環境ではレガシーではない方でインターネットにアクセスできたことです。わざわざレガシーを使う必要はないと思うけど、レガシーじゃインターネットにアクセスできない理由ってなんだろう?

CentOSのインストール

簡単。クリックだけで済む。
ちなみに、かなはる的にはサービスだけのための鯖にXはいらないと思うので、X-Windowはインストールしません!

CentOSのセットアップ

1.Hyper-V統合サービスRPMを入れます
なぜか、オートマウントが利かないので(フルインストールで利くのかなあ?)、レガシーな方法でマウントします
mkdir /media/dvd
mount /dev/dev /media/dvd
cd /dvd/support/amd64/ja-jp/
./XXX.sh
umount /media/dvd/


2.ネットワーク設定
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-script
を設定する


3.ネットワーク再起動
/etc/rc.d/init.d/network restart


たぶん、こんな感じで上手くいくと思う

処理時間を計測する

ちょっと画像処理とかもやってみたいんだよね。
いくら正確に動作するプログラムが書けても、処理速度が使い物にならないほど遅くてはダメです。そんな時はプログラムを見直して最適化を図る訳ですが、改善前後の指標がないと意味がないです。*1この指標は、処理時間だったりCPUのクロックカウント数だったりします。

ということで、ちょっとプログラムを書いてみました。後者のCPUのクロックカウント数を調べる方で。

概要

処理時間をCPUのクロックカウント数から割り出すプログラム。

検証環境

Visual C++ 2010 Windows 7
GCC 4.7.0 Fedora17

TimeStampCounter.hpp

#ifndef __TIME_STAMP_COUNTER_HPP__
#define __TIME_STAMP_COUNTER_HPP__

class TimeStampCounter {
public:
    TimeStampCounter();
    void start();
    unsigned long long end();
private:
    unsigned long long time_;
};

#endif // __TIME_STAMP_COUNTER_HPP__

TimeStampCounter.cpp

#include <cstddef>
#include "TimeStampCounter.hpp"

const std::size_t AVE_TIMES = 100;

#ifdef _WIN32
#include <intrin.h>
int CPUInfo[4];
#else
#define RDTSC(X) \
    do { \
        __asm__ __volatile__ ("cpuid" : : : "rax", "rbx", "rcx", "rdx"); \
        __asm__ __volatile__ ( \
            "rdtsc\n\t" \
            "shlq       $32, %%rdx\n\t" \
            "orq        %%rdx, %%rax\n\t" \
            "movq       %%rax, %0" : "=g" (X) : : "rax", "rdx"); \
    } while (0)
#endif
static unsigned long long getTime() {
#ifdef _WIN32
    __cpuid(CPUInfo,1);
    return __rdtsc();
#else
    unsigned long long ret;
    RDTSC(ret);
    return ret;
#endif
}
TimeStampCounter::TimeStampCounter()
: time_(getTime()) {
}
void TimeStampCounter::start() {
    time_ = getTime();
}
unsigned long long TimeStampCounter::end() {
    unsigned long long now = getTime();
    return now > time_ ? now - time_ : 0;
}

CPUのクロック周波数計測

Sleepの精度とかはちょっと置いておいて、CPUのクロック周波数を調べたい場合は、1秒間スリープさせます。

#include <cstdio>
#include "TimeStampCounter.hpp"
#ifdef _WIN32
#include <Windows.h>
#pragma comment (lib, "TimeStampCounter.lib")
#else
#include <sys/unistd.h>
#endif

int main(int argc, char** argv) {
    TimeStampCounter counter;
    counter.start();
#ifdef _WIN32
    Sleep(1000);
#else
    sleep(1);
#endif
    unsigned long long hz = counter.end();
    printf("CPU frequency : %lld Hz\n", hz);
}

実行結果

f:id:kanaharu:20120714235438j:image
なかなかいい感じじゃないですか?

*1:多分速くなった気がするじゃダメ。ゼッタイ