自動メンテナンスのせいでWindows10が重くなる

最近のMicrosoft Windowsには、自動メンテナンスという機能がある。

状態は、以下のように見ればよい。

[スタートメニュー]を右クリック

[コントロールパネル]を開く

→[システムとセキュリティ]

→[セキュリティとメンテナンス]

メンテナンスを開く

何が起きるかというと、一日一度、怪しいメンテナンスタスクをWindows様が実行してくれるというものだ。デフォルトでは深夜3時にスリープを解除して実行するという動作になっていた。

この時間に電源が切れていたりすると、自動メンテナンスは次回起動後に実行される。問題は、この自動メンテナンスがHDDへのアクセスを占有するほど重いということである。

一週間に一度しか使わないPCなどでは悲惨なことが起こる。数時間にわたってPCの動作を実用的と言えないほど遅くする。いつまでも自動メンテナンスが実行できないと、累積してしまうようだ。

とりあえず、暇なときに手動で実行しておくことにする。そして、夜間PCの電源を切らないようにすればよい。

風邪で絶食したら体調が良くなった。

風邪で絶食したところ、体調が良くなった。最近、食生活があれていたが、絶食でリセットされたようだ。

インフルエンザ的な関節痛を伴う風邪だった。二日ほど何も食べることができず、絶食状態になった。

その後、食事量を少しずつ戻したら、かなり少なめで自分の身体が満足するということに気づいた。

飽食の時代、満腹感覚も空腹感覚も壊れ気味である。定期的な絶食は、健康にとってよいのかもしれない。

 

 

 

Androidの外部ストレージに殺意がわく

プライベートな場所

アプリケーションごとにプライベートな領域にデータを書くことができ、外部から見ることはできないし、アクセスすることもできない。

openFileOutput(FILENAME, Context.MODE_PRIVATE);

ファイルを見つけられなくなって途方に暮れるが、同じアプリの中から読み込むとたしかに読めることがわかる。

外部ストレージのアプリ別領域

getExternalFilesDir()

を実行すると、アプリ別に整理されたディレクトリが取得できる。

外部ストレージの実体は、もともとの想定はSDカードのような媒体だ。だが、最近のデバイスは、USBケーブルで端末をPCと接続するとUSBストレージクラスで(USBフラッシュメモリのように)PCにマウントされるようになっている。これらはいずれもAndroidでいうところの「外部ストレージ」である。

外部ストレージのアプリ別領域は、OSが勝手に決めている。現在の私の端末をWindowsPCにマウントしてみると以下の場所にファイルを見つけることができた。この場所に書けば、ほかのアプリケーションから見られたり、書かれたりすることはない。

\Android\data\*

外部ストレージのパブリック領域

getExternalStoragePublicDirectory()

で得られるディレクトリにファイルを保存すると、外部ストレージのうち、アプリに依存しない場所にデータを保存することができる。

チェック項目

外部ストレージを使いたいなら、Manifestに以下を書く。

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

 

 

 

FOSTEX100USB VolumeControllerを買ってみた。

ヤフオクで3400円送料込の中古だった。新品だとAmazonで4600円くらいで買える。

実は勘違いしていてうっかり買ってしまった製品である。てっきり、アンプ付きの製品だと思っていたのに、DACだけだった。アンプを作るべきかアンプ付きを買いなおすべきか途方に暮れた。とりあえず、昔から使っていたGatewayというかつてあった会社のPCにおまけでついていたスピーカーをこれに接続してみた。すこぶる良くなった。

音楽なんて聞かないどうでもよいPCで、Skypeやたまのオーディオ出力を耳にするだけだったが、実はそこにあったどんよりした不快感は思っていたより深刻なものだったということに気付かされた。スピーカーからでる雑音や、埋もれてしまった音というのは、知らない間に人間の心に打撃を与えているのだろう。はっきり聞こえるようになると、やかましさがおさまってとても楽になった。

また、手元に心地よいボリュームつまみがある状態というのがとてもよい。PCの設定をいじればよいといえばそれまでだが、心地よさが違う。音量は、気分によって変えられるべきものだということを知らされたアイテムだった。

 

AndroidSDK BluetoothChat exampleが動かない問題の解決法

AndroidSDKのBluetoothChatサンプルでBluetoothのSPP (Serial Port Profile)  接続を試してみた。

接続できない問題が起きる。これの解決策は、

SPP による通信をおこなう場合は、UUID に 00001101-0000-1000-8000-00805F9B34FB を指定すればよい。

最初に書かれているUUIDはGoogleが勝手に割り当てたユニークなIDになっている。BluetoothChat同士の通信の場合、アプリケーション同士のUUIDが一致していれば通信できる。
画面を回転すると接続が切れてしまう問題が起きる。これの解決策は、android:configChangesにscreenSizeを加えればよい。

以下のごとし。

<activity
android:name=”.MainActivity”
android:configChanges=”orientation|keyboardHidden|screenSize”
android:label=”@string/app_name”>
<intent-filter>
<action android:name=”android.intent.action.MAIN”/>
<category android:name=”android.intent.category.LAUNCHER”/>
</intent-filter>
</activity>

MFCでファイルの一覧を取得する

ディレクトリを走査してパス一覧を取得する。

// ファイルの文字列を取得
findAllFile(L”c:\\*.*”,pathList);

// ディレクトリのファイル名を全て取得する。
// rootName: 検索パスのルートディレクトリ
// pathList: パス一覧
// bRecursive: 再帰的にディレクトリを掘るか

void ::findAllFile(LPCTSTR rootName, CStringArray& pathList, BOOL bRecursive)
{
CFileFind finder;

if (finder.FindFile(rootName, 0))
{
int i = 1;
while (i)
{
i = finder.FindNextFile();

// 処理が長くなった時の為の対策。
MSG msg;
if (::PeekMessage(&msg, (HWND)NULL, 0, 0, PM_REMOVE))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}

// ファイル名が”.”か”..”の場合。
if (finder.IsDots())
continue;

// フォルダだった場合の再起呼び出し
if (finder.IsDirectory())
{
if (bRecursive) {
CString strFindFile = rootName;

strFindFile.Insert(strFindFile.ReverseFind(‘\\’) + 1,
finder.GetFileName() + _T(“\\”));

findAllFile(strFindFile, pathList, bRecursive);
continue;
}
else
continue;
}

// ファイル名の取得・設定
CString strFilePath = rootName;

strFilePath = strFilePath.Left(strFilePath.ReverseFind(‘\\’) + 1);
CString str = strFilePath + finder.GetFileName();
TRACE(_T(“%s\n”), str.GetBuffer()) ;

pathList.Add(str);
}
finder.Close();
}
}

MFC開発で、stringをLPCTSTRに変換する簡単な方法

str::stringを使って開発したコードをVisual C++のユニコード環境に移植しようとするとはまりがちなのが文字列の取り扱いだ。
マルチバイト文字列とUnicode文字列の意味をちゃんと理解して、取り扱いを腑に落ちるようにまとめてみようと思う。

“MFC開発で、stringをLPCTSTRに変換する簡単な方法” の続きを読む

急激に重くなったWindows10を軽くする解決方法

ある日、2017年1月11日の夕方だったと思う、私のWindows10の開発環境は強烈に重くなった。そして私は途方に暮れてしまった。これが解決したので報告する。

“急激に重くなったWindows10を軽くする解決方法” の続きを読む