hogashi.*

日記から何から

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の全てをまとめない理由がよくわからないが…。

Tumblrからインポートした

 Tumblrにあった記事を(WordPressを挟んで)はてなブログにごっそり持ってきた。

 エクスポート/インポートしてもブログの投稿日がしっかり残っていて、とても頭が良いと思う。

 

 ちなみに宣伝(?)をしておくと、趣味でちっこいGoogleChrome拡張機能を作ってます。使ってみてください(詳細な説明は過去記事にあります)。

twitter画像原寸表示 - Chrome Web Store

chrome.google.com

update_name実装した

 ちょこちょことTLで見ていたupdate_nameを実装した。仕組みが分かっていなかったから手を付けていなかったんだけど、お習字させていただいたのでなんとかふんわり理解できた。

 お習字元は以下と、google検索で出てきたgit/gist(ありがとうございます)。

20分でつくるアップデートネーム http://www.slideshare.net/akameco/20-35083670

 してできたのがこれ。

 rubyについては初心者も初心者なので全部は理解しきれていないけれど、とにかくストリームから特定の文字列を見つけて動作するってことは分かった。

 

 アプリケーションはお習字元に習ってherokuで動いている。

 herokuにgit pushしていたんだけど、実はherokuからgithubと接続できて、githubのmasterにpushしたら自動的にbuildしてくれた。どっちが良いのかわからないけど、githubで見られる方がいいかと思ってそうした。

 

追記:

 名前が跡形もなく変わると自分も驚くことがあるので、「hogas@~」となるようにした。新しい名前を何も指定せず呼ぶと「hogas」に戻る。

 

追記(2015/08/23):

 githubに載せるとtwitterのアプリの各keyがそのまま見えてしまってよくないことに気付いたので、編集したソースコードをgistに載せることにした(keyは変更済)。