2017/09/22

LaTeXのフォント埋め込みのトラブル

LaTeXで,フォントをヒラギノに変更しようと思ったら,以前はうまく行ったのに変更できない.

Could not locate a virtual/physical font for TFM "rml".
This font is mapped to a physical font "HiraginoSerif-W3.ttc".

のようなメッセージが出る.

調べてもよくわからないので,texlive 2015を一旦削除して,以下のサイトに従い2017をインストールしたら問題なく動いた.

https://texwiki.texjp.org/?TeX%20Live%2FMac


下記のコマンドを打てば埋め込みフォントが変更できる.

ヒラギノの場合
sudo updmap-sys --setoption jaEmbed hiragino-elcapitan-pron

IPAの場合
sudo updmap-sys --setoption jaEmbed ipa

2017/08/06

Mac で mtr 0.87 以降を使う

mtrはtracerouteとpingを合わせたような便利ツール.
Macでmtrを使おうと思い,brewでインストールした.

ところが


sudo /usr/local/sbin/mtr

としてみても下記のようなエラー.

mtr: Failure to start mtr-packet: Invalid argument

以下のページを参考に,


https://github.com/traviscross/mtr/issues/204

/usr/local/sbin/ にパスを通したらうまくいった.

export PATH=$PATH:/usr/local/sbin/

0.87 以降ではパスが通っていないとダメらしい.

2017/05/08

CUIテキストブラウザでDigest認証が通らなかったから代わりにwgetを使ったらうまくいった

CUIテキストブラウザでDigest認証が通らなかったから代わりにwgetを使ったらうまくいった.

sshを通してCUIからウェブサイトを見たいと思ったときに,lynxなどのテキストブラウザを使うと簡単に見れて良い.
ただ,lynxはBasic認証は対応しているものの,Digest認証は対応していないっぽい.
色々考えたところ,wgetを使って下記のようにすれば,簡単に認証付きページの中身を覗ける(ダウンロードする).

wget --user=<ユーザ名> --password=<パスワード> "https://example.com"

本当はポートフォワーディングとかすればいいんだけど,面倒なので時間があるときにやりたい.

2017/05/05

MeCabのipa辞書に新語などを追加した mecab-ipadic-neologd がいい感じ.

MeCabのipa辞書に新語などを追加した mecab-ipadic-neologd がいい感じ.

インストール方法.

brew install mecab mecab-ipadic git curl xz
git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
cd mecab-ipadic-neologd; ./bin/install-mecab-ipadic-neologd -n


更新方法
cloneしたフォルダで下記コマンドを実行

sudo ./bin/install-mecab-ipadic-neologd -n


使い方.

mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd


使用前.
東京都
東京 名詞,固有名詞,地域,一般,*,*,東京,トウキョウ,トーキョー
名詞,接尾,地域,*,*,*,都,ト,ト
スネ夫
スネ 名詞,一般,*,*,*,*,*
名詞,一般,*,*,*,*,夫,オット,オット


使用後.
東京都
東京都 名詞,固有名詞,一般,*,*,*,東京都,トウキョウト,トーキョート
スネ夫
スネ夫 名詞,固有名詞,人名,一般,*,*,スネ夫,ホネカワスネオ,ホネカワスネオ

2017/04/11

LaTeXでゴシック体(Sans-serif体)に半角の明朝体(Serif体)が混じってしまう場合の対処法.

LaTeXでゴシック体(Sans-serif体)に半角の明朝体(Serif体)が混じってしまう場合の対処法.

¥gt¥sf や ¥sf¥gtとしてもうまくいかない.

\gt\sffamily とすれば良い.

ゴシックの太さ次第では,

\bf\sffamily

の方が自然になるかもしれない.

2017/03/26

selenium-webdriverでfirefoxのsessionIdがないと言われたときの対処メモ

capybaraとselenium-webdriver で firefox を使ったスクレイピングをしていたら,下記のようなエラーが出て,困っていた.


