Windowsで印刷ログを眺める

プリンタから、総合の印刷枚数とかはわかるんだけど、「あれ?今のジョブ何部印刷させたっけ?」とかいう事が起こった時に困る。

 

プリンタにそういう機能はなさそうなので、Windowsの機能でなんとかしよう。(なんとかならなかったんだけどね)

 

コントロールパネル→管理ツール→イベントビューアー→アプリケーションとサービスログ→Microsoft→Windows→PrintService→Operational

という感じで辿っていくと、印刷ログが有効化されていれば、そこにログがずらっと出てくるはず。なお有効になる前のログは見えないようなので、今回の用途では無理でした。

有効化自体は右ペインの「ログの有効化」から出来る。

 

Windows10あたりではWindows+Iで呼び出せる設定画面があるけど、これの機能が不十分なので、普通にコンパネをさらっと呼び出せるようにして欲しい(マジで)。

Windows+R→controlで起動出来るけど、ワンタッチの方が速いもんな。

QWebViewを継承したクラスにPromoteしたい

Qtで用意されてるクラスを継承したクラスを自分で作ったとして、ただコードの上で使うだけならいいけど、Qt Designerでそれを使いたい場合には、Promoteという操作をする。

Promoteする時に、てきとうに所定の操作をすればいいんだけど、QWebViewを継承したクラスにPromoteできなかった。

どういう理由で出来ないのか、実は出来るのかよくわからないけど、ひとまず目的のPromoteだけ出来るようにするお話。

 

目的の.uiファイルをテキストエディタで開いて、以下のような記述を<customwidgets>内に追加する。

<customwidget>
<class>class_name</class>
<extends>baseclass_name</extends>
<header>class_name.h</header>
</customwidget>

これを保存して、Qt Designerの方で再読込すると、Promote to…の選択肢が増えていると思うので、後はそのように。

headerを指定するところにこう書くので、既存のヘッダとかに追加でクラス宣言するより、新しいファイル作ってクラス宣言したほうがいいかも?

 

ま、その後うまくいってないので、本当にこれでいいのかは謎なんだけど。

Easeus Partition Masterいれたらクリーンアップと最適化みたいなのがウザい

パーティションいじりたいだけで、クリーンアップも最適化もやりたくはないんだよ

でも勝手に起動してウザいのだ。

 

というわけで自動起動を止める。

 

スタートアップかと思ったら入ってない。調べたらレジストリに入ってるらしい。

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run

該当するものが入ってるはずなので削除。いぇーい。

x265guiExで出力してmuxしてくれなかった時

x265guiExで出力していて、なんだか最後にmuxしてくれない状況に遭遇した。

理由はよくわかんないけど、だからってエンコードし直すのも勿体無いよなぁと思ったので、自分でmuxしてやれば良いのだ。

 

265ファイルとm4aファイルがある状態で、muxerを実行する。ffmpeg同様引数として入力ファイルを指定するんだけど、265ファイルのところでfpsを指定しないと時間ズレがめちゃくちゃ大きくなってしまっていた。

fpsの指定は整数か、整数/整数の形で表現する。29.97あたりになっているけど、29とか30だと時間が経つにつれどんどんズレていくので、30000/1001にした。

aviutl100\exe_files\muxer_r1394 -i "C:\path\to\m2v"?fps=30000/1001 -i "C:\path\to\m4a" -o "C:\path\to\output.mp4"
MP4 muxing mode
[HEVC: Info]: IDR: 1, CRA: 350, BLA: 0, I: 31, P: 11028, B: 32644, Unknown: 0
Track 1: H.265 High Efficiency Video Coding
Track 2: MPEG-4 Audio
Muxing completed!

こんな感じでうまくいきました。再エンコードしなくて済んでよかったよかった。

Qtでウィンドウを消しにくくウザい感じにする

・ウィンドウ枠を消す(終了ボタン見えなくする)
・タスクバーに表示させない
・最前面表示

くらいでもうだいぶウザい。結局Alt+F4とかで終了できるしいいんだけど、パソコン使い慣れてない人に対して、行動を遮ってまで訴えたい何かがあるっていうシチュエーションだったので、こういう感じに。

それぞれ、Qt::FramelessWindowHint, Qt::Tool, Qt::WindowStaysOnTopHintを指定する。実際にはこんな感じ。

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent, Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint| Qt::Tool),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
~略~

これでもうだいぶウザいのに、show()でなくshowFullScreen()で呼び出しちゃったりするともうそれはそれはウザい事に。

今回はウザい状態にしたくてやってるからこれでおk。

まぁ色々便利に使えそうではあるよね。

UbuntuでSSDをSecureEraseする

RAID環境にArchLinuxのインストール

順番が前後したけど、これやる前に、SSDをSecureEraseしたんですよね。で、まぁSecureEraseってやる度にどうやるのかわかんなくて、ふわふわ調べてやってて、毎度困り果てながら最終的になんとか遂行するみたいな状態。

困るのはたいてい、

・SecureEraseするためのソフトウェアが起動しない

・Not frozenに出来ない

のところ。Parted Magicが起動しないとかHDDErase起動するためのDOS環境が作れないとか、クッソ面倒に生きてた。クッソ面倒なんで結論だけ。

 

Core i7 870 + ASRock P67 Transformer構成で、Ubuntu 14.04.3をUSBメモリから起動して、terminalからhdparmコマンドを使った。

 

