Main menu:

サーバ:

連続稼動中:
74日13時47分36秒

最高連続稼動記録:
167日3時59分6秒


リンク:

カテゴリー

アーカイブ

ntbackupをコマンドラインで使った際のはまりポイント

業務でntbackupを使ってLTOに書き込みを行ったので、はまりポイントをメモ書き。

1, .bksファイルはGUIを使って生成する必要がある。
 GUIで作成した.bksファイルには改行コード(種類は未調査)が含まれている。
メモ帳でひらくと一見、手打ちのテキストと変わらないが、普通にパスを書いただけではntbackupでは利用できない。
というわけでGUIで作成しておいた方が無難。



2, テープに追加書き込みする場合は次のオプションを付ける。
ntbackup /a /t テープ名
aオプションのあとにtオプション。
ここが微妙にわかり辛かった。




・以下、コマンド例。

::テープに追加する
ntbackup.exe backup “@C:\\test_job.bks” /j “sample_files” /a /t “backup_media” /m copy


::過去のバックアップを削除して上書きする(テープ指定)
ntbackup.exe backup “@C:\\test_job.bks” /j “sample_files” /t “backup_media” /n “backup_media” /m copy


::毎日上書き保存をする(テープをフォーマットしてから書き込む。テープをローテーションする際などに使う)
ntbackup.exe backup “@C:\\test_job.bks” /j “sample_files” /m copy /p “LTO Ultrium” /um



Windowsでファイル検索

Linuxのlocateコマンドのように、Windowsでファイル検索したい。
デフォルトの検索は遅すぎ。でもアプリは入れたくない。

というわけで、
まずコマンドプロンプトで以下のコマンドを実行する。

cd c:\
tree /f > tree.txt


しばらく待つと、c:\tree.txt ができる。ここにPC内の全ファイルの場所が記載されている。 
これをメモ帳で開いて検索すれば、とりあえずファイルの位置はわかる。

searchkeysのカスタム

FireFox拡張のsearchkeysで、リンクを新しいタブに開くようにする手順は以下の通り。

C:\Documents and Settings\user\Application Data\Mozilla\Firefox\Profiles\*******\extensions\{003dc6ae-2505-4639-be60-9132ac0d8814}\chrome\content\searchkeys.js

の、 function whereToOpen(e)  という関数で、

return “tab”;

とする。

app-engine-patch で django@gae しようとしてはまった事

まずGoogle App Engine SDK for Pythonを以下のディレクトリにインストールした。
C:\gae\py

デフォルトのパスから変更した。


しかしこの状態では、
./manage.py runserver
で、以下のエラー発生。
The Google App Engine SDK could not be found!
Visit http://code.google.com/p/app-engine-patch/ for installation instructions.


さっそく躓く。
環境変数に問題は無いのに、なぜ。



調べると、どうやらSDKのディレクトリの名前は google_appengine じゃなきゃダメらしい。
http://code.google.com/intl/ja/appengine/articles/app-engine-patch.html
>SDK フォルダの名前が google_appengine であることを確認してください。

というわけでSDKのディレクトリ名を変更。
C:\gae\google_appengine
環境変数のPATHにも C:\gae\google_appengine; を登録した。


これで問題なく動いた。
くだらない事に時間を使った。。。

キーボードからマウスポインタを動かす

◎概要:
できればキーボードで全作業をしたい。ホームポジションから離れたくない。
というわけでautohotkeyでマウスポインタを動かしてキーボードだけで生きていこう、という話。


奇抜に思えるけど、慣れると離れられなくなる。
スクリプトは以下の通り。


;【マウスの移動】
;Qキーをホットキーとするが、単独利用時は通常通り機能させる
q::send q
+q:: send Q

;マウスポインタの移動距離
LARGE=500
MIDDLE=150
SMALL:=15
MIN=3

;6, 7, 8, 9 で MIN の移動
q & 9::MouseMove, MIN, 0, 0, R
q & 6::MouseMove, -MIN, 0, 0, R
q & 7::MouseMove, 0, MIN, 0, R
q & 8::MouseMove, 0, -MIN, 0, R

;y, u, i, o で SMALL の移動
q & o::MouseMove, SMALL, 0, 0, R
q & y::MouseMove, -SMALL, 0, 0, R
q & u::MouseMove, 0, SMALL, 0, R
q & i::MouseMove, 0, -SMALL, 0, R

;h, j, k, l で MIDDLE の移動
q & l::MouseMove, MIDDLE, 0, 0, R
q & h::MouseMove, -MIDDLE, 0, 0, R
q & j::MouseMove, 0, MIDDLE, 0, R
q & k::MouseMove, 0, -MIDDLE, 0, R

