Sunday, July 27, 2014

座間味遠征 2014

2014/7/26 一路座間味へ。

スローガンは酒・海・肉・星。

座間味遠征は毎年実施しておりますが、昨年は台風によって行けず、今年ようやく実現したのでした。

今回は @mgwsuzuki 殿、 @tompng 殿、 @k_nishijima 殿と奥様、あとはジャック殿、サラ殿と自分を含めた、総勢5名と2匹による遠征。

到着(座間味港)の図。

DSC_1541.JPG

毎年恒例、七号棟の図。

DSC_1546.JPG

阿真ビーチの図。

DSC_1549.JPG

阿真ビーチのドロップオフの図。

P7260080.JPG

@k_nishijima 殿の図。

P7260074.JPG

@mgwsuzuki 殿ダイブの図。

P7260076.JPG

@tompng 殿ダイブの図。

P7260075.JPG

日没の図。

DSC_1564.JPG

チシ展望台エントリしようとするも、風向きにより断念の図。

DSC_1569.JPG

古座間味ビーチの図。

DSC_1572.JPG

古座間味ビーチ海中の図。

P7270103.JPG

古座間味ビーチは浜辺にビーチパラソルが設置されているものの、実際は輻射熱でかなり無理。これに対し、ビーチから少し陸にあがることで改善することを確認。後述のサンシェードが役に立つ模様。ちなみにビーチパラソルひとつ¥1,000。

DSC_1571.JPG

以降は、次回へ向けたメモを徒然なるままにメモ。

  • バディのフルネームと年齢をおさえておくべし
    • フェリーざまみ乗船手続きと、阿真コテージチェックイン時向け
    • フェリーざまみ乗船手続き時、用紙に記載する電話番号は代表者のみで良い模様
    • 空席状況確認は 座間味村公式webサイト
  • 阿真コテージ殿からのレンタル物は以下
  • ビールが足りない件
    • アルコール組4名に対し、ロング缶箱×2で足りず、ショート缶箱×2を加えて丁度良い
  • ユニソン殿から購入した食材が最高の件
    • あの旨さは秘伝のタレにあり
    • 味付け十分のためタレ系不要だけど、塩コショウ的調味料は用意すべし
    • 油はいずれにも添付しておらず、用意すべし(なくても以外とどうにかなった)
    • 以下なパンフは変わるおそれありのため、毎年ユニソン殿から調達しなおすべし
    DSC_1495.JPG
  • サンシェードテントなるものを用意推奨

ちなみに、座間味航路の途中にある阿嘉港の絵柄が変化していたため BEFORE/AFTER を以下に。

DSC_0281.jpg
DSC_1539.JPG

個人的には前の絵柄のが好み。

各位お疲れ様でした。

Friday, July 11, 2014

ハッカーズチャンプルー2014 前夜祭

仕事は早めにお開きにして、 ハッカーズチャンプルー2014 前夜祭 に参加へ。

なにやら司会役を仰せつかっていた模様。それにつけても、だいぶ早く着いたのでひとり作戦会議へ。

並びはデフォルトで以下な模様。 この並びなら @shumach217 殿が先頭のため、当方が先に司会するとして。 @enkw_ 殿までで一旦切って、小休止を挟むがよさげ。残りは @shumach217 殿にバトンタッチする作戦で。

  • @shumach217 殿
  • @urabusa 殿
  • @nanophate 殿
  • @Yutaka_Kinjyo 殿
  • @cota2n 殿
  • @enkw_ 殿
  • ★ここで休憩か。あとは @shumach217 殿にお任せしたいところ。
  • @asumaslv 殿
  • @cloneko 殿
  • @murabito_cx 殿
  • @michinori 殿
  • @masamasa_massa 殿

ええと。実際は @shumach217 殿が、最初に発表しつつそのまま司会の流れに。

会のご様子。

DSC_1486.JPG

