hogashi.*

日記から何から

GoogleChrome機能「twitter画像原寸表示」ver. 1.5.2公開

 GoogleChrome機能、「twitter画像原寸表示」の ver. 1.5.2 を公開しました。

 以下、chromeウェブストアからインストールしてください。
 既にインストールされている方は、chromeの右上の横棒三本ボタンから「その他のツール -> 拡張機能」とクリックし、「拡張機能を今すぐ更新」ボタンを押して更新してください。chrome.google.com

 変更点は、「Original」ボタンが下になってしまって見づらかったのを、横並びにした点です。ちょっと下で見づらいとの声にお応えしたものです(まだ下なのでまた改善を考えています)。

・機能
 twitterのツイート詳細画面にOriginalボタンを追加します。追加されたOriginalボタンを押す or Enterキー でツイートに含まれる画像の原寸を新しいタブで表示します。
 ※画像の原寸:画像URL末尾に「:orig」ってつけるのと同じです。
 複数画像のツイートは、一番右から順に1,2,3,4枚目と開きます(開いたとき最初に1枚目が見えることになります)。

 GitHubにソースを公開しています。どんどん改善してください(ご報告頂けるとさらに嬉しいです)。github.com

 前回書いた通り、不具合などありましたらお言い付けください。hogashi.hatenablog.com

−−更新履歴−−
2015.10.20 | ver1.5.2 Originalボタンが下に入り込んでいたのを公式の操作ボタンと横並びにした
2015.08.02 | ver1.5.1 twitter公式の画像表示の更新への対応(画像ツイートへの複数画像ツイートリプライにおける画像が正しく取得されない症状を改善)
2015.07.20 | ver1.5 twitter公式の画像表示の更新への対応(複数画像が1枚しか出ない症状を改善)
2015.05.14 | ver1.3 画像ツイートに対するリプライ画像ツイートに対応
 2015.03.24 | readme.txtの内容を修正
2015.03.19 | ver1.2 動作の改良、複数画像ツイートに対応
2015.02.16 | ver1.1 動作の改良、操作方法の追加(Enterキー)
2015.02.15 | ver1.0 公開
−−−−

chrome拡張機能「twitter画像原寸表示」の不具合?

 chrome拡張機能twitter画像原寸表示」、大分多くの方にお使いいただいてるようで何よりです。
 が、なんだか「Originalボタンが表示されない」という症状を風の噂*1で聞きました。なんてこった。

 不具合や不満な点は、なるたけ作者にお申し出ください(症状・状況についてお聞き返しするかもしれません)。なるたけ対応します。
 以下にコンタクトの手段をいくつか挙げますので是非。

投書口

 askは匿名も可ですが、その場合返信できないため非推奨です。

 ほんわか投書だと嬉しいです。

*1:はてなブログアクセス解析(機能として許して頂きたい……)

Windows7のSublimeTextでTeX環境構築

 Windowsってだけで色々厳しかった気がしますが、なんとか動くようになったので道程を書きます。
 先に書いておくと、CloudLaTeXなる素晴らしい(らしい)ものがあるので、それで十分なのかもしれません。cloudlatex.io

TeXと付随するソフトのインストール

TeXのインストール

 今回はW32TeXを使いました。
> W32TeX - TeX Wiki
 "TeXインストーラ3"なる偉大なインストーラ*1があるので、それを利用しました(W32TeX, dviout, Ghostscript, GSviewを一緒くたにインストールしてくれます)。
> TeXインストーラ 3
 TeXインストーラ3の手順は、詳しく説明してくれている以下のサイトを参考にしました。did2memo.net
 ただ気を付けるべき点はおそらく、最初のファイルダウンロード元URLの設定だろうと思います。「~のダウンロードに失敗、ログを見れば~」みたいなダイアログが出たり、「ダウンロード&インストールするファイルを選んでください」のリストのどれかが一つもなかったら、戻ってその項目のプルダウンのURLのリストをひとつずつ試してみてください。
 全て成功したら、あとはインストールを待ちます。終わり次第促されるまま再起動。
 W32TeXをインストールしたフォルダ以下のbinフォルダを、環境変数PATHに追加します。

Ghostscriptの設定

 Ghostscriptを起動し、「Options -> Advanced Configure...」を選択、Ghostscript Optionsに「-dWINKANJI」を追加します*2。追加後は以下のようになります。

-dNOPLATFONTS -sFONTPATH="c:\psfonts" -dWINKANJI

 追加したら「OK」で設定を保存し、Ghostscriptを閉じて完了です。

Perlのインストール

 後述のlatexmk.exeがPerlスクリプトの為、Perlをインストールする必要があります。
 今回はStrawberryPerlをインストールしました。