hdparm -I /dev/sdaみたいな感じで状態を確認する。最後の方にある「not enabled」と「frozen」をそれぞれいじる。まずはfrozenを解除。

これはもういつものやつ。SATAケーブルなり電源ケーブルなりを抜き差しする。いつものやつっていうかこれ毎度毎度めちゃくちゃこえーんだよな。

あと# echo -n mem > /sys/power/stateでPCをスタンバイに入れて復帰っていう手もあるみたい。

もう一度hdparm -I /dev/sdaで見ると、うまく行ってれば「not frozen」になっているはず。

次にディスクにパスワードを設定する(SecureEraseを実行すると解除されるものなのでてきとうに決める)。ただしパスワード設定したまま再起動等するとディスクアクセス出来なくなる模様なので以下のように解除する。master passwordはList of hard disk ata master passwords – I SEE 0XDEAD DISKSあたりを参考に。

//パスワードの設定
# hdparm --user-master u --security-set-pass PASSWORD /dev/sda

//master passwordによるパスワードの解除
# hdparm --user-master m --security-unlock MASTER_PASSWORD /dev/sda
# hdparm --user-master m --security-disable MASTER_PASSWORD /dev/sda

うまく設定できると、hdparm -I /dev/sdaの出力が変化して「enabled」になる。

 

つまり、not enabledがenabledになっている事、frozenがnot frozenになっている事を確認した後、SecureEraseを実行する。

# hdparm --user-master u --security-erase PASSWORD /dev/sda

ちなみにhdparm -I /dev/sdaの出力にsupported: enhanced eraseがある場合、Enhanced SecureEraseが可能なので、–security-erase-enhancedみたいな感じに差し替えてみよう。

最終的にまたhdparm -I /dev/sdaの出力が「not enabled」に戻っていることを確認して作業完了。

RAID環境にArchLinuxのインストール

普通にArchLinuxをインストールしようと思うと、「真面目にパーティション切らなきゃなぁ…」「そのためにどういう構成にするのか検討しないと…」とか思うのでまぁ問題ないといえば問題ない。

しかし例えばAntergosを使う場合には、cnchiというグラフィカルで大変簡単なインストーラがついてくる。これだとウィザードに従ってぽいぽい進めていけば、それだけでインストールが完了してしまうとかいう状況。

ArchLinuxを使いたいけどInstallBattleは面倒だなという場合には、大変重宝するのだけど、細かいことを意識しないまま作業を進められてしまうので、困ることもある。

というわけで、今回はそういうお話。

 

ちなみに構成はCore i7 870 + ASRock P67 Transformerに16GBくらいRAM載せてGTX750Tiぶっさした感じ(元メインマシン)。ここにCrucial C300 64GBを2つのせて、マザーボードで
RAID組んでる。OSから見たらただの1つのストレージデバイスに見えていると思い込んでいた(OSよりも下のレイヤーとして独立していると思い込んでいた)のが失敗で、実際にはOSに「ここでこんな感じでアレイ組んでますよー」と教えてあげる必要があったみたい。

RAID環境にインストールする場合、mdadmに何か喋らせたりしないといけないみたいなんだけど、全然意識しないままインストール作業終わらせちゃって、インストールも出来てブートローダも起動するけどなんだか見つけてくれない状態。具体的にはこんな感じ。

starting version 230
ERROR: resume: hibernation device ‘UUID=xxxx’ not found
ERROR: device ‘UUID=xxxx’ not found. skipping fsck.
ERROR: Unable to find root device ‘UUID=xxxx’.
You are being dropped to a recovery shell
Type ‘exit’ to try and continue booting
sh: can’t access tty: job control turned off
[rootfs ]# _

はい、完全にストレージを見失っております。

 

必ずインストールのときにパーティション構成を理解しておく。サイズから予想することも出来なくもないけど。今回は、

/dev/md126p1→/boot
/dev/md126p2→/
/dev/md126p5→swap

という構成(RAMが16GBもあるしswap不要じゃない?というのはAntergosのcnchiに言ってくれ)。

さて、AntergosのLiveCDから起動(今回はUSBメモリ使ったけど別になんでもいい、とにかくArchLinuxのLive環境が起き上がればそれで十分)して作業する。

RAIDにArchLinuxをインストール – RAID – ArchWikiをパクるだけ。

まずストレージのマウントを済ませる。(まだarch-chrootしてはいけない)

# mount /dev/md126p2 /mnt
# mount /dev/md126p1 /mnt/boot

mdadm.confを更新する。その後一応もくろみ通りの状態になっているか確認する。

# mdadm --detail --scan >> /mnt/etc/mdadm.conf
# vi /mnt/etc/mdadm.conf

chrootしてmdadmフックをmkinitcpio.confに追加する

# arch-chroot /mnt
# vi /etc/mkinitcpio.conf
HOOKS="base udev autodetect modconf block mdadm_udev keyboard keymap resume filesystems fsck"
# mkinitcpio -p linux

ArchWikiのブートローダーの設定の項目はやらなくても起動しました。

 

あとどうでもいいけどママンにのっかってるNICが死んでて全然繋がらなくて2時間くらい悩んだ。以前ママンのNIC死んだからって追加でNIC放り込んでたのすっかり忘れてたぜ