あとは司会とかしつつメモ。

  • @shumach217 iOSデバイスの実機テストの自動化 - Swift -
    • RubyとSwiftのコラボで、カオスが香ばしい。スライドの字が小さくて、遠方からだと見難かったのか。
  • @urabusa セキュリティ・キャンプ2014に応募(落選)した話
    • LTははじめてにつき、マサカリなげないでとのこと。 セキュリティキャンプはセキキャンと略すと。 なにやら、「ておくれの称号」なるものがあるらしい(笑)
  • @nanophate トランスコーダーが教えてくれたこと・・・
    • 台風ソンでもくもくしてたとのこと。 西島殿のイベントはいつもゆるゆるに期待しつつ、今回あんま準備してなかったとのこと。 ムービーがかなり格好良しでした。
  • @Yutaka_Kinjyo 会社に GitHub 導入した話
    • 通称 GitHub おじさん。発表が超早でこなれておりました。まさにライトニングトーク!
  • @cota2n zabbix様がみてる
    • 運用監視な話。 ラズパイとarduinoでセンサを構成し、zabbixで監視な模様。 温度センサは秋月100円。 ラズパイあまってたらいただきたいとのこと(笑)
  • @enkw_ ownCloud on AWS
    • ownCloud のアーキテクチャが ownCloud 死んだら終わりで(笑) デモがうまくいってなかったのが少し心残り。 難しいです、LTでのデモ。
  • @asumaslv Fluentd+Elasticsearch+Kibanaの普通の話
    • マサカリ歓迎。 伊藤殿のサインは既にいただいた模様。 ログはみんなみたくない。 Fluentd なログをキバナでログ解析。
  • @cloneko AWSでサーバー構築「クラス」の学習環境を作ってみた
    • 読み方はクローン・コではなく、クロネコの模様。 某チューニンガソンなるイベントにて全国7位。 「EC2インスタンの作ったり壊したり」を授業コンテンツとして学生殿らに提供している話。 採点をserverspecで実施との話がツボでした。 AWS利用代金は、現状自腹とな(泣)
  • @murabito_cx 攻める情シス
    • チューニンガソンのイベントで1位。 情シス=社内の雑多なことやる、な話。 情シスはツール地獄。 防戦一方のため、攻める情シスなるものを目指している模様。 立体機動装置ばりの精神力が必要とのこと。 まずExcel脱却。kintouneを導入の話。 kintoune 開発ライセンスでの検索をお試しあれとのこと。
  • @michinori ローカルブログサイトの過去と未来
    • 趣味はパズドラ(笑) てぃーだブログ、会員数10万! および広告展開と、データセンターの話。
  • @masamasa_massa GameJam というイベントを通して
    • IGDEという団体の話。 国際NPO法人のゲーム開発の集団な模様。 ゲーム作りをきっかけに、学生に羽ばたいてほしいとの思いで立ち上げ。 GameJam 8/2,3(Sat,Sun) 琉球大学 工1-321(参加無料)な模様。

司会ここまで。 @asumaslv 殿と、気になる Kibana 談義。 Fluentd+Elasticsearch+Kibana は、やはり、人の動向のようなものを捕まえるといった趣向が楽しい様。 当方らも導入してみたものの、少量のエラーログ解析程度には効果薄。

しかし、司会する前に発表する流れに順守したく、当方も急遽その場で作成したネタをねじ込むも、 酔いすぎてグダグダとなり申し訳ない。 司会の方もグダり気味で。(泣) とはいえ、無事でないものの一応こなせた模様。

関係各位、お疲れ様でした。

ちなみに、明日の本編はお仕事で参加できないのが確定。(泣)

Tuesday, May 27, 2014

Emacs Lispファイルのヘッダコメントを自動挿入

.el なファイルの先頭にあるライセンスとかが書かれているアレをどうにか自動挿入したい。

そもそものアレの名前もわからない。 Library Headers - GNU Emacs Lisp Reference Manual によればヘッダコメントなるものらしい。

ヘッダコメントを自動挿入してくれるツールを探すと以下な記事あり。

EmacsWiki: Automatic File Headers

どうやら Auto Insert Mode なるものがある模様。

EmacsWiki: Auto Insert Mode

以下なマニュアルに、より噛み砕いた説明あり。

Autoinserting - Features for Automatic Typing

Auto Insert Mode お試し

