Windowsでファイルのタイムスタンプを変更する

PowerShellでSet-ItemPropertyを実行する。

更新日時を変更する

> Set-ItemProperty "<ファイルのパス>" -Name LastWriteTime -Value "<日時>"

作成日時を変更する

> Set-ItemProperty "<ファイルのパス>" -Name CreationTime -Value "<日時>"

-Valueに指定する日時のフォーマットは、"2018/06/01 12:27:59" など、.NETで解析できる標準の日時文字列であればよいようだ。

Emacsでカーソル位置の文字コードを表示する

C-x = (M-x what-cursor-position)

ミニバッファに、カーソル位置の文字のUnicodeにおけるコードポイントが表示される。
例えば、Shift_JISのファイルの「あ」という文字にカーソルを置いて、C-x = すると、ミニバッファに以下が表示される。

Char: あ (12354, #o30102, #x3042, file ...) point=1 of 2 (0%) column=0

12354, #o30102, #x3042 の部分が、「あ」のUnicodeにおけるコードポイントの10進数、8進数、16進数表記となる。

C-u C-x = (M-x describe-char)

カーソル位置の文字の詳細情報を分割ウィンドウに表示する。
例えば、Shift_JISのファイルの「あ」という文字にカーソルを置いて、C-u C-x = すると、分割ウィンドウに以下が表示される。

             position: 1 of 2 (0%), column: 0
            character: あ (displayed as あ) (codepoint 12354, #o30102, #x3042)
    preferred charset: japanese-jisx0208 (JISX0208.1983/1990 Japanese Kanji: ISO-IR-87)
code point in charset: 0x2422
               script: kana
               syntax: w  which means: word
             category: .:Base, H:2-byte Hiragana, L:Left-to-right (strong), c:Chinese, h:Korean, j:\
Japanese, |:line breakable
             to input: type "C-x 8 RET 3042" or "C-x 8 RET HIRAGANA LETTER A"
          buffer code: #xE3 #x81 #x82
            file code: #x82 #xA0 (encoded by coding system japanese-shift-jis-dos)
              display: terminal code #xE3 #x81 #x82
  • code point in charset: 0x2422 が、文字集合JISX0208における「あ」のコードポイント、
  • buffer code: #xE3 #x81 #x82 が、バッファ(UTF-8)でのエンコーディング、
  • file code: #x82 #xA0 が、ファイル(Shift_JIS)でのエンコーディング

を表している。

CentOS6にRuby-2.5.0をインストール

CentOS6にRuby-2.5.0をソースからインストールしようとすると、makeでエラーが発生してインストールできない。
CentOS6のgccが古いためにエラーになっている。

$ ./configure --prefix=/opt/ruby-2.5.0 --disable-install-doc
$ make
...(略)
prelude.c: In function ‘prelude_eval’:
prelude.c:204: error: #pragma GCC diagnostic not allowed inside functions
prelude.c:205: error: #pragma GCC diagnostic not allowed inside functions
prelude.c:221: error: #pragma GCC diagnostic not allowed inside functions
トップレベル:
cc1: 警告: unrecognized command line option "-Wno-self-assign"
cc1: 警告: unrecognized command line option "-Wno-constant-logical-operand"
cc1: 警告: unrecognized command line option "-Wno-parentheses-equality"
cc1: 警告: unrecognized command line option "-Wno-tautological-compare"
make: *** [prelude.o] エラー 1

Bug #14234: Failed to build on CentOS 6.9 - Ruby trunk - Ruby Issue Tracking System

Ruby-2.5.1では修正されるようだが、とりあえずsclのdevtoolsetを使ってインストールできる。

CentOS6にsclのdevtoolsetをインストール

/etc/profile.dに以下のようなファイルを作成しておいてシステムを再起動すれば、システム起動時からsclでインストールしたdevtoolsetが有効になるので、passengerのインストールやCapistranoでビルドが必要なgemのインストールもOK。(下記はdevtoolset-4の場合の例)

$ cat /etc/profile.d/enabledevtoolset-4.sh
#!/bin/bash
source scl_source enable devtoolset-4