最近の変更サイトマップ

HGST HUH728080ALE604購入

リファービッシュのHGST HUH728080ALE604が安く出てたので買ったった。初ヘリウム封入HDDなんだぜ。ちなみに、タイミング良いと米尼で199ドルで売ってる。直送してくれないけど。今回のは国内購入でござる。

例によって簡単にベンチ。これまた例によってUSB 3.0接続なので参考程度に。

15628053167セクタを13時間37分でゼロフィルしたので、平均転送速度は155MB/sということに。ゼロフィル中、並行で他の作業をしていた点を差し引いてもMD05ACA800よりは遅いと言えそう。

Windowsインストール時にdiskpartで手動でパーティションを作る方法

いつごろからは知らんが少なくともWindows 10では、大規模更新時に回復パーティションの容量が不足していると、新たな回復パーティションを作るという大変お行儀の悪いことをしてくれやがる。だもんで、最近は手動でパーティションを切るようにしてるのだが、毎度やり方を忘れるのでメモ。

diskpartの起動

Windowsインストーラのパーティション設定画面でShift+F10を押すとコマンドプロンプトが開く。そこでdiskpartに入る。

パーティションの設定

GPT/UEFIで必要なパーティションと容量は下表の通り。

MS推奨

種類 ファイルシステム 容量 備考
ESP FAT32 従来100MiB、4kセクタの場合260MiB
MSR - 16MiB
Windows NTFS 最低20GiB Windowsのインストール先
回復 NTFS 最低300MiB、推奨1GiB

オレオレ構成

種類 ファイルシステム 容量 備考
ESP FAT32 512MiB 根拠:ESPの容量は512MiB以上が推奨らしい
MSR - 128MiB Windows 7ではこの容量だったので踏襲。後から足りなくなるよりはマシかと。
回復 NTFS 3072MiB 推奨容量×2+念のため1GiB
Windows NTFS 20GiB〜 パーティションを拡大・縮小する可能性があるので最後に配置

diskpartで設定

ディスクや容量は適宜読み替えてくだしあ。

GPTで初期化

select disk 0
clean
convert gpt

ESP

create partition efi size=512
format quick fs=fat32 label="System"
assign letter="S"

MSR

create partition msr size=128

回復

create partition primary
format quick fs=ntfs size=3072 label="Recovery tools"
assign letter="R"
set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
gpt attributes=0x8000000000000001

Windows

create partition primary
format quick fs=ntfs label="Windows"
assign letter="W"

list volume, list partitionで↓こんな感じになってればおk

パーティション情報のリロード

コマンドプロンプトをexitか右上のバッテンを押して終了後、パーティション設定ウィンドウの「最新の情報に更新」を押し、設定したパーティション情報を認識させる。

あとは通常通りWindowsをインストールする。

参考サイト

Excelアドインファイルの自分自身のフルパスを取得する

エクセルのVBAプロジェクトで、自身の.xlamファイルのフルパスを取得する方法。まずはコード。

' 自身のファイル名
Const kMyXlamFileName = "MyAddIn.xlam"
 
Private Function GetMyXlamFullPath()
    Dim proj As Object
    For Each proj In Application.VBE.VBProjects
        If InStr(proj.Filename, kMyXlamFileName) <> 0 Then
            GetMyAddInFullPath = proj.Filename
            Exit Function
        End If
    Next
    GetMyAddInFullPath = ""
End Function

