時雨に舞う

プログラミングや技術情報などの備忘録

linuxのsedが便利

linuxsedコマンドが便利だったのでメモ。

圧縮状態で数GB、解凍したら数十GBもあるような巨大なテキストデータから特定の部分を削除したい場合に重宝する。

テキストエディタで開くのは非常に難しい。秀丸エディタでも部分指定して開くのが精いっぱい。しかも行番号は指定できない(ファイルを最初から読み進める事で行数を把握するだろうから当然と言えば当然)。

例えば圧縮されているファイルを展開しながら任意の範囲行を削除して再圧縮するにはこんな感じ。

# zcat a.sql.gz | sed -e '13456,25385!d' | gzip > b.sql.gz

これは13456行~25385行以外を削除する処理。

普通の手段でやろうとするとメモリに展開しようとしてメモリもスワップも食いつぶして大変な事に・・・。

 

著者:t.n

 

floatを使った時の左右のカラムの高さを揃える方法

floatを使用して左右のカラムに背景色や背景画像の指定をした時、コンテンツの量で左右の高さが合わなくて片方の背景が切れてしまう事が…。

無理に高さを指定しまうと変にスペースも出来てしまうし、いい方法がないかと検索してたらjQueryで簡単に高さを揃える方法がありました。
http://tukuruder.com/archives/1257#codesyntax_8

調べた中ではこれが一番簡単でわかりやすかったです。

著者:N.K

WinSCPで多段階接続をする

【ローカル】

 →【踏み台1(鍵1認証)】

  →【踏み台2(鍵2認証)】

   →【ターゲット(鍵3認証)】

という構成でWinSCPをターゲットに繋げる方法の一つを紹介します。

重要なのはWinSCP単体ではなく、puttyも併用する点です。

予め puttyで多段階接続をする - 時雨に舞う を済ませておきましょう。

-----

(1)トンネル用puttyの設定を用意する

 puttyで多段階接続をする - 時雨に舞う のセッションをコピーし、その内容に対して下記の設定を加えます。

[接続→SSH→トンネル]

 ポートフォワーディング:源ポート:3000以上の任意の値(例:3111)

 ポートフォワーディング:送り先:
  [ターゲットのIPアドレスまたはホスト名]:[ターゲットの接続先ポート番号]
  (例:example.com:22)

 ラジオボタン1行目:ローカル

 (※上記3個所を設定したら「追加」ボタンを押しておくこと)

(ここまでやったらセッションを保存しておきましょう)

-----

(2)接続用WinSCPの設定を用意する

[セッション]

 ファイルプロトコル:SFTP

 ホスト名:localhost

 ポート番号:[上記(1)で源ポートに指定した値(例:3111)]

 ユーザー名:[ターゲットでログインするユーザー名]

(ここまでやったらセッションを保存しておきましょう)

-----

(3)トンネル用puttyを起動する(プロンプトが出ている状態にしておく)

-----

(4)接続用WinSCPでログインボタンで接続できるはず・・・

 

参考にしたページ

Connect to FTP/SFTP Server Which Can Be Accessed via Another Server Only :: WinSCP

 

著者:t.n

 

puttyで多段階接続をする

【ローカル】

 →【踏み台1(鍵1認証)】

  →【踏み台2(鍵2認証)】

   →【ターゲット(鍵3認証)】

という構成でputtyをターゲットに繋げる方法の一つを紹介します。

-----

(1)【踏み台1】に ~/.ssh/config を作成する(無ければ新規)

# vi ~/.ssh/config

▽ここから

HOST Humidai2

    HostName [踏み台2のIPアドレスまたはホスト名]

    User [ログインするユーザー名]

    Port [接続先ポート番号]

 HOST Target

    HostName [ターゲットのIPアドレスまたはホスト名]

    User [ログインするユーザー名]

    Port [接続先ポート番号]

    ProxyCommand ssh -W %h:%p Humidai2

△ここまで

 パーミッションを600にしておく(念のため)

# chmod 600 ~/.ssh/config

-----

(2)Pageant.exeを実行して常駐させる

 ここで多段階接続に必要な分の鍵を登録しておく

 (最低限鍵2と鍵3、鍵1も入れておいた方が楽)

-----

