2015年7月4日土曜日

Azure上のUbuntuにデスクトップ環境を整えてAtom+language-reviewを試す

どうもLinux環境のAtom+language-reviewで動作に怪しい箇所がちょいちょいあるらしいという電波を受けたので、環境を作ってみました。
完成図はこんな感じです(図1)。
図1 今回の完成図
手元のPCにUbuntu Desktop版を入れるのは嫌だなぁと思ったので、Azure上にUbuntu 14.04のインスタンスを新規に立てました。

2015年6月22日月曜日

OS Xで退席時に画面表示を消してバッテリ消費を削る話

Macを使っていて、退席時にホットコーナーを使ってスクリーンセーバー起動するという流れ*1でずっと使ってきたのですが、新MacBookを使うようになってから気になっていることがありました。
スクリーンセーバー、やたらMacが熱くなるしバッテリ減るのです。まあ考えてみると無駄にグラフィック描画をしているので無理もありません。
何かまともな方法無いかなーと考えて探してみた話です。
スクリーンセーバーの選択肢に黒背景表示(あるいは白背景表示)のみ、とかがあると良いかなーと思いましたが、探した限りは見つかりませんでした。
何か方法あるのでは、と思って少し調べてみるとOS X Mavericks: スクリーンセーバの入/切を切り替えるというエントリが見つかりました。
が、単純にホットコーナーの扱いについて書いているだけでした。
Turn Screen Saver Offというのがそれかなーと思い、試してみたのですが 特に効果ありませんでした。
できないのかなー、めんどいなーと思いながら、もう少しメニューを眺めたところ
図1 ホットコーナーの設定画面
一番下にPut Display to Sleepというのを見つけました(図1)。
これだ!と設定してみると、案の定画面端へマウスポインタを持っていくことで画面がオフになるようにできました。
適当にトラックパッドを叩くとスクリーンセーバー復帰と同様に画面が戻ってくるので、あってほしい挙動です。
OS Xよくできてた。
[*1] WindowsだったらWin+Lを叩いて退席するやつですね

2015年6月21日日曜日

弱Vim使いが中途半端な予備知識でGoを書き始めたら

ぬるま湯Vimおじさん

私は、自分が離れたプログラミング環境を忘れるのがとても早いです。VimでPHPコードをひたすら書いていた時期もあって、その頃はctags連携とかいろいろやっていた気がしますが、今では何一つPHPについて思い出せません。
Vim自体の使い方にしても、タブは使うけどウィンドウ分割は全然使わないという生活をしていた結果、C-w jhklC-w C-wすらすっかり忘れてました。思えばこの数年、vim -pでぶわーーっとタブを開いて、あとはほぼgtしか使わない生活でした。とりわけ、Mac上では割とMacVimも多用しているため、ウィンドウ移動をトラックパッドでまかなえるという事情もありました。
そんな私、実はgolangを勉強しては少々離れている間に忘れる、というループを既に数回繰り返しているので、今度は特に開発環境面のメモを残しながら進めてみようかと思って書いてみました。

2015年6月20日土曜日

Unreal Engine 4 ビデオチュートリアル記 #5

前回: Unreal Engine 4 ビデオチュートリアル記 #4
前回はベルトコンベア作りだった。
やっている時には結構つらいと思ったけれど、振り返ってみると辛かったのは慣れが剥落してUI体系を触り直しになったあたりで、やっていたことはシンプルだった。
コライダーで見つけた対象へと適切に力を加えるという話だった。
今回でBlueprint Jump Startsシリーズは終わり。概要によると「ゲームの機能群をモジュール化されたBlueprintableなコンポーネント群へと切り分ける方法を紹介する」ものということ。

Blueprintableコンポーネントでゲームの振る舞いを構造化する

Using Blueprintable Components for Game Behavior

18分ぐらい。
今回は、これまでのものとは趣が違った。ゼロからハンズオンやっていく形ではなく、ワークフローを観て学ぶ感じだった。
UE 4.7以上でメインとなったBlueprintable Componentsについて。UnityのPrefabみたいなやつ。
ステージ上に配置したオブジェクトにスプライトや既存のBlueprint群を割り当てていき、それを再利用可能なBlueprint Classへと変換するのが前半のところ。
変換後のものを編集するためには、他のBlueprint Classと同様に一旦BP Editorで開くことになる。
当然のようにサブコンポーネントとなったBPが変数としてエクスポートしているものはUEのレベルエディタ側で編集できる。

感想

「UnityのPrefab、UE4ではどう扱うんだろう?」と思っていたところの実際の動きを眺めながらふんわり掴めるので良いチュートリアルビデオだった。
なお、前回の最後に書いていた動画再生とUE4操作のバランス取りについて、今回は実際に手を動かして編集するフェーズがなかったので次回へ持ち越し。

2015年6月18日木曜日

夏コミ(C88)原稿を書き始める、その前に

進捗どうですか

技術系サークルの皆さまこんにちは。夏コミ原稿書いてますか?
私はまだです。
文章を書く心構えや書き方という話については他の人々が書いている技術的な文章を書くための1歩、2歩、3歩技術的な文章を書くための第0歩 ~読者に伝わる書き方~を読んでもらうとして、ここでは文書フォーマットとエディタについて書きます。
文章を書く際にフォーマット選びは重要です。
私はこの2年ぐらい、雑誌原稿や技術同人誌、書籍原稿など技術系の文章に関わる際には多くの場合Re:VIEWというフォーマットで書いてきました。

Re:VIEWというフォーマット

