2014年2月2日日曜日

Windows8.1でハードリンクを設定する

以下のコマンドで設定可能。
> mklink /h <リンク先(既存のファイル)> <リンク元>

2013年12月21日土曜日

Windows8.1セットアップ時のメモ

Windows8.1の設定を自分仕様にするためのメモ。

基本的な方針は、

  • とにかく軽く
以上。(笑)

  • パフォーマンスを優先した設定にする
  1. コントロールパネルを開く(表示方法:小さなアイコン)
  2. 「システムとセキュリティ」->「システム」を選択
  3. 「システムの詳細設定」を選択 
  4. パフォーマンスの「設定(S)」を選択
  5. 「視覚効果」のタブで「パフォーマンスを優先する」を選択 
  • キーボードの設定
    1. コントロールパネルを開く(表示方法:小さなアイコン)
    2. 「キーボード」を選択
    3. 「表示までの待ち時間」を「短く(一番右側)」に設定
    4. 「表示間隔」を「速く(一番右側:デフォルト)」に設定
    5. 「カーソルの点滅速度」を「なし」に設定
    • テーマを変更(デフォルトは赤系なの青系に変更)
    1. コントロールパネルの「個人設定」を選択
    2. Windowsの標準テーマの「ラインと色」を選択
    • スライドショーの無効化
    1. コントロールパネルの「個人設定」を選択
    2. 「デスクトップの背景」を選択
    3. 「画像の場所」の「単色」を選択 
    4. 背景色を選択してスライドショー機能をOFFにする 
    • タスクバーを隠す
    1. タスクバーのプロパティを表示
    2. 「タスクバーを自動的に隠す」をチェック
    • サインイン時にデスクトップを表示
    1. タスクバーのプロパティを表示
    2. 「サインイン時または画面上のすべてのアプリを終了したときに、スタート画面ではなくデスクトップに移動する」をチェック 
    • ゴミ箱のプロパティ
    ※設定なし
    • Windows8.1ではデフォルトで「削除の確認メッセージを表示する」のチェックが外れている
    • CDなどの自動再生をOFFにする
    1. コントロールパネルを開く(表示方法:小さなアイコン)
    2. 「自動再生」を選択
    3. 「すべてのメディアとデバイスで自動再生を使う」のチェックをはずす
    4. 「保存」を選択 
    • 電源関連の設定
    コントロール パネル\すべてのコントロール パネル項目\電源オプション\プラン設定の編集
    ディスプレイを暗くする:15分
    ディスプレイの電源を切る:15分
    コンピュータをスリープ状態にする:30分
    1. 「詳細な電源設定の変更」を選択する
    2. 「詳細設定」タブを選択する
    • Windows Updateを実行する
    1. Windowsキー+Wを押す
    2. 「Windows Update」で検索し、「Windows Updateの設定」を選択
    3. 「今すぐチェック」を選択
    • Windows Security Essentialsをインストールする

    2013年11月3日日曜日

    Subverion1.8で作成したリポジトリを1.7用にダウングレードする

    JenkinsのSCMポーリングで失敗するため、Subverionを1.8から1.7に入れ替えた。
    その際、リポジトリがそのままでは使えなかったため、行った内容をメモしておく。

    もっとスマートな方法があるかもしれないが、今回はdumpコマンドを使って行った。

    まず、1.8で以下のコマンドを実行して、リポジトリ全体をファイルにダンプする。
    # svnadmin dump <リポジトリ> > <ダンプファイル>
    次に、1.7で以下のコマンドを実行して、ダンプしたリポジトリを復元する。
    # svnadmin create <新しいリポジトリ>
    # svnadmin load <新しいリポジトリ> < <ダンプファイル>

    JenkinsのSCMポーリングでエラーが出力される

    JenkinsでSCMのポーリングを設定したところ、以下のようなエラーが出る。
    ERROR: Failed to check repository revision for <リポジトリ>
    org.tmatesoft.svn.core.SVNException: svn: E210004: Number is larger than maximum
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
    at org.tmatesoft.svn.core.internal.io.svn.SVNReader.readItem(SVNReader.java:400)
    at org.tmatesoft.svn.core.internal.io.svn.SVNReader.readItem(SVNReader.java:456)
    at org.tmatesoft.svn.core.internal.io.svn.SVNReader.readItem(SVNReader.java:456)
    at org.tmatesoft.svn.core.internal.io.svn.SVNReader.readItem(SVNReader.java:456)
    at org.tmatesoft.svn.core.internal.io.svn.SVNReader.readItem(SVNReader.java:456)
    at org.tmatesoft.svn.core.internal.io.svn.SVNReader.readTuple(SVNReader.java:288)
    at org.tmatesoft.svn.core.internal.io.svn.SVNReader.parse(SVNReader.java:241)
    at org.tmatesoft.svn.core.internal.io.svn.SVNConnection.read(SVNConnection.java:272)
    at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.read(SVNRepositoryImpl.java:1290)
    at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.info(SVNRepositoryImpl.java:1203)
    at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteGetInfo.run(SvnRemoteGetInfo.java:65)
    at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteGetInfo.run(SvnRemoteGetInfo.java:31)
    at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
    at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1235)
    at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:291)
    at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:2461)
    at hudson.scm.SubversionSCM.parseSvnInfo(SubversionSCM.java:1122)
    at hudson.scm.CompareAgainstBaselineCallable.call(CompareAgainstBaselineCallable.java:71)
    at hudson.scm.CompareAgainstBaselineCallable.call(CompareAgainstBaselineCallable.java:26)
    at hudson.remoting.LocalChannel.call(LocalChannel.java:45)
    at hudson.scm.SubversionSCM.compareRemoteRevisionWith(SubversionSCM.java:1278)
    at hudson.scm.SCM._compareRemoteRevisionWith(SCM.java:356)
    at hudson.scm.SCM.poll(SCM.java:373)
    at hudson.model.AbstractProject._poll(AbstractProject.java:1548)
    at hudson.model.AbstractProject.poll(AbstractProject.java:1473)
    at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:439)
    at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:468)
    at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:118)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:679)
    Caused by: svn: E210004: Number is larger than maximum
    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208)
    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:154)
    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:97)
    at org.tmatesoft.svn.core.internal.io.svn.SVNReader.readItem(SVNReader.java:399)
    ... 33 more
    Done. Took 1 sec
    No changes
    以下のサイトに同様の現象が報告されていた。
    https://issues.jenkins-ci.org/browse/JENKINS-18844

    どうもSubversion 1.8を使っていることが関連しているらしい。
    現状は1.8を使わなければいけない理由はないため、1.7にダウングレードしてみる。

    その結果、正常にポーリングができた。
    Subversionのポーリングログ
    Started on Nov 3, 2013 8:31:46 PM
    Received SCM poll call on  for MediaCollect on Nov 3, 2013 8:31:46 PM
    <リポジトリ> is at revision 14
    Done. Took 0.2 sec
    No changes

    Tera Termから公開鍵を使ってパスワード入力なしでSSHログインする

    Tera TermはVer.4.79を使用した。

    まずは、秘密鍵と公開鍵を作成する。
    Tera Termのメニューから「設定」->「SSH鍵生成」を選択。
    設定はデフォルトの
    鍵の種別:RSA
    ビット数:2048
    で「生成」を選択する。
    「公開鍵の保存」と「秘密鍵の保存」でそれぞれ生成した鍵を保存する。
    秘密鍵の保存ではパスフレーズなしでよいかと確認が出るのでOKを選択する。

    生成した「公開鍵」をログイン先のホストに転送する。
    転送したら、.sshフォルダに「authorized_keys」というファイル名で保存する。
    以下のパーミッションを変更する。
    %chmod 600 .ssh/authorized_keys
    Tera Termのメニューから「設定」->「SSH認証」を選択する。
    『「RSA/DSA」鍵を使う』の「秘密鍵」を選択肢、さきほど生成した秘密鍵を選択する。
    「設定」->「設定の保存」でこれまでの設定を保存する。

    あとはTera Termでログインするときにパスフレーズを入力しないでも「OK」を選択すればログインできるようになる。

    <補足>
    パスワードなしでログインできるようになったら、Tera Termを起動直後にログインしてほしくなる(かも)。
    コマンドラインから以下のオプションをつけて起動することでそれが可能になる。
    > ttermpro.exe <ログイン先のホスト名> /auth=publickey /keyfile=<生成した秘密鍵>
    ショートカットの設定に記載してもOK。

    FreeBSDでファイルの文字コードを調べる

    「nkf」インストールする。
    # pkg_add -r ja-nkf
    以下のオプションを指定して実行すると文字コードを確認できる。
    % nkf -g <ファイル名>
    以下のオプションを指定すると文字コードと改行コードを確認できる。
    % nkf --guess <ファイル名> 
    参考サイト
    http://www.atmarkit.co.jp/flinux/rensai/linuxtips/980nkfguess.html

    補足
    ファイルの文字コードを上書きでUTF-8(BOMなし)に変更する。
    % nkf -w --overwrite <ファイル>

    Vim Tips

    Vimのスクリプトを実行する
    :source <スクリプト名>