;n, m, [,], [.] で LARGE の移動
q & .::MouseMove, LARGE, 0, 0, R
q & n::MouseMove, -LARGE, 0, 0, R
q & m::MouseMove, 0, LARGE, 0, R
q & ,::MouseMove, 0, -LARGE, 0, R

;小指の位置のキーでマウス左クリック
q & vkBAsc027::send {LButton}
q & p::send {LButton}
q & 0::send {LButton}

;小指+右に1つ移動した位置のキーで右クリック
q & '::send {RButton}
q & -::send {RButton}
q & [::send {RButton}

◎解説:

・ここでは「Q」キーをホットキーに使う。
理由は以下の2つ。
「多量の良ポジションのキーを消費するので専用のホットキーが欲しい」
「日本語なら使わないし、英語でもそれほど使わない」
あと個人的に「使っているHHKに余ってるキーが無い」という事情もある。
もちろん自分の好きなホットキーでOK。

・移動距離を4つの変数に格納しておく。単位はピクセル

・バインドはvi互換とする。
理由は以下のとおり。
「移動距離のレベルを段階的に分け易い。これはダイアモンドテーブルやemacsバインドでは難しい」
「QWERTYのホームポジションがベースなので指の移動コストが低い」
「すでにviバインドに慣れていれば学習コストが低い」

・左右のクリックも割り当てる。



※注意点:
・スクリプトはHHK Lite(英語版)のもので、環境によってキーのコードが異なる場合がある。
 キーの調べ方は、タスクトレイアイコンをダブルクリック →
 View > Key history and script info →
 調べたいキーを押してF5
・移動距離はディスプレイ等の環境によって使い勝手が異なる。使いながら微調整を重ねると吉。
・素直にマウスを使ったほうが良い場合もある。例:ドラッグ&ドロップなど。





マウスまで手を伸ばすのが億劫で、いろいろ試行錯誤した。
ThinkPadのトラックポイントに憧れてみたり、こんなのを買って散財してみたり。


でも結局この方法に落ち着いた。
とても変態的だけどやめられない。思考とコンピュータがシームレスに近づいた。俺はもうホームポジションから出ない。

amebaなうとtwitterのクロスポスト

アメーバなうPC版が前倒しで公開されてた。

ひとまず同時投稿のスクリプト作った。
http://amebanowitter.sot528.net/

↓これの流用。
http://mixwitter.sot528.net/

ちゃっと作ってさっさと飽きる。
TL取得もOAuthもSSLもめんどいから今回もパス。

SJC-P(310-055)を取った

SJC-P(310-055)に合格したので所感と対策のまとめ。

・所感
 ・人間コンパイラに徹する作業は苦痛。
 ・一般的じゃないコードが多い。
 ・不愉快な引っ掛けが多い。例)インデントがずれてる、条件式内で代入する等
 ・もうJava2SE6対応試験(310-065)が始まってるから、その話がwebに上がったり対応問題集が出るまで待つのが良いかも
 ・なんか全般的にうんざりする感じがしてイヤだった。


・対策
 ・  黒本をひたすら解く。これをやり込めばOK。
 ・ただ暗記するだけじゃなく、各選択肢がなぜ正解(不正解)なのか理解し、答えられるようにする。
 ・疑問に思った箇所はコードを書く。IDEは使わずコンソールから実行した方がいい。


・総括
 あー受かってよかった。苦労した。
 資格勉強とか、、、かけた時間と習得した技術のパフォーマンスが悪すぎる。苦痛だし。
 簡単なシステム一個作ったほうがよっぽど勉強になる。こっちのが楽しい。
 方向転換。好きなことをしよう。


マイナーだけど便利なキーボードショートカット

あまり知られてないけど便利なキーボードショートカットを3個ほど。

・Alt + Space
Windowsのエクスプローラで、左上に表示されているアイコン(faviconみたいなの)をクリックすると、コンテキストメニューが表示される。それを表示するためのショートカット。
これは地味だが便利で、例えばAlt+Space → x で最大化ができるし、
Alt+Space → n で最小化ができる。
ウィンドウ操作にいちいち右上の小さいボタンを押さずに済む、というわけだ。

・Ctrl + PageUp
FireFoxやMSExcelなど、タブのあるアプリケーションでタブを切り替える場合に使える。PageDownキーだと逆に移動する。
偏見だけど、タブがあるのにこのショートカットキーでタブ切り替えできないアプリは、たいていKYだと思う(例:IE)。その場合はCtrl + Tab で対応できる場合が多い。

・ファイルやフォルダの頭のアルファベット
例えば、

a_foo.txt