Re:VIEWをご存知ない方も多いかと思います。ここでは簡単に紹介します*1
「Sphinxでよくね?」という方は多分それで良いので、タブを閉じて原稿へ戻りましょう。原稿しろ。
「Wordでよくね?」という方、一人で作業してかつレビュアーも立てない場合にはそれで良いので、タブを閉じましょう。原稿しろ。
複数人で分担して書くサークルや、書いたものを誰かにレビューしてもらうような場合は、原稿を書く前にもう少しお付き合いください。
Re:VIEWは、Markdown(含GitHub-flavored)よりもしっかりとした構文を持ち、入稿用PDFなどを比較的作りやすい、技術文書に適したプレーンテキストフォーマットです。
@kmutoさん、@takahashimさんを中心に、オライリー・ジャパン刊の書籍/電子書籍や達人出版会刊の電子書籍の執筆にて多くの利用実績があります。
多分Sphinxに近い立ち位置だと思っていますが、なにぶんSphinxについてほとんど知らないのでイメージだけです。
個人的には
  • 技術文書でよくあるレイアウト面の需要にほどよく応えてくれる程度に表現力のある構文
    • 行番号付きリストとか、コマンド入力ブロックとか、図版の番号振りと参照自動更新とか、章/節間の参照とか脚注あたりが特にラクで良いです
  • PDF、HTML、EPUBへの出力がサクッとできる点
  • Wordよりもdiffを確認しやすい点
    • GitHubのprivate repoに原稿を置いて、コミットされたRe:VIEWのファイルをピアレビューしたり、原稿のpushをトリガーとしてPDFの自動ビルドをおこなっている同人サークルもあると聞きます
  • 適当にフィルタしてざっくり情報を拾い出すのが簡単な点
    • 表記ゆれを疑った時に雑にgrepで確認できるのはとてもラクです
が気に入っています(手軽さの面では確実にMarkdownへ軍配が上がります)。
他にもメリットは多いのですが、そのあたりの一部はblogをRe:VIEWで書くことを考えるを参照してください。
ちなみに、このblogもRe:VIEWで書いて(図1)HTMLへ変換したものをBloggerへ流し込んだものです。
図1 Re:VIEWで書いたblogの原文
Re:VIEWの基礎から同人誌作成向けのtipsもまたRe:VIEWで書かれたものがあります(FirstStepReVIEW)。私は執筆に関わっていませんが、良いドキュメント(今でもたまに読み返します)なので気になった方は読んでみてください。はじめてのReVIEWでダウンロード販売もされていますね。
さて、あるフォーマットで文章を書く際に環境は重要です。
[*1] Re:VIEWはやっぱりぐぐらびりてぃが低いので、詳細は「kmuto review」でぐぐるのが定番です。

文章を書く環境の重要性

しばらく前まで、私はRe:VIEWでの文章作成にMacVim+Vim用シンタックスハイライト+保存時フックでのHTML出力(自前)+Firefox(HTMLプレビュー用)を使っていました。
しかし、ここ半年ほどはAtomとAtom用のRe:VIEW構文サポートパッケージであるlanguage-review(@vvakame作)を使っています(図2)。
図2 Atom+language-reviewで文書編集している様子
リアルタイムにRe:VIEWの文法違反を指摘してくれる点、各種インライン構文の自動補完をほどほど賢くやってくれる点、右ペインに文章のプレビュー表示をおこなってくれる点が特に気に入っています(図3)。Atomをインストールしていればパッケージ一覧画面からlanguage-reviewと叩くだけでインストールできてお手軽ですしね*2
図3 Atom+language-reviewがLintをかけてくれるところ
[*2] コマンドラインからは適当に apm install language-review で入るようですね

環境に手を入れられることの重要性

Atomは「21世紀の、ハックできるエディタ」を標榜するだけあって、かなり深いレイヤまで簡単にソースコードを追えます。
そして、language-reviewはオープンソースで開発されていて、誰でもソースへアクセスできます。
私も、しばらく前からlanguage-reviewの中身を調べ、手を加えてはPRをこさえるようにしています。この話は長くなるので別のエントリにまとめますが、いじるの自体がなかなか楽しく、そして実用的という一粒で二度美味しい感じです。
まずは使ってみて、なんじゃこりゃーーーーと思った箇所についてはぜひissueを立ててください。きっとよくなっていきます。

そういうわけで

楽しい原稿ライフを!

2015年6月16日火曜日

Unreal Engine 4 ビデオチュートリアル記 #4

前回: Unreal Engine 4 ビデオチュートリアル記 #3
前回はジャンプ台作りとホバーオブジェクト作りだった。特にホバーオブジェクトはコンポーネントを作成して適用するところから、実行中にkを叩いてシーン情報へ反映するところまで、参考になるものがいっぱいあった。
Blueprint Jump Startsシリーズはそろそろ終わり。今回はベルトコンベア作り。

2015年6月15日月曜日

プログラマが新MacBookを2ヶ月間いじめ抜いた結果

Retina MacBookを4/10に注文、4/14出荷、届いたのは4/17だったので正確にはもうすぐ2ヶ月ですが。
ポエムキャンセルリンク

Macと私

この10年近く、日常使いのPCへの投資効果を信じてきた。やりたいことは常時山ほどある。バッテリー持続時間が伸びれば持っていける先が増える。高性能になればオフラインでできることが増える。軽くなれば持ち運ぶシーンが増えて作業時間を確保しやすくなる。PCへ年間数万円突っ込むことで有限な時間の利用効率が高まるならばと、他を削って予算を優先的にPC、特にモバイルノートPCへと振り向けてきた。