ThisProject.Filepathみたいな感じで簡単に取れるかと思いきや、存在するVBProjectを全舐めする方法しか見つからなかった…(´・ω・`)。自身の名前をリテラルでコード内に持ってるのがイケてないが、もしxlamファイル名を変えたらExcelのアドイン設定をし直さなきゃならんので、そう易易と変えることは無いだろうってことで。

「実行時エラー'1004': プログラミングによるVisual Basicプロジェクトへのアクセスは信頼性に欠けます」エラーが出た場合は、Excelのファイル>オプション>セキュリティセンター>セキュリティセンターの設定から、マクロの設定>VBAプロジェクトオブジェクトモデルへのアクセスを信頼する、にチェックを入れるべし。

参考サイト

FreeBSD 10に入れたTomcat 7のタイムゾーン設定方法

何かの拍子に、Tomcat 7.0で動かしているサービスのタイムゾーンがUTCとして認識されるようになってしまった。マシンのRTCは昔からUTCで、OSのロケール≒タイムゾーンも以前からJSTで特に変更はしてないのだが…。

変わっちゃったもんは仕方ないんで、Tomcatのタイムゾーンを変更する方法を調べたところ、setenv.shでCATALINA_OPTS環境変数を弄ればいいらしい。setenv.shってどこにあんのよっていうと、/usr/local/apache-tomacat-7.0/bin/である。もっとも自分の環境(FreeBSD 10.3-RELEASE-p26/Tomcat 7.0.59)ではsetenv.shは無かったんだけど、startup.shを見るにsetenv.shがあれば読み込むように見えたので、新規で作ったら上手く行った。

setenv.shの中味は以下の通り。

export CATALINA_OPTS='-Duser.timezone=Asia/Tokyo'

あとはApacheとTomcatを再起動してやればおk。

MozJPEGのjpegtranによるJPEG圧縮最適化が凄い件

とても今更なんですけどね、Mozilla謹製JPEGライブラリ群の一部、jpegtranによるJPEG最適化の効果に驚愕しとるわけです。

PENTAX K-1を買ってからというものPCのストレージの減り方が半端なく、そりゃJPEG+RAWで撮ってれば1シャッターにつき60MB前後の容量を食うので当たり前なわけでありますが、冗談抜きで空き容量が逼迫しとるんですわ。1TBのSSDうち820GBをデータ用に割り当ててるのに、現時点で残り2.3GBですよ。使用量のうち8割が写真であるからして、白羽の矢が立ったのがMozJPEGというわけ。(RAWが一番容量食ってるってツッコミはなしなんだぜ。)

とりあえず急場凌ぎで、画像の品質には一切影響を与えないjpegtranで最適化してみたら、縮むこと縮むこと。元の画像サイズが大きいことも相まって、1枚あたり1MB弱ほど小さくなった。論より証拠ってなもんでスクショをご覧頂こう。

 jpegtranによるファイル容量削減結果

圧縮データの最適化、つまり無劣化でここまで縮むんだから大したもんですよ。もっとも、演算能力や処理時間の制約が厳しいデジカメで生成されたJPEGデータなので、最適化の余地が大きかろう点は考慮の必要があるだろうが…。

画像右端の「算術符号」ってのは、-arithmeticオプションで最適化した結果である。ハフマン符号最適化(-optimizeオプション)より更に小さくなっており、その効果には目を見張るばかりだが、哀しい哉、特許の関係で算術符号でエンコードされたJPEGに対応したソフトは皆無…。試した範囲では、MacOS X v10.9のプレビュー.app、Photoshop CC 2015.5、Firefox 58のいずれにおいても表示する事ができなかった。フォトショとLightroomで使えれば、手元のデジタル写真ライブラリの容量削減に大きく寄与するんだがなー。口惜しい…。

ついでに言うと、-optimizeより-arithmeticの方が処理時間が短かったりするのよね。軽くて縮むとかどんだけだよ。本当に口惜しい……。MacBook Pro (Late 2013)での処理時間は↓こんな感じ。

・-optimizeの時
real    3m35.907s
user    3m22.685s
sys     0m11.282s

・-arithmeticの時
real    3m12.291s
user    2m57.712s
sys     0m11.897s

-copy allオプションを付ければJPEGに含まれるメタデータは全て引き継がれる。少なくともexiftoolで比較した限りでは、元ファイルと最適化後のファイルでExifの相違はなかった。

個人的には元ファイルのタイムスタンプも継承したかったので、下記のようなシェルスクリプトで処理した。

#!/bin/sh
 
TARGETDIR="$1"
OUTDIR="$1/out"
FILES=`find "$TARGETDIR" -maxdepth 1 -type f -name '*.JPG'`
 
echo `pwd`
 
mkdir -p $OUTDIR
for file in $FILES; do
    echo $file
    CTIME=`GetFileInfo -d "$file"`
    MTIME=`GetFileInfo -m "$file"`
    OUTFILE="$OUTDIR/$file"
    jpegtran -optimize -progressive -copy all "$file" > "$OUTFILE"
    #jpegtran -arithmetic -progressive -arithmetic -copy all "$file" > "$OUTFILE"
    SetFile -d "$CTIME" "$OUTFILE"
    SetFile -m "$MTIME" "$OUTFILE"
done

ご覧の通り、エラー処理とか何も入れてないので、元ファイルが無関係のファイルが無くなってもしらにゃい(´・ω・`)。GetFileInfoとSetFileを使ってるのでXcodeを入れとく必要がある、つまりこのスクリプトはMac専用なんだぜ。

start.txt · 最終更新: 2016-05-07 17:46 by decomo
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0