> Strawberry Perl for Windows
 Perlの実行ファイルのあるフォルダが環境変数PATHにあることを確認します(無ければ追加します)。

Sublime Text

 何かと機能性の高いエディタ、Sublime Textをインストールしました。今回使ったのはSublime Text 3*3です。www.sublimetext.com
> Sublime Text - Download

LaTeXTools

Package Controlのインストール

 まず、Sublime Textのパッケージ管理ツールであるPackage Controlをインストールします。
 Sublime Textを起動し、「[Ctrl] + [`]」を入力*4すると、下にコンソールが出るので、そこへ以下のサイトにある長い1文を入れ、[Enter]します。
> Installation - Package Control
 魔法のようにPackage Controlがインストールされます。

LaTeXToolsのインストール

 Package Controlを使って、LaTeXToolsをインストールします。
 「[Ctrl] + [Shift] + [p]」でコマンド窓が開くので、「Package Controll: Install Package」と入力してこれを選択し、パッケージ検索窓に「LaTeXTools」と入力しこれを選択するとインストールされます。

LaTeXToolsの整備

 そのままでは上手く動かないので、設定など整備します。

 まず、初期設定を適用します。「[Ctrl] + [Shift] + [p]」でコマンド窓を開き、「LaTeXTools: Reconfigure and migrate settings」と入力しこれを選択します。

 次に、裏で動作するファイルの内容を変更します。「Settings -> Browse Packages」から開くフォルダ*5以下の「LaTeXTools\builders\traditionalBuilder.py」を、ファイル前方(多分18行から)について以下のように編集します。

#...(前略)

#もともとあった行 ここから
# DEFAULT_COMMAND_LATEXMK = ["latexmk", "-cd",
# 				"-e", "$pdflatex = '%E -interaction=nonstopmode -synctex=1 %S %O'",
# 				"-f", "-pdf"]
#もともとあった行 ここまで

DEFAULT_COMMAND_LATEXMK = ["latexmk", "-cd",
                    "-e", "$latex = 'uplatex %O -interaction=nonstopmode -synctex=1 %S'",
                    "-e", "$biber = 'biber %O --bblencoding=utf8 -u -U --output_safechars %B'",
                    "-e", "$bibtex = 'upbibtex %O %B'",
                    "-e", "$makeindex = 'makeindex %O -o %D %S'",
                    "-e", "$dvipdf = 'dvipdfmx %O -o %D %S'",
                    "-f", "-norc", "-gg", "-pdfdvi"]

#もともとあった行 ここから
# WINDDEFAULT_COMMAND_WINDOWS_MIKTEX = ["texify", 
#  					"-b", "-p",
#  					"--tex-option=\"--synctex=1\""]
#もともとあった行 ここまで

DEFAULT_COMMAND_WINDOWS_MIKTEX = DEFAULT_COMMAND_LATEXMK

#...(後略)
LaTeXの設定

 今度はLaTeX自体の設定です。ただこれは後からファイルを消しても大丈夫だったので要らない設定かもしれません*6

 環境変数HOMEがあればその場所、無ければC:\Users\[ユーザ名]に、「.latexmkrc」を置きます。Windowsだと拡張子のみのファイルはエクスプローラからでは作れないので、コマンドプロンプトでその場所を開いて、

% echo hoge > .latexmkrc

とかコマンドを打って作ります。
 .latexmkrcを以下のように編集します。

#!/usr/bin/perl
$latex         = 'platex -src-specials -shell-escape -interaction=nonstopmode -synctex=1 -kanji=utf8 -guess-input-enc %O %S';
$bibtex        = 'pbibtex %O %B';
$dvipdf        = 'dvipdfmx %O %S';
$pdf_mode      = 3; # use dvipdf
$pdf_previewer = 'SumatraPDF.exe -reuse-instance';

SumatraPDF

 編集中のPDFビューに使うPDFビューワとしてSumatraPDFをインストールしました。もしかすると最新版は前述のTeXインストーラでインストールされるかもしれません、それならそれで問題はありません。
 インストール後、SumatraPDFのインストール場所を環境変数PATHに追加します。www.sumatrapdfreader.org
 AcrobatReaderでもPDFは開けますが、わざわざSumatra PDFをインストールする理由があります。AcrobatReaderは、PDFファイルを開くとファイルを占有し更新ができません。他方Sumatra PDFは、PDFファイルを開いたままファイルを更新できるのです。よってPDFビューワを閉じることなく

  1. TeXファイルを編集する
  2. ビルドする
  3. PDFビューが更新される

の流れを可能にできます。また後述のように、エディタとPDFビューワの対応づけが可能です。

SumatraPDFの設定

 エディタとの対応をとるために、SumatraPDFの設定をします。
 SumatraPDFのメニューから「設定 -> オプション」を選択します。出た窓の「逆順検索コマンドラインの設定」に、以下のように入力します。

"C:\Program Files\Sublime Text 3\sublime_text.exe" "%f:%l"

 一つ目のクオート内にはSublime Textの実行ファイルのパスを書きます。インストール時に場所を変えている場合は、それに沿って書いてください。


 ここまでで構築は終わりです。

使い方

 使い方は、

Sublime Text:
  [Ctrl] + [b] : ビルド
  [Ctrl] + [l], [j] : カーソル位置と対応する場所をPDFビューで表示
SumatraPDF:
  ドキュメントをダブルクリック : Sublime Textのカーソルを対応する場所へ移動

などです。何かTeXで書いてみて、ビルドしてみて下さい。

TraditionalBuilder: Invoking latexmk... done.

と出ればビルド成功です。
 以下のLaTeXToolsのgithubページに詳しいです。github.com

故障かな?と思ったときは

 何故か上手くいかないときは、以下のことを確認してみて下さい。

「[Ctrl] + [b]」でビルドができない

  • とにかく再起動したか
  • Perlの実行ファイルのあるフォルダが、環境変数PATHに追加されているか
  • LaTeXToolsの初期設定を適用する「LaTeXTools: Reconfigure and migrate settings」を実行したか
  • LaTeXToolsの裏で動く「traditionalBuilder.py」を適切に編集したか
  • .latexmkrcを適切な場所に置き、編集したか
  • 書いたTeXファイルの内容にエラーが無いか

ビルドはできるがPDFが生成されない

  • とにかく再起動したか
  • W32TeXのbinフォルダが環境変数PATHに追加されているか

故障かな?と思わなかったときは

 有難く利用しましょう。

参考

 以下のページを参考にしています(既に挙げたものももう一度挙げています)。
> W32TeX - TeX Wiki
> TeXインストーラ 3
did2memo.net
> Sublime Text 2 で LaTeX on Windows - Ichiro Maruta Homepage
wshinya.hatenablog.com
> Installation - Package Control
github.com

*1:2015/10/11現在での最新版は0.85r1

*2:WindowsAPIを使ってフォントを表示する設定、らしい(W32TeX)

*3:2015/10/11現在で最新版はBuild 3083

*4:または「View -> Show Console」

*5:おそらくC:\Users\[ユーザ名]\AppData\Roaming\Sublime Text 3\Packages

*6:よく考えるとWindows7に「/usr/bin/perl」とか存在しない(シェバンは無視されるだけかもしれないけれど)

twitter_oauthでOAuth::Unauthorized 401 Authorization Requiredとなる

結論

 twitterアプリの設定でcallbackURLを設定していなかった。ダミーで良いので、とにかくURLを入力しておく。

背景

 sinatratwitterのOAuth(のPINじゃない認証)をしたかったので、twitter_oauth*1を使ったコードを写経させていただいた(写経元:*2 )。
 以下コード。

 コード内18行、base_urlのportの設定でコロンが入っていなかったのを修正した。

問題

 認証画面が出たので、「認証する」をクリックすると、「OAuth::Unauthorized 401 Authorization Required」なるエラーが出てしまった。

対処

 twitterのアプリ設定で、「callbackURL」の欄を空白にしていたことが原因だった。この設定がされていないと、Webアプリケーションとされないらしい*3
 ダミーで良い(コード内で再設定している)ので、とにかくURLを書いておくことで解決する(ただしcallbackURLの上書を禁止するチェックボックスにチェックをしてはいけない)。

Windowsインストール済ノートPCに生のWindowsをインストール

 購入時にWindowsがインストールされている類のノートPC(東芝dynabook)に、パッケージのWindowsをインストールしたら、東芝ドライバが皆無で詰みかけた話。

どうした

 Android端末でUSBテザリング*1*2して、LANドライバをインストール。ネットワークにつながったら、他のドライバも順次インストール。
 以下はdynabook R731/E,R741/E,R751/E(Windows7 64bit)のドライバがダウンロードできる東芝のサイト。
> dynabook.com | サポート情報 | dynabook R731/E、R741/E、R751/Eシリーズ Windows 7 Professional SP1 64bit アップグレードモジュール

仔細

 ノートPCは東芝dynabookで、購入時にWindowsはインストール済だった。毎回リカバリディスクからリカバリしていたので、ドライバを気に掛ける必要がなかった。が、今回は別のWindowsをインストールしたため、ドライバが一つも入っていなかった。
 結果、有線無線ともにネットワークに接続できず、何もできなくなった。

 焦ってスマホで検索かけたりしたけど、いかんせんフリック入力が遅くて大変だった。のでUSBテザリングして、PCを半ば強引にインターネットに接続した。
 LANドライバがインストールできればもうPCからそのままインターネットに接続できるので、他のドライバもインストールできた。

どうすれば?

 新しいWindowsをインストールする前に、LANドライバだけでもいいからダウンロードして、USBで繋げる外部メディア(とか、ネットワークを使わなくてもデータ移行ができるメディア)に保存しておく。

余談

  • Windows10が無料アップグレード期間だということを思い出して、アップグレードだけしてプロダクトキーを得た。
  • USBテザリングがうまく認識されなくて、「使用可能な接続はありません」のままドライバをダウンロードしている魔法のような状態になった。

f:id:hogashi:20150904120642p:plain

*1:もう一台ちゃんとしたPCがあれば楽だったが、そんなものはなかった。

*2:その端末でドライバインストーラをダウンロードして、PCにUSBで転送してもいい。

xrdpのインストール

 xrdpのインストール/設定にとても手古摺ったので覚書にする。

 今回は個人使用なので、兎に角画面がリモートできればOK。結果的にはvinoなるVNCサーバを使用することとなった。
 OSは、ローカル側がWindows7、リモート側がUbuntu 14.04.2 LTS。

インストール

 まずxrdpの公式webサイトのインストーラでインストールしたら、すごい時間かかった上にさっぱり動かなかった。apt-get でインストールしたらすんなり動いた。

% apt-get install xrdp

設定

 これだけだと、プロセスとしては動いたけどログインができなかった。色々と設定ファイルを書き換えたりしたが、結局以下の手順で簡単にログインできるようになった。*1
 Xが使える(普通に本体からの画面出力とか、sshならX転送とか)環境で、vino-preferencesコマンドを叩く。

% vino-preferences

f:id:hogashi:20150831035627p:plain
 上の画像のようなウィンドウが出るので、中段2番目にチェックを入れ、パスワードを入力する(これがログインパスワードとなる)。あとは必要に応じて設定を変更し、これを閉じる。

使い方

 Windows7では標準である「リモート(半角空白)デスクトップ接続」を使う。"スタート"から検索してもいいし、「mstsc.exe」でも立ち上がる。
 これに「アドレス:ポート」と入れて接続すると、xrdpのログイン画面が出る。プルダウンから「console」を選択し、vino-preferencesで入力したパスワードを入力するとログインできる。

余談

 vino-preferencesコマンドで出るウィンドウでの設定を、全てコマンドで行いたいと思い、調べてはみたが詳細は不明。sshでもX転送すれば済むからいいのだけれど…。

*1:主に個人使用なのでこれで妥協している。サーバなどにして多人数で使う場合は設定ファイルを書き換える必要があるだろう。

vsftpdのインストール

 友人のubuntuにvsftpdのインストール/設定をした時の手順が面倒だったので纏める、つもりだったのをすっかり忘れていたので纏める。OSはUbuntu 12.04.5 LTS。

手順

 「apt-getでインストールして、設定をいじった上で、それでも上手く動かない」との旨で頼まれた。
 インストールは以下。

% apt-get install vsftpd

 ここから設定するためにdpkgconfigureコマンドを用いたが、思うように設定できなかったので、設定ファイル(/etc/vsftpd.conf)をいじる。*1

/etc/vsftpd.conf

 概ね参考にしたページは以下である。
> Fedora 20 - FTPサーバー - Vsftpd インストール : Server World

 既に変更してあった項目は省略する。

  1. 今回の使用用途が"特定のユーザ"に限られた為、「匿名ログインを可」を不可にする
  2. ローカルユーザのログインを不可」を可にする
  3. 「ユーザ設定ファイルの場所の指定」をしない
# /etc/vsftpd.conf
# 前略
#anonymous_enable=YES
anonymous_enable=NO  # 1.
# 中略
#local_enable=NO
local_enable=YES  # 2.
# 中略
# 追加した部分↓
local_root=www
use_localtime=YES
#seccomp_sandbox=NO  # エラーが出たのでコメントアウト
#user_config_dir=/etc/vsftpd/ # 3.

 編集を保存し、設定を反映させるためにvsftpdを再起動する。

% /etc/init.d/vsftpd restart

留意点

 dpkgconfigureを用いる場合、"ディレクトリ設定"のパスはホームディレクトリが基準の相対パス(しかもチルダなどはエスケープされる)なので、「~/hoge」とか入力すると「~/\~/hoge(ホームディレクトリ以下のチルダディレクトリ以下のhogeディレクトリ)」が作られて非常に厄介なので気を付ける。
 もし「~/\~/hoge」なんてディレクトリができてしまったら、下から順に「rmdir」するか、「rm -r \~」とエスケープして削除する(エスケープを忘れるとホームディレクトリ以下が全削除されるので気を付ける)。

*1:/etc/vsftpd/ にvsftpdの全てをまとめない理由がよくわからないが…。