というファイルが作業中のディレクトリにある場合、a を押下する事でそのファイ
ルにフォーカスを合わせることができる。
また、

a_foo.txt
abc_bar.txt

のように複数同じアルファベットが該当する場合でも、abc と押下する事で目的のファイルに飛べる。

便利な使い方として、たとえばデスクトップのファイルやショートカットにキーボード用のタグを付けておく。

te_テキスト.txt
ph_写真.jpg
do_ワード文書.doc

こうしておくことで、
[Windws + D] → te
というコマンドでいつでも即座に「te_テキスト.txt」を開くことができる。
このショートカットはブラウザのお気に入り等にも使える。



他にもいくらでもありそうだけど、この3つは知らない人が多い割には便利。

webな人はJScriptが便利

客先でrubyやらphpを入れられない。
win環境で長いbatを書くのはイヤだ。
でもvbsは好きじゃない。

というわけでJScriptを使ってみた。

vbsよりもはるかに普及してないJScript。
じつに微妙な存在だけど、こいつはいかしてる。

・ECMAScriptの眷属。互換性あり。
・なので、ある程度JavaScriptの資産が生かせる。
・WSHなので、Win98以降なら無設定で動く。

たいがいvbsと同様の事ができる。
ADODB.Streamで文字コードを気にせずテキストを処理できるし、
正規表現だってバリバリだ。
Win環境でバッチ処理を書くならこいつで決まりだな。
PowerShellが当たり前になるまではこいつで過ごそう。


・例:FizzBuzz
以下コードをメモ帳に貼っつけて、拡張子を .js にして保存するだけ。

JAVASCRIPT:
  1. var res = "";
  2. for (i=1; i<=100; i++){
  3.     res += (i%15==0)?"FizzBuzz ":
  4.         (i%5==0)?"Fizz ":
  5.         (i%3==0)?"Buzz ":i+" ";
  6. }
  7. WScript.echo(res);

Accessについて

MS-Accessで帳票出力ツールを作成した。

当初の仕様はcsvひとつから簡単な帳票を出力するだけだったが、二転三転してcsv2つと十数個のxmlをパースして、社外へ提供する精密な書類を作成、という話になった。accessのファイルはサーバに置いてネットワーク経由で利用する。しかも途中から対応するAccessのバージョンが変更に。全部聞いてない。こんなんばっかりだ。

そんなツールをAccessで作成したまとめ。

○気づいた点
・Accessはあくまでスタンドアローン用DBMS
Accessはスタンドアローンで使うとして設計されている。C/Sシステムを作るべきではない。C/Sを求められたら別のソリューションを選択すべき。
ネットワーク越し利用するとパフォーマンス悪いし、DBMSとしての安定性が微妙。いいこと無い。

・帳票作成機能(レポート)は単純なものに限る
シンプルな帳票なら強力だが、デザイン性を求めると地獄にはまる。
あくまでシンプルな帳票作成機能と割り切るべきであって、少しでも凝った書類はAccessで作成すべきではない。
もし作成する必要があれば、レポートは使わずExcelのテンプレートに差込んだほうが幸せになれる。

・訳のわからないバグ(MS仕様)が多い
DBMSとしての機能、帳票作成ツールとしての機能、それぞれバグが多く、うんざりさせられる。
このあたりMS製品だなぁと感じる。もしかしたらすべて仕様なのかもしれない。



○評価
AccessはあくまでMS-Office製品であって「開発環境」や「デザインツール」ではない、という点をキッチリ把握しておきたい。
ネットワーク上でDBMSを使いたかったり、複雑な処理をしたり、きっちり帳票をデザインしたい場合は他を選択すべき。
非常に微妙な位置づけの製品であり、そこを見誤ると地獄を見るんだな、と思った。今回のように。
特に苦労したのはレポート周り。きつかった。
てっきりAccessは帳票に強いと思っていたら、期待はずれもいいとこ。微妙すぎた。

まあ、使い所をミスらなければ、Accessは魅力的なツール。簡単な帳票出力だけなら非常に強力。
好き嫌いはともかくvbaで何でもできるし、実に手軽。悪くない。



○Access利用時のtips
・小まめなバックアップ必須。頻繁に壊れるから。できればバージョン管理システムを導入したい。
・ファイルが肥大化してきたら最適化を実行。それでも改善しなければ、レポートやフォームで利用している画像のせいかもしれない。
・mdeが作成できない(accdeが作成できない)場合は以下を試してみる。
 >最適化
 >コマンドラインからdecompileオプションを付けて起動「・・・/msaccess.exe /decompile」
 >vbaコードをコンパイル(vbエディタのメニューから、 デバッグ > ***のコンパイル)
 >vbエディタのコードを全部閉じる。それで作成。