VimConf 2014 を勤め先で開催することになったので、LT登壇者兼PAとして参加してきました。 LT では、Vimとmixiについてと、最近ずっとコツコツつくっていた Vim の lint ツール vint の2つについて発表してきました。
curl -sL dot.hoge.com | sh で自分専用環境を構築する方法(かっこいい)
こんばんは、最近Slackのbotを開発していて、同期から「それ、hubotでできるよ」と聞いて一度死んで転生した(;♥;)です。今回は周りのエンジニアがシビれる環境構築コマンドを作成してみましょう!
なんと、下のコマンド一発で環境構築できるんですよ? シビれますね!
$ curl -sL dot.orgachem.com | sh
なお、内容はさくらVPS向けに書いております!
やり方
サブドメインを追加
サブドメインの登録には時間がかかるので先に済ませておきましょう。
私はさくらでドメイン(
orgachem.org
)を取得したので、さくらからdotfiles
用のサブドメイン(dot.orgachem.org
)を追加します。 お名前comの方は、お名前.comでサブドメインを登録する - Wrap Disital Worldが参考になりそうです。githubで
.bashrc
などをまとめたリポジトリ(dotfiles
)を作成既に
dotfiles
系のリポジトリがある方は 3 に進んでください。githubに
.bashrc
や.vimrc
などをまとめたdotfiles
というリポジトリを作成します(例:OrgaChem/dotfiles)。まず、サーバーにアップロードする設定ファイルを~/.dotfiles
にまとめます。$ mkdir ~/.dotfiles $ cd ~/.dotfiles $ mv ~/.bashrc . $ mv ~/.vimrc . ...
次に、githubで新しいリポジトリを作成します(new repositryからできます)。リポジトリの名前は
dotfiles
にしておきましょう。$ git init $ git add ~/.* $ git commit -m "Initial commit" $ git remote add origin https://github.com/YOUR_ACCOUNT/dotfiles.git $ git push -u origin master
4行目の
YOUR_ACCOUNT
は、あなたのgithubアカウントに書き換えてください。インストール用のシェルスクリプトを用意
次に、インストール用のシェルスクリプトを用意しましょう。2行目はおまじないです。
#!/bin/sh # Thanks, @kaorimatz! set -e set -u setup() { dotfiles=$HOME/.dotfiles has() { type "$1" > /dev/null 2>&1 } symlink() { [ -e "$2" ] || ln -s "$1" "$2" } if [ -d "$dotfiles" ]; then (cd "$dotfiles" && git pull --rebase) else git clone https://github.com/YOUR_ACCOUNT/.dotfiles "$dotfiles" fi has git && symlink "$dotfiles/.gitconfig" "$HOME/.gitconfig" has git && symlink "$dotfiles/.zshrc" "$HOME/.zshrc" has vim && symlink "$dotfiles/.vimrc" "$HOME/.vimrc" } setup
下から9行目の
YOUR_ACCOUNT
もあなたのgithubアカウントに書き換えてください。 次に、下から4行目〜6行目のシンボリックリンクを張る部分は、設定ファイルに応じて書き換えてください。このスクリプトを
~/.dotfiles/setup.sh
に保存します。$ cd ~/.dotfiles $ git add setup.sh $ git commit -m "Add setup script" $ git push
サーバー(さくらVPSなど)にnginxを立てる
次に、curlコマンド
curl -sL dot.hoge.com
で先ほどのセットアップ用スクリプトをダウンロードできるようにWebサーバーを準備します。今回はnginxを使います。サーバーにログインしたらnginxをインストールしましょう。(サーバーで実行) $ sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm $ sudo yum install -y nginx --enablerepo=nginx $ sudo service nginx start $ sudo chkconfig nginx on
nginxの設定をおこないます。下から4行目の
example.com
をあなたのドメインに書き換え、下から2行目のYOUR_ACOUNT
はあなたのgithubアカウントに書き換えてください。$ sudoedit /etc/nginx/conf.d/default.conf server { listen 80; server_name localhost; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } server { listen 80; server_name dot.example.com; rewrite ^ https://raw.githubusercontent.com/YOUR_ACCOUNT/dotfiles/master/setup.sh; }
この設定は、
dot.hoge.com
でアクセスしてきたクライアントをhttps://raw.githubusercontent.com/YOUR_ACCOUNT/dotfiles/
にリダイレクトさせるものです。nginxを再起動します。
$ sudo service nginx restart
終わり
$ curl -sL dot.YOUR_DOMAIN.org | sh
終わりに
いかがでしたか? これであなたもシビれる環境構築が始められますね!
この利用コンセプトを披露してくれた@kaorimatz、このインストール方法の注意点についてアドバイスにしてくださった@supermomongaさんに感謝!
Nodeの認証モジュール「Passport」の解説ページを邦訳しました
Nodeの代表的な認証モジュール「Passport」の解説ページを(勉強ついでに)邦訳しました(邦訳版ページ)。
対訳機能はじめました
@merborne さんのエントリ「英語圏のオープンソースプロジェクトにおける翻訳ドキュメントの問題点とその解決のための一方策」に触発されて対訳機能をつけてみました。パラグラフの末にある» 原文
を押すと、対訳が下に表示されます(下図)。
大学の頃の研究が国際会議MoMMで表彰されました
大学の頃の研究が、オーストリアで開かれていたMoMM2013という国際会議のショートペーパー部門で表彰されました。うれしい! ただ、(~♥~)は既に大学を卒業してしまった身なので、英語論文を書き上げたのは先生です。つまり、私の論文が表彰されたというよりかは、私の研究アイデアが認められた、という印象ですね。先生に大感謝です。
MoMMって何?
MoMMはモバイルコンピューティングとマルチメディアを取り扱う国際会議です。モバイルのMo+マルチメディアのMMで、MoMMというわけです。この国際会議では研究初期のアイデアなどを発表するショートペーパー部門があり、この部門で私の研究テーマ「同時押し暗証番号認証」が表彰されました。
何を表彰されたのか
当時の私の研究テーマは、暗証番号認証をなんとかしてより安全にすることでした。いろいろな認証方法を考え、あーでもないこーでもないとやっていたそんなあるとき、研究アイデアの元となるアイデアをひらめきました。
「複数の数字を同時に入力できたら、入力できるパターンが増えるんじゃないか?」
続きを読むgoogkit を使ったカンタン Closure Library 開発のすすめ
この記事では、JavaScript - Client Side - Advent Calendar 2013の23日目の記事です。
さて、googkit を使ってカンタンに Closure Library での開発をはじめる方法を紹介します。
googkit は Closure Library を使った開発を手助けするツールです。私が前に開発した Webアプリケーション「piine! 」も Closure Library + googkit を使っています。
では、本題の googkit の説明に移る前に Closure Library の説明から始めましょう。
すばらしき Closure Library
そもそも Closure Library ってばすごいライブラリなんですよ!!(白目
- 安心の Google 製
パリッとキマったクラス指向
var Child = function() { goog.base(this); }; goog.inherits(Child, Parent);
おまかせ依存管理
goog.require('foo.bar'); foo.bar.FooBar(); // これだけで foo.bar モジュールが利用できる!
質・量ともに類を見ないライブラリ群(30MBくらいある!)
// 配列処理はもちろん goog.require('goog.array'); goog.array.forEach(arr, function(elem, index) { console.log(elem, index);}); // ときどき欲しくなるこんなのも goog.require('goog.crypt.base64'); var base64str = goog.crypt.base64.encodeString('Hello, World!');
Closure Compilerとの相性バツグン
Closure Compiler の機能をフルに活用できるのは Closure Library だけ!
なんかAltJSよりもすごい部分があるような……?
ま、まさか!
AltJSなんていらなかったんや…!
でも…Closure Libraryって…
続きを読むvim-splashを使い倒してこそ真のVimmerですぞ #vim
Vim Advent Calendar の19日目です。昨日はyoshikawさんのサーバ管理に役立つVim技10選でした。
さて、@modsoundさんの記事、Vimmer名刺を持ってVimConfへ出かけよう に触発されてvim-splashの可能性を最大限に引き出す使い方を提案します。