ペペロン頭脳

ソフトウェアエンジニアのメモ的なアレ。

認証付きProxy環境下でもSourceTreeでPuTTYなSSH接続を

なんだか認証付きプロキシの記事ばっかりになってきた。
「プロキシサーバーのNTLM認証と戦うブログ」に改名したほうがいいかもしれない。

SourceTree利用のGitHubからのSSH経由クローンができなかった

職場にて「許可を求めるな謝罪せよ」の一環として勝手にGitを導入して使ったりしている。
Gitは基本コンソールからバチバチやるもんだと思うけど、やっぱ生粋のドザーとしては、できるだけGUIでポチポチ操作したいよね。そういうわけで黒い画面が苦手なエンジニアの味方、SourceTreeのお世話になっている。「ワタシハ プログラム チョットワカル」な人に紹介するときもハードル低めでいけるし、何より使いやすい。

でだ。
たまにGitHubからクローンしてきたいプロジェクト、ありますよね。ところが社内からはSourceTree利用のSSH経由クローンが出来なかった。
プロキシのNTLM認証を突破できていないことはわかっていたので、設定を探すが見つからない。SourceTree本体ではHTTP(S)のプロキシ認証情報を設定できるんだけど、SSHは外部クライアントに依存してるので、いくら設定を探しても見つからんのですけどもね。
ちなみにWindows版のSourceTreeにはPuTTYがバンドルされていて、通常はOpenSSHではなくPuTTYを使う設定になる。
いろいろ事例検索しても情報が集まらず、よくわからんなーと諦めていた。
挙句、この辺を参考にしたらコンソールからはSSH(OpenSSH)でプロキシ突破できたのでよしとしていた。

それが去年の春。
で、最近になって改めて調べてみたら、SourceTreeバンドルのPuTTYはフルセットではなく、接続設定などをいじれるツールが同梱されていないことが判明!ようやく解決に漕ぎ着けたのであった。
というわけでツールの追加から設定まで以下に記す。

putty.exeを追加してプロキシサーバーを突破せよ

  • putty.exe をダウンロードする。他のバイナリは不要です。

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

  • putty.exe を以下に配置する(各自の環境に応じて読み替え)
C:\Program Files\Atlassian\SourceTree\tools\putty

Configuration窓が開くので、[Connection]->[Proxy]を開いて情報を入力。
その状態から[Session]セクションに移動、[Default Settings]を選択して[Save]。Cancelで閉じる。
f:id:peperon_brain:20150204180607g:plain

HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\Default%20Settings

f:id:peperon_brain:20150204175340p:plain

設定は以上。
別途、PuTTY用に鍵ペア用意・GitHubに公開鍵登録・SourceTreeでPuTTY利用の設定ができていれば、SSHGitHubに接続できるはずです。

enjoy!!

Windows版 Sublime Text 3向けにPackage Control 3.0.0がリリースされたけどアップグレード失敗する人へ

はい。タイトル通りです。
Windowsかつプロキシ環境下で使ってる方で、アップグレードに失敗する方がそこそこいるのではないかと思い、ここに記す次第です。

ワンライナーに手を加える

本日(昨日?)ST3起動したらこんなメッセージ出たよね。
wbondサンタさんからのプレゼントだ!ヤッター!!

**** Windows Sublime Text 3 Users ****

Due to a bug in Package Control 2.0, Windows ST3 users will need to open the
Sublime Text console (ctrl+`) and execute the following Python to properly
upgrade. All other users may ignore this part of the message.

Make sure NOT to copy the leading two spaces, or an "unexpected indent" error
will occur.

【以下インストール用ワンライナーが続く】

import urllib.request,os; pr='Preferences.sublime-settings'; ip='ignored_packages'; n='Package Control'; s=sublime.load_settings(pr); ig=s.get(ip); ig.append(n); s.set(ip,ig); sublime.save_settings('Preferences.sublime-settings'); pf=n+'.sublime-package'; urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler())); by=urllib.request.urlopen('https://packagecontrol.io/'+pf.replace(' ','%20')).read(); open(os.path.join(sublime.installed_packages_path(),pf),'wb').write(by); ig.remove(n); s.set(ip,ig); sublime.save_settings(pr); print('Package Control: 3.0.0 upgrade successful!')

プロキシサーバを通過させるためにワンライナーに手を加えてやるのですが、今回のアップグレードではpackagecontrol.ioへの接続にhttpではなくhttpsを使うよう変更されています。
というわけで、httpのみを指定していると通信に失敗します。下記のように、ProxyHandlerでの設定もhttpsに合わせてやる必要があります。

# urllib.request.ProxyHandler()に対し、引数を下記のように指定
urllib.request.ProxyHandler({'https': 'http://[username]:[password]@[host]:[port]'})
# もしくは
urllib.request.ProxyHandler({'https': 'https://[username]:[password]@[host]:[port]'})

あるいは、"https://packagecontrol.io"の箇所をhttpに書き換えちゃっても通るかと思います。
ユーザー認証が必要ない環境では、"[username]:[password]@"を削除して下さいね。

アップデート後にPackage Control使えなくなったんだけど!

ワンライナーの実行に何回か失敗していると、ignored_packagesへPackage Controlが失敗回数分だけ追加された状態になってしまいます。
Preferences(Settings - Default もしくは User)を開き、ignored_packagesのセクションを確認して下さい。"Package Control"があったら全部削除。プロキシ絡みの処理に失敗すると、その先のig.remove(n);が実行されずに残ってしまうんですね。困ったね。

過去の記事に加筆

Package Control 2.0時代の記事にも加筆しておきました。

漢字の線に囲まれた部分だけを塗りつぶした画像で何の四字熟語か当てるアレをWebアプリ化

f:id:peperon_brain:20141017011943p:plain

どーも。
最近は流行りに遅れつつもingressなど始めてみたりしちゃって、ロードバイクで夜な夜な近所を疾走しつつも情報処理試験が近いので遊んでばっかりもいられない今日このごろです。

遊んでばっかりもいられないのですが、先日下記のまとめ記事がホッテントリ入りしちゃって。

即答してる人は超人なのか?サヴァン的な才能を持ってるのか?っつーくらい難しいのです。難しい。無理ゲー。全然わからない。悔しい。

そういったフラストレーションが蓄積した結果、むしゃくしゃしてWebアプリ化してみたのが以下のページでございます。

基本機能

クライアントサイド完結。canvas使って実装してます。
文字描画→2階調化→周囲塗りつぶし→白黒反転
カッとなって作ったレベルなので、機能はシンプルです。デザインもBootstrapそのまんまです。

  • 上記スレッドにある四字熟語を決め打ちで保持。この中からランダムに出題
  • 解答見たり隠したりできる
  • [次の熟語]ボタンで次の問題をランダムに出題

いずれ追加したい機能

  • ソーシャルボタン追加
  • URLハッシュで問題切り替え
  • 投稿機能
  • 問題一覧の表示

情報処理試験が終わってから育てる。