Macでバックスラッシュを入力する方法について

はじめに

Macperl プログラムを書いていて、バックスラッシュ(\)を入力していると思ったら円マーク(¥)だった。これでプログラムが思ったように動かないことがあるのでまとめてみた。
例えばファイルに出力する際、改行コードやタブを入れていたつもりが、ただの¥nや¥tと出力されてしまうことがある。原因としてはMacOSの仕様かと思われるが。

重要

この記事ではバックスラッシュと円マークの見分けをつけるためあえて全角で表現しています。

ショートカットキー

Option+¥でバックスラッシュが入力できる

ことえりの場合

環境設定でJISキーボードの¥キーで入力する文字をバックスラッシュに変更を選ぶと¥マークキーを押すと、バックスラッシュが入力されるようになる。

ATOKの場合

環境設定で設定できない。が、文字パレットを使用すれば入力できる。

  1. 文字パレットを開く
  2. [コード表]を選ぶ
  3. [体系]で"Unicode"を選びコードに005Cを入力。
  4. 確定でコンソールのあるところにバックスラッシュが入力される。

emacs の場合

emacs の場合 elisp で円マークを強制的にバックスラッシュに置き換えることが出来る。

(define-key global-map [?¥] [?\\])  ;; \の代わりにバックスラッシュを入力する

gtags 実行時に sort でエラーが表示される

gtags を実行したらこんな感じのエラーが出た

 [561] extracting tags of hoge.h
gtags: cannot open file 'hoge.ncb' in read mode.

sort: write failed: -: Invalid argument
sort: write failed: -: Invalid argument

てっきり、sort.exe の実行に問題があるのかと思ったが、実は違ってて ncb ファイルを開いているとエラーになる。
で、このファイルは VisualStudio の Intellisense ファイル。つまり VisualStudio を開いていると gtags で生成に失敗していたというオチ。VisualStudio を閉じたら何事もなかったように生成完了。よかったよかった。

via.

Emacs を SendTo から開く

目的

  • SendToから現在開いている emacs でファイルを開く
  • (理想)Emacsのプロセスがないときは emacs を起動して開く

init.d の編集

init.d に以下のコードを追加して保存

(server-start)

SendTo にEmacsのショートカットの追加を

追加先(Windows7)
C:\Users\(ユーザ名)\AppData\Roaming\Microsoft\Windows\SendTo
追加するショートカット
(Emacs インストールディレクトリ)\bin\emacsclientnw.exe
ショートカットの編集

ショートカットを追加したら起動引数を追加する。起動引数は[プロパティ]から設定。

(Emacs インストールディレクトリ)\bin\emacsclientnw.exe -n

これでできること

Emacs が起動していれば、ファイルを右クリックして、現在のemacs 上でファイルを開くことができる。ただし、Emacs が起動していないと Emacs が見つからないということでエラーになる。。。

ToDo

プロセスを探すbatでも書いてEmacs.exe のプロセスがあったら、emacsclientnw.exe で起動。なかったら、runemacs.exe で起動ってすればいけるかな??

Instagram の利用規約改正に想う

2012.12.21追記:Instagramが規約改正を撤回しました。
Instagramが規約変更を撤回、今後はユーザーへの説明を優先と宣言 - Engadget Japanese

最初は英語の勉強がてら規約の翻訳でもしてみようかと思ったが、改訂版の量があまりに多すぎたので挫折orz

正直騒ぎすぎかなーと。
元々写真は Instagram のものですよーというのは2010年頃の規約改定時点で言われたことなのでそこをいまさらぶーぶー言うのはいかがなものかと。

instagramに投稿した写真は規約上、大分権利放棄になるっぽい。 | fladdict

また Instagram も1企業なのでいくらユーザはタダとは言え利益がないとサービスが提供できないわけで。
インフラを確保し、ユーザを引き留めておくだけの提案をし開発する。開発するには当然人も必要なわけで。

そしてなにより、InstagramFacebook に買収されたので、 Facebook グループの1子会社。ってことを考えれば、Facebookとの広告連携は普通に考えられること。写真を使うと言うのも別に2010年時点でInstagramのものですよ−と言ってる時点でその親会社(Facebook)が使わせろと言うのもあり得る話。

