SSHのプロキシ
たまにはブログ書くかな〜とか書いておきながら1ヶ月以上放置してました。
右上の通知によると、なんと1月はアクセス数が1000を超えたらしいのですが、簡易アクセス解析だと月ごとのアクセス数って見れないっぽいですね。2月になってしまったので1月の合計数が確認できず...。Googleアナリティクスと連携したりするといいんだろうけど。
相変わらず以下のUbuntuのフリーズ対処の記事のアクセスが多くて、みんなフリーズしてるんだなあと思う今日この頃です。
ちなみに自分のUbuntuは最近安定してますね。
SSHのプロキシ
SSHアクセスを特定のIPアドレスのみに絞ってるサーバーがあるんですが、自宅は固定IPじゃないのでアクセスできない。自分で借りてるVPSのIPアドレスからはアクセスできるようにしてるので毎回VPSにログインして操作してたんですが面倒なんですよね。
主にやりたいことはGitの共有リポジトリとのソースコードのpull/pushだったので、取得したソースコードをさらにローカルマシンに持ってくるという訳の分からないことになってまして...
それで、なんとかローカルから直接目的のサーバーにログインできないかと思って「SSH プロキシ」とかでGoogle検索してたんですが、上のほうに出てくるのがポートフォワーディングの話なんですね。ポートフォワーディングとかよく知らないのでこれでやりたいことが実現できるのかと思って難しい話を読んだりしてたんですが、どうも違ったようで時間を無駄にしてました。
やりたいことは単に踏み台サーバーを経由したSSHアクセスなんですよね。
で、最終的に以下のページの「多段SSH」の方法で実現できました。ありがたや。
sshコマンドに -W っていうオプションがあったんですね〜
これは便利。というか、sshコマンドめちゃくちゃ多機能だな。
日本語マニュアルページのリンク貼っときますね。
これでローカルマシンから直接 git pull とか出来るようになりました。
すばらしい...
Ubuntuがフリーズしたときの対処
Ubuntuを使っていますが、意外とよくフリーズします。
大体ひとつのアプリが固まって何もできなくなるパターン。
Windowsだとアプリが固まっても全体に影響することは稀なので、LinuxのGUIはその点ではまだ弱いかなあと思いますね。
以下、フリーズした場合の対処方法。
固まったアプリを強制終了する
- Ctrl + Alt + F2 で仮想コンソールを切り替えます
- いつものユーザーでログイン
- top コマンドで過負荷になっているプロセスを特定してPIDを確認
- kill [PID] でプロセスを強制終了
- Ctrl + Alt + F7 でGUIに戻る
固まったプロセスが特定できる場合はこれで。
特定できない場合や、それっぽいプロセスを終了しても直らない場合は仕方ないので以下の方法でPCを再起動します。
PCを安全に再起動させる
- Alt+PrintScreen を押しながら R -> S -> E -> I -> U -> B
Rubyで先頭からの文字数を指定して文字列を2分割する
Ruby勉強中です。
CodeIQのアルゴリズム問題を考えてるときにタイトルのような処理がしたいと思いました。
(先頭からの文字数を変えながら分割して、分割後の前後の文字列を比較するみたいな処理がしたかった。)
こんな感じ。
"1234567" を先頭3文字抽出 => ["123", "4567"]
以下のような記事を読んだのですが、微妙に違う。
文字列の一部を取得する - 文字列(String)クラス - Ruby入門
文字列の抽出だけでなく残りの文字列もArrayにいれた状態でほしい
Ruby 文字列を任意の文字数に分割する - Qiita
すべてを分割するのではなく先頭数文字だけ抽出したい。
微妙に違いましたが、2つ目の記事が近い感じです。
どうやら String#split のセパレータに正規表現を使ってやるとうまくできそう。
実験。
pry(main)> "1234567".split(/\A(.{1,3})/, 2) => ["", "123", "4567"]
ふむ。1要素目に空文字列が入ってますが、分割はうまくいきました。
1要素目に空文字列が入るのは正規表現をセパレータとして使ってるからですね。
空文字列はいらないので除去。
pry(main)> "1234567".split(/\A(.{1,3})/, 2)[1..-1] => ["123", "4567"]
Ubuntu14.04のrbenv環境でpryが実行できなかったので対処した
最近ちょこちょこRubyをさわってます。
スクリプト言語はPerlをメインでやってましたが、すべてがオブジェクト指向な言語って便利ですよね。
さて、簡単な処理のテストとかはirbがとても便利だなあと思って使ってたんですが、irbって直前に実行したコマンドの再実行ができないんですね。(上キーとか押してもきかない)
これはとても不便。
調べたところpryっていうのが便利らしいです。
Rubyistよ、irbを捨ててPryを使おう - TIM Labs
さっそくインストール。
Ruby環境はrbenvで作ってます。
$ rbenv version 2.1.2 (set by /usr/local/rbenv/version) $ sudo gem install pry pry-doc $ sudo rbenv rehash
で、実行。
$ pry Sorry, you can't use Pry without Readline or a compatible library. Possible solutions: * Rebuild Ruby with Readline support using `--with-readline` * Use the rb-readline gem, which is a pure-Ruby port of Readline * Use the pry-coolline gem, a pure-ruby alternative to Readline
お?エラーが。
解決策も出てるようですがよくわからないのでエラーメッセージで検索。
以下の記事が近いかなと。Ubuntuだし。
Ruby Gems suddenly stopped working on ubuntu 12.04 - Stack Overflow
sudo apt-get install libreadline-dev
このコマンドを実行すれば良いようですね。
ちなみに自分の場合は他の記事に書いてあったRubyの再インストールもやったので以下の手順を実行しました。
$ sudo rbenv uninstall 2.1.2 $ sudo apt-get install libreadline-dev $ sudo rbenv install 2.1.2 $ sudo gem install pry pry-doc $ sudo rbenv rehash
これでようやくpryが使えるようになりました。
直前のコマンドの再実行とかシンタックスハイライトされるのが便利ですね。
Twitterクライアントmikutterを導入した
Twitterをはじめて2ヶ月ほどたちました。
エンジニア界隈のすごい人たちが普通につぶやいていてとても刺激になりますね。
もっと早くに始めておけば良かったと後悔しています。
炎上しているアカウントとかを見ていて、すべてのつぶやきが公開されるっていうのに抵抗があったんですよね〜。
あと、何度かアカウント作成してみようと思ったんですが、いいアカウント名が思いつかずトップページで固まってしまうというのもありまして。
でもアカウント名って後から変更できるんですね。ホント早くアカウントつくっておくべきでした。
だいぶ時代に乗り遅れてる感があります。
で、いままではブラウザで普通に使ってたんですが、たまに何かのキーワード("Ubuntu"とか)に反応して
お気に入り登録されることがあったのでどうやって捕捉してるんだろうと不思議でした。
あと複数アカウントを作成することもできるらしく、どうやって管理するのかとか。
どうやらTwitterクライアントというものがあるらしく、それを使うとこれらのことが便利に実現できるのかな〜と思いました。
そんなわけでUbuntuで使えるTwitterクライアントを検索して一番上に出てきたのがmikutterです。
mikutter
インストールはUbuntuだとソフトウェアセンターから簡単にできました。
パッケージ管理システムって素晴らしい。
起動してみると右側にタブが並んでます。
なるほど、返信とか検索結果とかをタブで分けて見れるんですね。
これは便利かも。
mikutterはプラグインで拡張が可能とのこと。
以下のページでプラグインが紹介されています。
Plugin - mikutter Wiki
以下のプラグインを導入してみました。
moguno/mikutter-kininarimasu · GitHub
これはとても便利!
タイムラインに指定したキーワードを含むTweetを混ぜて流してくれます。
たとえば"B'z"をキーワードに指定しておくと全国のB'zファンのつぶやきがたくさん流れてきます。
こんなにたくさんの人に愛されて、やっぱりB'zってすごいなあという気分になりましたね。
ただ、これはリアルタイムで捕捉しているわけではなさそうですね。
しばらくするとキーワードを含んだTweetは流れてこなくなるようなので、起動直後にキーワード検索してる感じ?
リアルタイムで捕捉する場合は以下のページとかが参考になりそう。
[iOS]Twitter検索を自動化、ヒットしたツイートをリアルタイムにプッシュ通知する設定
「デザイナー哀の劇場」Kindle版を購入した
今朝起きたら「独身OLのすべて」の作者まずりん氏(@muzzlin)がこんなツイートをされていた。
独身OLのすべて/まずりん - モーニング・アフタヌーン・イブニング合同Webコミックサイト モアイ
もったいないのでツイートしとくと、デザイナーあるあるをやり過ぎて、現役デザイナーの方々から「つらすぎる」と言われたマンガがこちら。全10回→デザイナー 哀の劇場 (1) 支給データの怪 | マイナビニュース #mynavinews http://t.co/B4k8wv0ahV
— まずりん (@muzzlin) 2014, 6月 22
さらにツイートをためらっていたのですが、「デザイナー哀の劇場」、実はKindle版も出てます。公開中のものをKindleで買ってくれる人いるのかなと思いつつ、何の告知もしないのもアレなんで→デザイナー 哀の劇場 http://t.co/ECD2q0FlSA @amazonさんから
— まずりん (@muzzlin) 2014, 6月 22
WEBのリンク先とKindleのリンク先、やっぱりWEBのほうがリツイート多いな…
— まずりん (@muzzlin) 2014, 6月 22
読まれるのはありがたいんですが、同時に複雑な心境…。WEBで発表してるとこういう複雑な気持ちによくなる。単行本発売した時に「タダで見れるのに」って言われたことあるし…
— まずりん (@muzzlin) 2014, 6月 22
うーむ。たしかに頑張って書いた漫画を誰でも無料で読めてしまうのは複雑ですよね。
と思いまして、Kindle版を購入しました。
500円くらいかな?と思ってamazonのサイトに行ったところなんと120円!安い!
迷わず1クリック購入しました。
しかしこれで利益でるのだろうか...と思ったらやはりほとんどまずりん氏には入らない模様。
「デザイナー哀の劇場」のKindle版については、お察しの通り私にほぼ還元ありません…120円×10%ですから…
— まずりん (@muzzlin) 2014, 6月 23
そういった還元の少なさも含めての「デザイナー哀の劇場」ですね…
— まずりん (@muzzlin) 2014, 6月 23
↑面白い!
でもWebで公開されてたからこそまずりん氏の漫画に出会えたので無料公開はいいことなんではないかと思うんですよね。
結果的にファンになってTwitterでフォロー→Kindle版購入という流れになりましたし、同じような人はたくさんいるはず。
フリーミアムってやつなんではないかと。
CDが売れないのにライブに行く人は増えているっていうのも聞くし、そういう時代なんでしょうな。
ソフトウェアに関しても完全にそういうビジネスモデルが定着してきてるし、複雑だよなあ。
なんにしてもまずりん氏の漫画は面白いのでこれからも応援していきたいと思った朝でした。