適当に foo.el ファイルを開き M-x auto-insert すると以下な流れに。なお当方の Emacs は GNU Emacs 24.3.1 。

  1. Short description を訊かれる

    一行程度で書くものらしい。お試しで "Support for FOO" と入力してみる。 詳しくは Library Headers - GNU Emacs Lisp Reference Manual にあり。

  2. Keyword を訊かれる

    パッケージを M-x finder-by-keyword で探すときに使われるキーワードとのこと。 適当に "local" と入力しエンター。 詳しくは Library Headers - GNU Emacs Lisp Reference Manual にあり。

    なおプロンプトが表示されているときに C-h をタイプすると利用可能と思われるキーワードが表示される。 いつか使うかもしれないので簡単にメモ。

    • abbrev: 略記のハンドリング、タイピングショートカット、マクロ
    • bib: 参考文献一覧の機構
    • c: Cに関するプログラミング言語
    • calendar: カレンダとかタイムマネジメントなツール
    • comm: 通信、ネットワーク、リモートファイルアクセス
    • convenience: より速い編集に便利なもの
    • data: テキストでないデータの編集
    • docs: Emacs 文献の便宜
    • emulations: 他エディタのエミュレーション
    • extensions: Emacs Lisp言語の拡張
    • faces: テキストのフォントとカラー
    • files: ファイルの編集と操作
    • frames: Emacsのフレームとウィンドウシステム
    • games: ゲーム、ジョーク、娯楽
    • hardware: システムハードウェアとのインタフェース
    • help: オンラインヘルプシステム
    • hypermedia: テキストや他メディアタイプとの結びつけ
    • i18n: 国際化とキャラクタセットのサポート
    • internal: Emacs内部向けコード、ビルドプロセス、デフォルト
    • languages: 言語編集向けの専用モード
    • lisp: Emacs Lisp含むLispのサポート
    • local: あなたのサイトでのローカルコード
    • maint: Emacs 開発ツールおよび支援
    • mail: メールの閲読と投稿
    • matching: 検索、マッチング、並べ替え
    • mouse: マウスサポート
    • multimedia: 画像と音楽
    • news: USENET ネットニュースの閲読と投稿
    • outlines: 階層的なアウトラインとメモ取り
    • processes: プロセス、サブシェル、コンパイル
    • terminals: テキストターミナル(tty)
    • tex: TeX ドキュメントフォーマッタ
    • tools: プログラミングツール
    • unix: UNIX の機能とのインタフェースとエミュレータ
    • vc: バージョン管理
    • wp: 文書処理

以上により以下なヘッダコメントが foo.el ファイルに挿入される。

;;; foo.el --- Support for FOO

;; Copyright (C) 2014  Chiyanop

;; Author: chiyanop <chiyanop@local>
;; Keywords: local

;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.

;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with this program.  If not, see <http://www.gnu.org/licenses/>.

;;; Commentary:

;;

;;; Code:



(provide 'foo)
;;; foo.el ends here

おしい。 Author の設定どうやるんだろ。あと This file is not part of GNU Emacs. なメッセージも一緒に入ってほしいところ。

Auto Insert Mode のカスタマイズ

結論は以下の設定。これを ~/.emacs.d/init.el とかに書いておくと所望するコメントが挿入されました。

(setq user-full-name "Your name")
(setq user-mail-address "Your email address")
(eval-after-load 'autoinsert
  '(setq auto-insert-alist
         (put-alist
          '("\\.el\\'" . "Emacs Lisp header")
          '("Short description: "
            ";;; " (file-name-nondirectory (buffer-file-name)) " --- " str "

;; Copyright (C) " (format-time-string "%Y") "  "
            (getenv "ORGANIZATION") | (progn user-full-name) "

;; Author: " (user-full-name)
            '(if (search-backward "&" (line-beginning-position) t)
                 (replace-match (capitalize (user-login-name)) t t))
            '(end-of-line 1) " <" (progn user-mail-address) ">
;; Keywords: "
            '(require 'finder)
            '(setq v1 (mapcar (lambda (x) (list (symbol-name (car x))))
                              finder-known-keywords)
                   v2 (mapconcat (lambda (x) (format "%12s:  %s" (car x) (cdr x)))
                                 finder-known-keywords
                                 "\n"))
            ((let ((minibuffer-help-form v2))
               (completing-read "Keyword, C-h: " v1 nil t))
             str ", ") & -2 "

