2016年8月14日日曜日

systemd-nspawnを使ってみた

使ってみた

当初は conoha に立てた Arch Linux へ Docker をインストールして、そこでredisとかnginxとかを動かそうかと調べていた。
しかし、systemdが動いてるなら systemd-nspawn なるコンテナ型仮想化システムがいい感じだと風の噂で聞いたのでこちらを試すことにした。

習うより慣れてみる

コンテナ化の知識は全くなく、Dockerでさえどうやって使うのかさえ分からなかった。
自分で構築したことでそれなりに理解出来た…気がする。
以下はとりあえず、Arch Linux のsystemd-nspawn の解説をかいつまんで進行します。
ぶっちゃけちゃると、今回の記事の情報はArchWikiに全部載ってます。
ArcyWikiは、Linuxに関する基本的なところから充実の内容なのでビギナーの方からでもお勧めです。

コンテナの作成

mkdir ~/MyContainer
pacstrap -i -c -d ~/MyContainer base

コンテナの手動起動

systemd-nspawn -bD ~/MyContainer -n
-bDn という感じで書くとエラーで起動しないです。
-nはホストのネットワークを共有になります。127.0.0.1を使ってコンテナへもネットワーク接続出来るということになります。

コンテナのサービス起動

systemctl enable machines.target
mv ~/MyContainer /var/lib/machines/MyContainer
systemctl enable systemd-nspawn@MyContainer.service
systemctl start systemd-nspawn@MyContainer.service

トラブルシューティング

ログインが出来ない

arch-nspawn login: root
Login incorrect
こう出たときはコンテナのディレクトリ上にある /etc/securetty のターミナル名のリストに pts/0 を追加。このファイルはホストから開く(どっちにしてもログインできないので)。
ホストとRedisコンテナとuwsgiコンテナをProxyで繋いだりしたのでそこら辺も書く予定。

2016年7月29日金曜日

サイト移行中。

独自ドメイン+WPのブログへデザインのHTMLを直しながら地道に移転中だったりします。

http://blog.dstribe.net/

2016年7月18日月曜日

ST3 日本語環境向けプラグイン MultibyteWordSeparators の解説

MultibyteWordSeparators とは?

Sublime Text 3 向けのマルチバイト文字列に対応した単語移動をサポートするパッケージです。
github:SublimeMultibyteWordSeparators
※ 5/1現在Package Controlに登録申請中のため、インストールは手動になります。
※ 5/4にPackage Controlに取り込まれました。

日本語に対応しているエディタの場合、単語移動でカーソル移動すると漢字・ひらがな・カタカナ・英数字を判別し、単語らしきところでカーソルが止まるようになっています。

Sublime Text 3 は、日本語を単語移動しようとすると2byte文字列が判別できず、一つの単語として移動してしまいます。

そこで単語移動出来るように MultibyteWordSeparators を作成しました。

どうやってるの?

漢字・ひらがな・カタカナ・英語・数字・記号のグループを作成し、片っ端から正規表現で引っかけています。

次に、カーソルの位置が漢字であればそれを主とし、主となる文字種から変わるまでカーソルを移動させ続けます。

例えば、ひらがなと同じリストに数字を入れればひらがなと同じ種別と判別され、移動もひらがなと数字は一緒に移動されます。

つまり、厳密には”単語”移動ではないです。

形態素解析は使わなかったの?

そういうわけで、形態素解析は使っていません。
実際のところ、開発時に形態素解析が手軽に使えることを知らなかった、という理由もあったり無かった……。

ちょっと形態素解析の場合について考えてみたけど、現在のカーソル位置から前後の文章をある程度チェックする手間、カーソル位置がその文書のどこに当たるのかをそれぞれチェックする必要がありそうで、逆に手間かも……。

個人的には現在のやり方がベターな気がしてます。

日本語の単語移動の件は困ってる方も結構いるようだったので、このプラグインが一助になればいいなと思いを込めての宣伝でした。

5/9 ver1.1.0 へアップデート