タダで写真を提供する場と機能は提供するので、いっぱい写真撮ってね。
その代わりウチの宣伝や興味の引くような広告出すから。というネット業界の企業としてはふつーにありそうなことをやってるわけで、別にふつーじゃね?と思うわけです。

そのデメリットを理解した上で、使う使わないを判断するの個々人になるので、そこで使われなければ衰退することになりますけどね。

もう一つは日本人はどうしても海外のサービスに対する利用規約を見ると不利なんですよねー。まぁー利用規約なんて日本語でもまともに読もうとしないのに英語だっだら「あーはいはい、とりあえず流してOKすれば使えるんでしょっ」ってな感じになるのが大半の人で、理解して使い出すというの皆無なのも事実。

都合の悪いことを分かりづらくするのはどこも一緒かw

最後にこの反発具合でInstagramの規約が再度変わる可能性は無きにしも非ずなので、即退会!としてしまうのはもったいないかと思う。
1月16日(たぶんアメリカ時間0時)までメリット、デメリット判断した上で決断するのも悪くはないかと思います。

結論:タダより高いものはない

via.

sphinx-docxbuilder を Windows 上にインストールした

sphinxでWord(docx)を作りたいと思ったので、インストールしてみましたが、結構苦労しました。はまったところなどをまとめてみようと思います。

ライブラリのインストール

lxml

追記:lxml 2.2.8 を使えば、VC++のビルドしなくても使えるそうです。

ほとんど、id:hippu:20091103:1257259317 を参考にしています。lxml 自体は easy_install で終了ですが、 lxml をインストール時に依存するライブラリがあらかじめ入っている必要があります。以下が、必要です。

これらのバイナリが必要です。これらはここからダウンロードできます。落としたバイナリファイルは、適当なディレクト*2 に置きます。また環境変数 LIB と INCLUDE を設定します.例えば、C:\hoge に置いたとすると

set PATH=%PATH%;c:\hoge
set LIB=c:\hoge\lib
set INCLUDE=c:\hoge\include

となる。この設定をした状態で、easy_install を実行します。

easy_install lxml

この状態でエラーが出なければOKです。確認のためpythonを起動して、実行してみます。

from lxml import etree

なにも Error が出なければインストール完了です。Import Error が出た場合は、lxml をインストールしたディレクトリに先ほど置いたライブラリの dll を置きます。

sphinx-docbuilder をインストールする

  1. sphinx-docxbuilder のソースコードここからダウンロードします。
  2. ダウンロードしたら、sphinx のあるディレクトリに展開します。
  3. 各プロジェクトの conf.py の extensions に sphinx-docxbuilder を追加します。
extensions = ['sphinx-docxbuilder']
  1. 以下のコマンドを実行してみてテストをしてみます。これでドキュメントができていればOKです。
sphinx-build -b docx . _build/docx

トラブルシューティング

(あとで追加する)

*1:Express でも可

*2:pathの通ったディレクト

Team Web Access のダッシュボードに"一部の機能は表示されません"と出た場合の対処方法

TFS 2012 の Team Web Access でこんなメッセージが表示された時の対処方法

原因

Webアクセスの設定で標準が既定となっているため、一部の項目*1が表示されていない

対処方法

  1. ブラウザを立ち上げる
  2. 管理者アカウントで TFS の Webサイト*2にアクセス
  3. 右上の歯車をクリック
  4. 表示されたページにWebアクセスというタブがあるので選択(ない場合は、管理者としてサインインしなおす)
  5. フルのタブを選択し、ユーザを追加する。もしくは"既定のWebアクセスとして設定"を選ぶ

これによって表示されるようになります。てっきりMSDNのライセンスなのかと思いましたが、その辺の関係ではなさそう(嘘かもしれません(汗)

*1:Scrumテンプレートでは"バックログとスプリントの計画ツール"と"フィードバックの要求と管理"の項目

*2:例えば、http://example:8080/tfs/