\;; This file is not part of GNU Emacs.

\;; This program is free software; you can redistribute it and/or modify
\;; it under the terms of the GNU General Public License as published by
\;; the Free Software Foundation, either version 3 of the License, or
\;; (at your option) any later version.

\;; This program is distributed in the hope that it will be useful,
\;; but WITHOUT ANY WARRANTY; without even the implied warranty of
\;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
\;; GNU General Public License for more details.

\;; You should have received a copy of the GNU General Public License
\;; along with this program.  If not, see <http://www.gnu.org/licenses/>.

\;;; Commentary:

\;; " _ "

\;;; Code:



\(provide '"
       (file-name-base)
       ")
\;;; " (file-name-nondirectory (buffer-file-name)) " ends here\n")
          auto-insert-alist)))

以降、設定に至るまでの云々。まずヘッダコメントの雛形はどのように定義されてるのか。

どうやら auto-insert-alist 変数に雛形が保持されているらしく M-x describe-variable して変数の説明を確認することに。

曰く auto-insert-alist は (CONDITION . ACTION) または ((CONDITION . DESCRIPTION) . ACTION) な要素からなるリストで、 CONDITION はファイル名にマッチする正規表現かメジャーモードのお名前、 DESCRIPTION はプロンプトか何かに使われる文字、 ACTION は挿入の骨組みになる部分、とある。

auto-insert-alist の初期値は autoinsert.el に定義されていて内容は以下。 ACTION がどの辺りに該当するのかわかりにくい。

    (("\\.el\\'" . "Emacs Lisp header")
     "Short description: "
     ";;; " (file-name-nondirectory (buffer-file-name)) " --- " str "

;; Copyright (C) " (format-time-string "%Y") "  "
 (getenv "ORGANIZATION") | (progn user-full-name) "

;; Author: " (user-full-name)
'(if (search-backward "&" (line-beginning-position) t)
     (replace-match (capitalize (user-login-name)) t t))
'(end-of-line 1) " <" (progn user-mail-address) ">
;; Keywords: "
 '(require 'finder)
 ;;'(setq v1 (apply 'vector (mapcar 'car finder-known-keywords)))
 '(setq v1 (mapcar (lambda (x) (list (symbol-name (car x))))
                   finder-known-keywords)
        v2 (mapconcat (lambda (x) (format "%12s:  %s" (car x) (cdr x)))
           finder-known-keywords
           "\n"))
 ((let ((minibuffer-help-form v2))
    (completing-read "Keyword, C-h: " v1 nil t))
    str ", ") & -2 "

\;; This program is free software; you can redistribute it and/or modify
\;; it under the terms of the GNU General Public License as published by
\;; the Free Software Foundation, either version 3 of the License, or
\;; (at your option) any later version.

\;; This program is distributed in the hope that it will be useful,
\;; but WITHOUT ANY WARRANTY; without even the implied warranty of
\;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
\;; GNU General Public License for more details.

\;; You should have received a copy of the GNU General Public License
\;; along with this program.  If not, see <http://www.gnu.org/licenses/>.

\;;; Commentary:

\;; " _ "

\;;; Code:



\(provide '"
       (file-name-base)
       ")
\;;; " (file-name-nondirectory (buffer-file-name)) " ends here\n")

Autoinserting - Features for Automatic Typing によれば "Short description: " とそれ以降が ACTION にあたるらしい。 記法は Skeleton Language - Features for Automatic Typing によるもの。

さらに Skeleton Language - Features for Automatic Typing によれば "Short description: " はプロンプトに表示される文字で、それより後に続く要素が挿入されていく模様。

要は変数 user-full-name と user-mail-address を設定すればよさそう。 あと This program is… の前の行に This file is not part of GNU Emacs. を挿入してあげればよさげ。

かくかくしかじかで先に説明した設定に至りましたと。

これにて Emacs Lisp なパッケージを量産できるようになるのか。