/Library/Ruby/Gems/2.0.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/remote/w3c_bridge.rb:118:in `create_session': no sessionId in returned payload (Selenium::WebDriver::Error::WebDriverError)

gemのupdateがトリガーだったような気がするが,バージョンを戻したりしてもうまくいかない.
色々思案した結果,homebrewでgeckodriverのバージョンを上げたら治った.

結局,capybara + selenium-webdriverのスクレイピング関係でうまく行かなくなったら,
capybara
selenium-webdriver
firefox
geckodriver
あたりを最新にしたら良さそう.


2017/02/24

LaTeXで半角文字を含めてゴシック表示する方法

LaTeXで半角文字を含めてゴシック表示する方法

よく忘れるのでメモ.

一部分だけ適用するなら

\gtfamily\sffamily\bfseries

文章全体に適用するなら,プリアンブルに

\renewcommand{\sfdefault}{phv}
\renewcommand{\kanjifamilydefault}{\gtdefault}
\renewcommand{\familydefault}{\sfdefault}
\renewcommand{\seriesdefault}{b}

とする.

和文ゴシックの書体によっては,boldは指定しない方が自然になる.


2017/02/15

RubyMine や PyCharm などで例外発生時にブレークポイントを置く方法

RubyMine や PyCharm など(他のJetBrains製品もおそらく同様)でデバックしているときに,エラー(例外)発生時にブレークポイントを置き,エラー発生時点の変数を見る方法のメモ.

デバックのウインドウの左側にある赤い丸が縦に二つ並んだボタン(View breakpoints)から設定可能.

PyCharmなら,Python Exception Breakpoints Any exception にチェックを入れる.
RubyMineなら,Ruby Exception Breakpoints の Exception 'Exception' にチェックを入れれば良い.

なければ + ボタンから追加可能.

Exception 'Interrupt' なども追加すると無限ループなども検証できて良い.

rubyで実行時間の解析

rubyで実行時間の解析をする方法のメモ.

ruby-profというライブラリを使う.
例えば以下のように,RubyProf.start と RubyProf.stop の間に解析したいコードを書けば良い.

require 'ruby-prof'

# 解析スタート
RubyProf.start

sleep(1)

# 解析終了
result = RubyProf.stop

# 結果を出力
printer = RubyProf::FlatPrinter.new(result)
printer.print(STDOUT)


結果は以下の通り.
%selfは全体に占める割合.

Measure Mode: wall_time
Thread ID: 70297835660380
Fiber ID: 70297835966400
Total: 1.005130
Sort by: self_time

 %self      total      self      wait     child     calls  name
 99.99      1.005     1.005     0.000     0.000        1   Kernel#sleep

  0.01      1.005     0.000     0.000     1.005        1   Global#[No method]



KCacheGrind というツールを使えば,ビジュアライズもできるらしい.


加えて,

RubyProf.measure_mode = RubyProf::MEMORY

とコードに加えれば,メモリの解析もできるらいしが,rubyのパッチが必要.
https://github.com/ruby-prof/ruby-prof
https://github.com/skaes/rvm-patchsets

rvmでインストールするらしいが,rbenvでインストールしたいと思って少し調べたが面倒そうなので諦めた.


pythonのラインプロファイラ

各行毎のメモリ消費量を調べるmemory_profilerと実行時間を調べるline_profilerの使い方メモ.

まず,memory_profiler の使い方

pipでインストール.


sudo pip install memory_profiler


調べたい関数の前に
@profile
を付ける.

例えば以下のようなtest.pyを作る.

@profile
def main():
    l = [[1,2,3,4]] * 100000
    d = [{'first': 1, 'second': 2, 'third': 3, 'fourth': 4}] * 100000

if __name__ == '__main__':
    main()
    print("Hello world!!")


あとは

python -m memory_profiler test.py

のように -m オプション付きで実行するだけで,以下のような出力が得られる.

Hello world!!
Filename: test.py

Line #    Mem usage    Increment   Line Contents
================================================
    17   28.488 MiB    0.000 MiB   @profile
    18                             def main():
    19   29.270 MiB    0.781 MiB       l = [[1,2,3,4]] * 100000

    20   30.039 MiB    0.770 MiB       d = [{'first': 1, 'second': 2, 'third': 3, 'fourth': 4}] * 100000

Incrementの欄を見れば
各行のメモリ消費量が確認できる.



line_profilerの方もpipでインストール.

sudo pip install line_profiler

上記のtest.pyを

kernprof -l test.py


のようにkernprofで実行すると


test.py.lprof

というファイルができている
これをさらに

python -m line_profiler test.py.lprof

のように実行すると,以下のような出力が得られる


Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
    17                                           @profile
    18                                           def main():
    19         1          418    418.0     56.0      l = [[1,2,3,4]] * 100000
    20         1          329    329.0     44.0      d = [{'first': 1, 'second': 2, 'third': 3, 'fourth': 4}] * 100000




2017/01/15

January 14, 2017 at 11:43PM

rbenvのrubyがrubymineに認識されないときの対処法
rbenvのrubyがrubymineに認識されないときの対処法 以下のコマンドを実行してrubymineを立ち上げたらうまくいった. mine . 参考にしたサイトは以下. http://ift.tt/2irLw9j

Original post on Google+

2017/01/14

rbenvのrubyがrubymineに認識されないときの対処法

rbenvのrubyがrubymineに認識されないときの対処法

以下のコマンドを実行してrubymineを立ち上げたらうまくいった.

mine .

参考にしたサイトは以下.

http://source.hatenadiary.jp/entry/2014/12/13/211942

January 14, 2017 at 06:49PM

Macのファイルを開くダイアログから不可視ファイルを指定する方法
Macのファイルを開くダイアログから不可視ファイルを指定する方法 下記のページに書いてある通り. shift + commad + g でパスを指定できるようになる. http://ift.tt/2jIeoLE

Original post on Google+

Macのファイルを開くダイアログから不可視ファイルを指定する方法

Macのファイルを開くダイアログから不可視ファイルを指定する方法

下記のページに書いてある通り.
shift + commad + g でパスを指定できるようになる.

http://inforati.jp/apple/mac-tips-techniques/system-hints/how-to-use-move-to-folder-command-in-a-open-or-save-dialog-in-macos.html