(3)puttyの設定をする(特筆無ければデフォルト)

[セッション]

 接続先の指定:ホスト名:[踏み台1のIPアドレスまたはホスト名]

 接続先の指定:ポート:[接続先ポート番号]

[接続→データ]

 ログインの詳細:自動ログインのユーザ名:[ログインするユーザー名]

[接続→SSH]

 サーバに送られるデータ:リモートコマンド:ssh Target

[接続→SSH→認証]

 認証方法:Pageantを使って認証する:ON

 認証パラメータ:エージェントフォワーディングを認める:ON

 認証パラメータ:認証のためのプライベートキーファイル:鍵1

(ここまでやったらセッションを保存しておきましょう)

puttyの開くボタンで接続できるはず・・・

 

参考にしたページ

多段SSHで4段先のサーバに一発ログイン - Glide Note - グライドノート

 

著者:t.n

WinSCPのiniファイルの場所(Windows8.1)

PC乗り換えの時に毎回iniファイルの場所を探すのでメモです。

C:\Users\ユーザ名\AppData\Local\VirtualStore\Program Files\WinSCP

 

エクスポート機能はあるのになぜインポート機能はないのだろうか…

 

著者:y.u

Google ChromeがSkypeのCPU使用率を上げる問題

最近PCの動作が重い気がして気になっていました。
検索するとこんな記事が…!

Google ChromeがSkypeのCPU使用率を上げる問題の対処法 | numlockz

skypeのバージョンは変わっているんだけど…。

ためしにこれで、様子を見てみようと思います。

 

著者:yotsu

deploygate(β版)を使ってみた

アプリのテスト配信補助サイト(ツール?アプリ?)のdeploygateを使ってみました。


DeployGate - An incredibly easy way to deploy apps in development!

言語は英語の他に日本語があるので配信先の方が英語苦手でも大丈夫なのは助かりますね。

同様なサービスを提供していた testflight は apple に買収されて 2014/03/21 で android 向けのサポートが終了してしまいました。この手のサービスはandroid/iOSの両方で使えるから便利なのにね~。

deploygateは投稿時点ではβ版という事で、iOSもサポートする方向で拡張テスト中といった感じですね。サイトには

期間限定の特典

Beta Programをご利用いただくアカウントでは、DeployGateの可能性をお試し頂くために、次の制限が解放されています。

  • アプリ数: 無制限
  • 配布数: 無制限
  • チームメンバー数: 無制限

Beta Program期間中だけ? …ではありません!これらは、Beta Program期間の終了後もご参加いただいた方のアカウントに残ります。 DeployGate を一緒によりよくしていくのにご協力いただける方を歓迎します。

とありますが、無料とは書いていない点が気になります。(βテスト参加自体は無料です)

 

さて、前置きはこのくらいにして、実際の使用感についてですが、取り敢えず使えるレベルなのではないでしょうか。アプリ単体を扱う基本フローは

<配信する側>

 1.ユーザー登録

 2.android / iOS のパッケージファイルをアップロード

 3.配信先のメールアドレスを入力して招待(このタイミングで開発者/テスターを選択)

<配信される側>

 4.招待メールからユーザー登録(別に先にアカウントだけ作っておいても構わない)

 5.deploygateアプリのインストール

 6.プロファイルのインストール(iOSのみ)

 7.deploygateアプリからログイン

 8.テストするアプリを選択してインストール~テスト

 

また、アプリ単体ではなく Android/iOS 両方をテスト配信する場合はグループを使うと便利。グループを使う基本フローは

<配信する側>

 1.グループの作成

 2.チームの作成(このタイミングでテスター/開発者/管理者の権限を付与)

 3.グループにメンバーを追加(既存アカウントのメールアドレスを指定、たぶん招待もできると思う)

 4.メンバーをチームに所属させる

 5.グループにアプリをアップロード

 6.チームにアプリを関連付け

<配信される側>

 上記のアプリ単体を扱う基本フローと同様。インストール可能なアプリ名にグループ名が付いて表示される。

 

他にもアプリの配布やバグ報告機能?みたいなものがあるようですが、取り敢えずはここまで。

<追記>

アプリ配布時の更新通知やログ収集などはSDKの導入が必要そうですね。

 

著者:t.n