マウスでのダブルクリックでの単語選択に対応
マウスでダブルクリックを行った際、マウスカーソルの下にある文字を検出して単語を選択する機能を追加

以上。

2016年7月12日火曜日

ST3 日本語環境向けプラグイン ConvertFullHalfWidth の解説

ConvertFullHalfWidth とは?

Sublime Text 3 向けのカタカナ・アルファベット・数字を全角半角文字に変換するプラグインです。
github:SublimeConvertFullHalfWidth
※ 以前はConvertZenHanという名称で公開していましたが、同じような名前のプラグインがすでに公開されていたので変更しました。
なお、変換にはPyPIで公開されている jaconv を使用しています。

どうやってるの?

選択文字列とどの文字を変換対象にするかのフラグをプラグインのコマンドに渡し、フラグに従ってjacnonvに文字列を渡すだけ!

今後の追加予定

jaconvにはひらがな→カタカナ、カタカナ→ひらがなの変換もあるのでこの変換も出来るように実装予定。

/** 「もう仕事としてはガラケー特化のサイトなんて作らないよねー」っと思ってたらドンピシャでスマホサイトをガラケー向けに作り変えるお仕事来てプラグイン大勝利で震えたのはいい思い出。 */

以上。

2016年3月22日火曜日

EditorConfigを使い始めたらプログラマー世界の繋がりを感じた。

開発界隈では自分のエディター設定をプロジェクトのコーディング規約に合わせる作業ってのがあります(コーディング規約が無い場合も多々あるが)。

そこでこのEditorConfig (http://editorconfig.org/) をお勧め。
これを使ってみたんだけど、プログラマーの世界って繋がってるなぁ、って思っちゃったり。そんな大層なことじゃないかも知れないけれど。

# editorconfig.org
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 80

[*.py]
max_line_length = 79

[*.{rb,js}]
indent_size = 2

2015年10月4日日曜日

Sublime Text 3 のPHP系プラグイン覚え書き

自分が使用しているSublime Text 3 のプラグインでPackage Control でインストールする以外で必要な作業をまとめ。
随時追加していく予定。

Composer

PHP界隈では必須になりつつあるPEARに変わるライブラリ管理ツール。
/** Sublime Text とは関係ないけど、PHPerは使用できるようにしておいた方がいいです。 */
  1. インストール
    公式サイト: https://getcomposer.org/
  2. 下記パスを環境変数に追加。
    ※追加しないとcomposerでインストールしたものがパス無しで実行できない
    %USERPROFILE%\AppData\Roaming\Composer\vendor\bin
  3. Composerはそのままだとけっこう遅いので国内ミラーサーバーを設定
    参考: http://qiita.com/Hiraku/items/51961aa49f7a2922011d
    登録するコマンドは下記
    composer config -g repositories.packagist composer http://packagist.jp
  4. 完了

SublimeLinter

SublimeLinter-phpcs

コマンドラインツールのPHP Codesinifferを使用するとコーディング規約をチェックしてエラーを表示してくれる
  1. コマンドラインツールのインストール
    composer global require squizlabs/php_codesniffer=*

SublimeLinter-phpmd

コマンドラインツールのPHP Mess Detectorを使用するとプログラムで怪しいところをチェックしてエラーを表示してくれる
  1. コマンドラインツールのインストール
    composer global require phpmd/phpmd=*

2015年6月23日火曜日

SSH Foward Agentの設定

gitへのFoward Agent介してやろうと思った時に、次回もあっさりいけるようにメモっとく。

SSH Foward Agent設定

  1. $ vi /etc/ssh/sshd_config
  2. AllowAgentForwarding を探す
  3. 無ければ項目ごと追加で下記のように設定
    AllowAgentForwarding yes
  4. wq してvi終了
  5. $ service ssh restart
  6. 完了

ついでに

.ssh/config設定

  1. $ vi ~/.ssh/config
  2. 下記を設定
    Host github.com
      ForwardAgent yes
  3. wq してvi終了
  4. 完了