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でインストールしたいと思って少し調べたが面倒そうなので諦めた.