若くない何かの悩み

何かをdisっているときは、たいていツンデレですので大目に見てやってください。

Creators Meetup 18 で発表してきた(+感想)

そういえば、一ヶ月前にクリエイターの集うイベント「Creators Meetup 18th」で発表してきました。発表した内容は一年ほど前の記事に書いたプレゼンイイネシステム「piine!」です。

なお、下の動画から piine がご覧になれます。

piine demo movie

このスライドで言いたかったこと

  • コミュ障でも小道具で立派な発表ができる
  • バグによる偶然の解決策を見逃すな
  • 「一見関係ないように見えても、後で役にたつ」は本当だった(Connecting the Dots)

発表の詳細は SpeakerDeck をご覧ください。

続きを読む

curl -sL dot.hoge.com | sh で自分専用環境を構築する方法(かっこいい)

こんばんは、最近Slackのbotを開発していて、同期から「それ、hubotでできるよ」と聞いて一度死んで転生した(;♥;)です。今回は周りのエンジニアがシビれる環境構築コマンドを作成してみましょう!

なんと、下のコマンド一発で環境構築できるんですよ? シビれますね!

$ curl -sL dot.orgachem.com | sh

なお、内容はさくらVPS向けに書いております!

やり方

  1. サブドメインを追加

    サブドメインの登録には時間がかかるので先に済ませておきましょう。

    私はさくらでドメインorgachem.org)を取得したので、さくらからdotfiles用のサブドメインdot.orgachem.org)を追加します。 お名前comの方は、お名前.comでサブドメインを登録する - Wrap Disital Worldが参考になりそうです。

    1. さくらのDNS設定ページを開く
    2. 左側の変更ボタンを押す
    3. エントリ名にサブドメイン名を入力
    4. 種別に「別名(CNAME)」を選択
    5. 値に「@」を入力
    6. 変更ボタンを押す
    7. 左側のデータ送信をクリック
    8. DNSレコードが更新されるまで待つ(数十分から数時間)
  2. 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アカウントに書き換えてください。

  3. インストール用のシェルスクリプトを用意

    次に、インストール用のシェルスクリプトを用意しましょう。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
    
  4. サーバー(さくら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
    
  5. 終わり

     $ curl -sL dot.YOUR_DOMAIN.org | sh
    

終わりに

いかがでしたか? これであなたもシビれる環境構築が始められますね!

この利用コンセプトを披露してくれた@kaorimatz、このインストール方法の注意点についてアドバイスにしてくださった@supermomongaさんに感謝!

Nodeの認証モジュール「Passport」の解説ページを邦訳しました

Nodeの代表的な認証モジュール「Passport」の解説ページを(勉強ついでに)邦訳しました(邦訳版ページ)。

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 を使っています。

Screenshot of piine

では、本題の 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の可能性を最大限に引き出す使い方を提案します。

vim-splashでなにができるの

かっこいい起動画面

All you need is VIM

VimmerにモテるVim名刺

orga_chem

続きを読む