Visual Studio Code の PHP 言語サポート vscode-php-intellisense

Visual Studio Code Advent Calendar 2016 の 12日目です!

ここのところずっとウォッチしていました、Visual Studio Code(vscode)で利用可能な PHP サポート拡張になります “vscode-php-intellisense” が完成度をあげ、かなり良い感じになっています。 🙂

https://github.com/felixfbecker/vscode-php-intellisense

Advanced PHP IntelliSense for Visual Studio Code. In opposite to the included PHP IntelliSense and other PHP extensions, this uses an AST to parse the source code instead of relying on naive regular expression parsing.

少し前まで PHP をかくときは、Eclipse の PHP Developer Tools を使っていましたが、vscode-php-intellisense がほぼ同様の機能を実装しましたので、検証しながら乗り換えをしております。

以下、vscode-php-intellisense で WordPress を読ませて動作させている様子です。(サイトの横幅の関係でスクリーンキャストがつぶれてしまいましたので、見づらい場合は画像をクリックしてフルサイズでご覧ください)

まずはエラーチェック。構文間違えなどをリアルタイムに指摘してくれます。

error

定義ジャンプ。PHPDoc が表示でき、関数・メソッドの定義位置に F12 でジャンプします。これがないと困ります 🙂

jump

「定義をここに表示」と「参照先検索」機能。「ここに表示」はインラインで関数定義の内容をぱらっとみるとき便利です。また、PHP は動的型付け言語なので完全ではありませんが、呼び出し元検索があるのは嬉しい部分です。

ref

最後は入力補完。 PHP の標準関数を補完しています。 PHPDoc を表示しながら、引数が入力できます。

comp

ユーザ定義関数の補完も現在 master ブランチでは可能になっています。 コメントアノテーションもみて、参照を解決しているのが分かります。

https://github.com/felixfbecker/php-language-server/pull/165

comp2

Ecipse PDT や PHPStorm 並の機能です。すごい。

このペースでいきますと、おそらく年内にはユーザ定義関数の補完も実装が完了し使える形になると思います。つまりは、WordPress や baserCMS のテンプレートタグの補完が可能になります。 😀

ユーザ定義関数補完以外は既に動作するものが Marketplase にリリースされていますので、まずは導入してアップデートを楽しみに待ちましょう。 🙂

https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-intellisense

Advanced PHP IntelliSense for Visual Studio Code.
In opposite to the included PHP IntelliSense and other PHP extensions, this uses an AST to parse the source code
instead of relying on naive regular expression parsing.

その他の機能のスクリーンキャストは以下で見ることができます。(ぼくのへたなアニメよりずっと分かりやすいのでぜひご覧ください…)

https://github.com/felixfbecker/vscode-php-intellisense

さて、この拡張は同じ作者の方がかかれている PHP 7 で実装された php-language-server を利用して動作しています。(このため、拡張を動作させるには vscode を動かすマシンに PHP 7 が導入され、パスが通っている必要があります)

この親となっている php-language-server ですが、これは Microsoft Language Server Protocol の実装です。

Language Server Protocol は、エディタ(IDE)と言語解析器をつなぐための共通プロトコルですので、今後 php-language-server は vscode 以外のテキストエディタと接続できる可能性があります。 (既に Eclipse Che が PHP サポートの実装に php-language-server を使っています)

逆に Visual Studio Code から見た場合、新しく追加された言語サーバーに接続することで、どんどん対応言語を増やすことができる仕組みです。(現在 vscode は Language Server Protocol クライアントのリファレンス実装のような形になっています)

vscode と Language Server Protocol を使って対応されている言語の一覧は以下で見ることができます。

https://github.com/Microsoft/language-server-protocol/wiki/Protocol-Implementations

Language Maintainer Repository
PowerShell MS VS Code PowerShell extension
C++ MS VS Code C++ extension
C# OmniSharp Many integrations, repository
JSON MS Bundled with VS Code
CSS/LESS/SASS MS Bundled with VS Code
Xtext language framework Eclipse Eclipse Xtext
Crane PHP HvyIndustries VS Code Extension
PHP Felix Becker php-language-server
Haxe Dan Korostelev (@nadako) VS Code Haxe extension
Java (javac) @georgewfraser Javac based Java support
RAML RAML Workgroup raml-language-server Work in Progress
API Elements Vincenzo Chianese(@XVincentX) vscode-apielements
groovy Palantir groovy-language-server
Java (Eclipse) Eclipse, RedHat java-language-server, becoming Eclipse JDTLS
OCaml/Reason freebroccolo ocaml-language-server
Go Sourcegraph sourcegraph-go
Rust Jonathan Turner rustls
Scala Iulian Dragos dragos-vscode-scala
Polymer Polymer Team polymer-editor-service

まだまだ未完成のものもありますが、PowerShell などは完成形になっていてかなり使いやすいです。 標準の PowerShell ISE より良いかも?

というわけで、このような言語サポートも手伝って Visual Studio Code は愛用のエディタになりました。開発も活発なので今後も楽しみです。 😀

OSC 北海道 2015 WordBench 札幌 & baserCMS ユーザ会セミナー・ブース出展

6/13(土) OSC 北海道 2015 2日目に、WordBench 札幌と baserCMS ユーザ会の名前で、セミナーとブース出展を行ってまいりました。 🙂

今年のセミナーは WordPress を WP Multibyte Patch プラグインでおなじみ tenpuraさん(倉石さん)にお願いし、ぼくのほうは baserCMS のセミナーを担当させていただくという布陣で参加しています。

baserCMS のほうは、朝一番ということもあり、もしかして 10名くらいしか来られないのではないかと思っていたのですが、実際には倍以上の方が来場され、最後に質問もたくさん頂き、感謝、感謝でありました。

「ウェブサイト構築基盤、コーポレートサイトにちょうどいいCMS、baserCMSの紹介」というお題で、セミナーで使いましたスライドをこちらで公開します。

tenpura さんは「WordPress 最新情報、プロジェクト参加・貢献のご案内」ということでセミナーをされました。

WordPress でお金を稼いだことがある方は?

その中で、WordPress に貢献したことがある方は?

から「やべぇ、怒られるのか!?」と思わせるに十分な導入部は、

「貢献しよう」ではなく「貢献できます」

「押しつけがましいのは好きではないです。」

「こ、貢献してあげても、いいんだからね。」

というくだりに続き、オープンソースの本質をつく、OSC ならではのとても面白いセミナーとなりました。

セミナー中、最新 WordPress リリースリーダーをされた高橋大輔さんと、現存する最古の開発者(!?!?)としてぼくが並ぶ一幕もあり OSS の面白さを再確認することができました。(なんと年齢差 22 歳・・・ よぼよぼ。。)

さて、ブースのほうの話題ですが、baserCMS は今回なんと福岡から、開発リードをされています、江頭さんが来てくれまして、盛大に出展することができました。(ありがとうございました!)

手前から、baserCMS、WordBench 札幌、SaCSS ブースと仲良く並んでおります。 🙂

いつもお世話になっている、SaCSS ハムさんシール。 🙂

というわけで、数えてみたら OSC 北海道参加を続けて今年で 5年目でした。ネクストジェネレーションの活躍を楽しみに、来年もがんばろ〜。 🙂

セミナー・ブース関係者のみなさま、OSC 関係者のみなさま、今年もありがとうございました!お疲れ様でした!

クロスバイクでサイクリング(追加で買ったもの編)

去年くらいから体調があまり良くなく(歳ですゆえ…)、運動不足解消のためにと最近クロスバイクを買ってサイクリングを始めました(^ ^

bscycle-01

実は買うまでクロスバイクの由来も知らなかったのですが、山を走るマウンテンバイクと、スピードレースをするロードバイクの間の子とのこと。

購入車種は Marin Bikes の MUIRWOODS SE 19 インチ。SE はジャパンスペシャルということで、タイヤのサイズが異なったり、ブレーキがディスクからVブレーキに変更されているなど、日本の事情に合わせたモデルになっているようです。

26インチの少し太めタイヤということで、通常のスピードを出すクロスより街乗り向き。700c 細タイヤは段差でアイタタタってなりますが、この自転車はクロモリ(鉄)フレームとも相まって、スピードは犠牲になるものの柔らかい乗り味なのではないかと思います。

ちなみに腕が悪いのかホイルベースの長さか(多分前者)アンダーステア気味でしょうか。おもったより曲がらなくてドキッとすることが何度かありました。

さて、街乗りクロスといえどスポーツ自転車には走る以外の機能はついていませんので、いくつかパーツを買い足す必要があります。

必需品からそうでないものまで、購入して2ヶ月使って良いなぁと思ったものを紹介してみたいと思います。初めてクロスバイクを買う方の参考になれば。

ライト

自転車にライトは必ずつけます。たまに夜のサイクリングロードに無灯火が走っていますが、本気でステルスなので危ないです。リアもあったほうが良さそうです。

bscycle-02

bscycle-03

ライトパネルを押し込むと点灯するタイプが操作もしやすく便利でした。

Amazon より「Blackburn(ブラックバーン) VOYAGER+MARS CLICK COMBO ヴォイジャー+マーズクリックコンボセット ブラック 3BB-VY/MS-CLK」

フロントリアライトセットがお買い得。ゴムバンドをきつく伸ばして自転車のフレームに装着します。

盗まれないように鍵をかけましょう。

bscycle-06

長め太めのワイヤーの鍵で、走行中には肩からかけると安全反射板の役割になるタイプもあるようです。(Amazon より )

空気入れ

スポーツ系の自転車のタイヤは常にパンパンにしておかないと、スピードも出づらくパンクもしやすいとのこと。タイヤに空気圧の仕様が書いてありますので、走る前に圧力計を見ながらいっぱい入れてあげましょう。ぼくのは6気圧でした。

bscycle-17

米式/英式/仏式とコネクタが3種類あって、アダプタで互換できる空気入れが多いようです。1000〜2000円くらい(Amzon より 空気入れ

泥除け・スタンド

ほとんどのクロスは、泥除けもスタンドもついていないので追加購入。

bscycle-07

雨天は走らないので泥除けはいらなかったかも。ちなみに後ろにしかつけなかったので、あまり意味もなしてません。。ホコリよけくらいにはなっているかな?(笑)

スタンドは多くの場合必要になると思いますので自転車屋さんで合わせて購入を。サービスで取り付けもしていくれると思います。価格は 1000〜2000円くらい。

すそバンド

すそが広い服を着てクロスをこぐと、右のギアにひっかけて破けます(経験者)。というわけで、特にスーツ通勤で使う方はすそバンドを買いましょう。

bscycle-14

服によってはもんぺみたいになるのが玉に瑕ですが、しょうがありません。。こちらも鍵と同様反射板になっているタイプがあるようです。(Amazon よりすそバンド)

ドリンクホルダー

長距離、といっても1時間くらい走るなら水分補給必須。市販のペットボトルがそのまま使えるドリンクホルダーがとても便利です。

bscycle-04

bscycle-05

丸ボトルでも四角ボトルでもがっりちホールドでしてくれます。ちなみに愛車の MARIN ちゃんは縦にも取り付けられるネジ穴あり。お手持ちの自転車を確認してみましょう。

Amazon より「Bikeguy ペットケージ (500mlペットボトル専用) ブラック」

これで 627円はお買い得。ドリンクの収納取り出しもさっとできてお勧めです。

ハンドルグリップ

クロスを乗り始めて2〜3日はおしりが痛く、スポーツ自転車はやっぱり乗り心地は悪いかななんて思いましたが、ハンドルとペダルとサドルの3点で平均して体重を支えるということを意識してからは快適に運転できるようになりました。最近ではこのサドルは柔らかいなぁなんて思います。

ただ、ハンドルの握りだけは丸いグリップを掴み続けると指が固まるような違和感が。こちらは結構な時間乗っても修正できなかったのでグリップを変更。

bscycle-10

エルゴノミクスタイプのグリップに。向きをうまく設定すれば、段差の不快なショックも吸収してくれてかなり快適です。お勧め。

Amazon より「ERGON(エルゴン) GP1 ロング Lサイズ HBG08001」

グリップの取り換えは、元のグリップをごじってハンドルから外すか(結構疲れる)、ゴムであればカッターで崩壊させて新しいものと付け替えます。

その際にブレーキ位置を奥に変えなければいけないかもしれません。この場合はブレーキワイヤーのテンションが変わるので要ブレーキ調整です。(気をつけて)

メッセンジャーバッグ

クロスには買い物カゴがついてませんので、荷物を運ぶために斜めがけができる小さめメッセンジャーバッグを持っていると便利です。

bscycle-08

サイクリングしていると同じもの持ってる人たまに見かけます。 定番なんでしょうか? 🙂

Amazon より「Manhattan Portage 1606VJR」と「[ManhattanPortage] ショルダーパッド LGサイズ SHOULDER PAD LG MP1001」

メッセンジャーバッグを使いながら自転車に乗っていると、結構ストラップが食い込んできますのでショルダーパッドをつけたほうが良さそうです。

パンク修理セット

遠出して自転車がパンクしたり故障したりしたら悲しいので、バッグには修理セットを忍ばせておきましょう。

bscycle-13

ポータブルの空気入れと、パンク修理セット。自転車に合わせて六角レンチ、ドライバーなども入れておくと良いと思います。

Amazon より「Panaracer(パナレーサー) ミニフロアポンプ [フットステップ装備] 米式/英式/仏式バルブ対応 BFP-AMAS1」と「 Panaracer(パナレーサー) タイヤレバー&パンク修理パッチキット [携帯用ポーチ付属] PTL-KIT」

携帯ポーチがお気に入り。

スマートフォンホルダー

走った記録を GPS から計測したり、地図を手軽に見るためにスマートフォンを装備。

bscycle-11

bscycle-12

Garaxy S4 ですが、うまく固定されています。

Amazon より「MINOURA(ミノウラ) スマートフォンホルダー [iH-500-STD] 」

サイドアーム側は段差の揺れにも耐え、かなりがっちり固定されますが、ある程度経過するとさすがに振動でフレーム側の固定ネジが緩むなどはしますので、念の為ストラップはつけておいたほうが良いです。気がついたらネジをきつくしめておきましょう!

Runtastic Roadbike

スマートフォンアプリ「Runtastic Roadbike」。 GPS から距離や速度を計測し、地図の情報と合わせて走行ログを記録してくれます。

bscycle-16

Pro 版を購入して使っていますが、アップダウンも計測してくれるのがお気に入り。総走行距離もでますのでやる気もアップ。

測定開始から2ヶ月で520キロ走行したようです。年内 1000 キロを目標にしていましたがこの調子ならいけそう。 北海道は自転車に乗れる次期が短いですが。。 😉

調べてみると札幌には距離が長めのサイクリングロードが結構あります。

サイクリングマップ/札幌市

建設局総務部自転車対策担当課では、市内一円のサイクリングロードを紹介する「さっぽろサイクリングマップ」を作成しております。

今日は豊平川を遡上して、滝野森林公園・滝野の森口まで片道約 20キロ。 1時間13分でした。帰りは思いっきり下りなので 45分くらい。

bscycle-15

途中上りが結構きつかったですが、たまたま走っていた練習中のロードの人と、サイクリングなマウンテンバイクな人をマイルストーンにさせてもらって無事到着。 🙂

さぁ、目指せ支笏湖片道 50キロ!(超上りらしい…)

オープンソースカンファレンス北海道 2014 WordPress & baserCMS セミナー

2014/6/21(土) に開催されたオープンソースカンファレンス北海道にて、WordPress と baserCMS のセミナー & ブース出展を行ってきました!

oscdo-2014-04

今年はSaCSS(sapporo.css)ブースも加わり、メンバーのみなさまのご協力のもと、無事終了することが出来ました。ありがとうございました。

baserCMS ブースには、福岡より海老庵さんも! baser に興味を持っていただいた方の質問にたくさん答えてくださいました。(さすが)

マリメロちゃん製作のわぷーと、コモモさん製作のべっしーのかぶりものにより、いつにもましてブースも華やか(!?)に。 OSC らしい演出で良かったです。 😀

oscdo-2014-00

WordPress セミナー

ショッピングカートのサンプルテーマを使って、カスタムフィールドやカスタム投稿、フィルターフックの使いどころなどを、スクリーンキャストで実際にカーソルを動かしながら紹介しました。

oscdo-2014-01

テーマの名前は wordCart。 実は baserCMS でつくった baserCart を OSC のために WordPress に移植したものです。

wordcart-01 wordcart-02

スクリーンキャストを使っている関係上、スライドだけだと意味不明なので、ここでは fucntions.php のコード断片を紹介しておきます。

商品の入れ物となるカスタム投稿と、カスタム分類の作成。

/**
 * カスタム投稿、カスタム分類タイプを追加.
 */
add_action('init', function () {
    register_taxonomy('item_tag',
        array('item'),
        array(
            'label' => '商品タグ',
            'show_ui' => true,
            'hierarchical' => true,
            'rewrite' => array('slug' => 'item/category', 'with_front' => false)
        )
    );
    register_post_type('item', array(
        'label' => '商品',
        'public' => true,
        'menu_position' => 5,
        'supports' => array(
            'title', 'editor', 'thumbnail', 'custom-fields'),
        'has_archive' => true,
        'rewrite' => array('slug' => 'item', 'with_front' => false)
    ));
});

商品に添付されたメディア(画像)をテンプレートファイルから取得する関数。

/**
 * 記事に添付された画像を取得.
 */
function the_images() {
    $images = get_children(array(
            'post_parent' => get_the_ID(),
            'post_type' => 'attachment',
            'post_mime_type' => 'image',
            'order' => 'ASC'));
    $img = array();
    foreach(array_keys($images) as $key) {
        array_push($img, wp_get_attachment_image($key, 'full'));
    }
    return array_reverse($img);
}

投稿ページを固定ページに割り当て、フロントページにカスタム投稿のアーカイブを出力するための pre_get_posts フィルターフック。

/**
 * フロントページに商品の一覧を表示.
 */
add_filter('pre_get_posts', function($wp_query) {
    // 管理画面かメインループではなかったら何もしない
    if(is_admin() || !$wp_query->is_main_query()) {
        return;
    }
    // フロントページなら投稿タイプ・商品を表示
    if($wp_query->is_home() && $wp_query->get('pagename') == '') {
        $wp_query->set('post_type', 'item');
    }
});

フロントページでカスタム分類アーカイブと同じテンプレートファイル(taxonomy.php)を使うために、選択されるテンプレートファイルを変更するための template_include フィルターフック。

/**
 * フロントページのテンプレートファイルは taxonomy.php.
 */
add_filter('template_include', function($template) {
    global $wp_query;
    if($wp_query->is_home() && $wp_query->get('pagename') == '') {
        return get_taxonomy_template();
    }
    return $template;
});

各商品の下に Trust Form プラグインで作成したフォームを配置するための、the_content フィルターフック。

/**
 * カスタム投稿・商品の時は注文フォームを記事の下に付与する.
 */
add_filter('the_content', function($content) {
    if(get_post_type() == 'item') {
        return $content . '<hr />[trust-form id=10]';
    }
    return $content;
}, 0);

今年は少し製作よりの内容とさせていただいたのですが、セミナーで伺ってみたところ、来られた方の半数以上 WordPress 製作を行われている方とのことで、実際にサイトを作る際のヒントになりましたら嬉しく思います。

baserCMS セミナー

baserCMS セミナーでは、スライドとスクリーンキャストで baserCMS の特徴を説明させていただきました。

スクリーンキャストなしだと短いですが、端的に baser の特徴が分かると思いますので、よければご覧ください。(スライドシェアにアップロードしたら、すごいフォントになったですが、ノリでご覧ください。。)

前日までの数十時間におよぶ準備や、WordPress から2コマ連続セミナーだったのもあり、途中から放心にて事前録画のスクリーンキャストの内容を忘れてしまい、ぐだぐだになってすいません。。セミナー後に途中からしにそうになっていたと聞きました。。

それでもセミナー後にブースにいくつも質問をいただいたり、アンケートで面白かったと書いてくださった方がいてくれたりで嬉しかったです! ありがとうございました。

OSC北海道 2014 大懇親会

終了後の大懇親会は、アサヒビール園にてジンギスカンパーティー 😀

oscdo-2014-02

後ろにいるのは…!!w

OSC運営スタッフのみなさま、お疲れ様でした!

翌日

OSC北海道の翌日は、海老庵さん、モリコ、マリメロ、コモモで美瑛・富良野観光へ。 🙂

oscdo-2014-03

ジェットコースターロードすごい。

来年のOSCも楽しみです。

baserCMS ショッピングカートコンセプトテーマ baserCart

第2回 baserCMS デザインテーマコンテストで「店舗系テーマ賞」を頂きました!第1回に続き、2回目の受賞となり嬉しく思っています 😀

受賞者発表!! | 第2回 baserCMS デザインテーマコンテスト

制作:こもりこめろましゃ
baserCart (basercart-1.0.0)
デザイン性と機能性が両立できる baserCMS を活かすべく制作したショッピングカートサイトテーマです。
森のお店をイメージしたかわいいデザインにしてみました。
デザイン、イラスト、レスポンシブを含むマークアップ、商品・注文管理を含むコンテンツ管理と、ウェブサイトで使われる重要な要素を盛り込み、baserCMS の性能をめいいっぱい活用したテーマとなっています。
[ 審査員からのコメント ]
baserCMSの機能を存分に活用した作品です。プラグインを使って簡易ショッピングカート機能を実現している所など、baserCMSの可能性を広げてくれた作品です。

制作は「こもりこめろましゃ」ということで、コモモ(デザイン・ライティング・テーマ部)、モリコ(HTML・JS)、マリメロ(イラスト)、ひろましゃ(プラグイン部)の4人チームで行いました。

テーマを basercms.net に配置していただいておりますので、以下から実際に動いているところをみることができます。ファイルのダウンロードは 3/28 から始まる「baserマーケット」からダウンロードできるようになるとのことです!

商品一覧|basercart

モリコママは、ちょっとおせっかいで、ちょっとおっちょこちょいなシマリスのおかあさん。不思議の森のみんなは、モリコママの手づくりお菓子がだ〜い好き。モリコママは、美味しい手づくりお菓子を世界中の人たちに届けたいなぁって思いました。

コンテストでは応募の多くが汎用的なテーマとなることを予想しつつ、独自の世界観と baserCMS の可能性を表現することを目標に制作を進めました。思い描いていた通り完成できて、賞もいただけて本当に良かったです。メンバーのみなさまありがとうございました 😀

かわいらしい見た目とともに、広範囲に baserCMS の機能を活用したテーマとなっています。このブログのエントリーをサポートサイト代わりにして紹介してみたいと思います。

公開サイト部分

サイトの訪問者が見える部分の構成は次のようになっています。

  • 商品一覧(トップページ)

basercart-publish-01

  • 商品一覧(タグ分類)

basercart-publish-02

  • 商品詳細

basercart-publish-03

  • ショッピングカート

basercart-publish-04

  • 固定ページ・ブログ・お問い合わせメール(baserCMS基本機能)

商品は一覧・タグ分類ができ、商品名や最大4種類の画像、価格の情報を持っています。また、ショッピングカートには注文フォームが用意されています。

少しだけ baserCMS 使われたことがある方には、これはどうやったんだろうと思われる部分だと考えますが、バックエンドの実装的には今回のキモとして定めた部分でした。

baserCMS のソースコードなどを見ると「Based Website Development Project」とあります。つまり、baserCMS は CMS のベースともなるソフトウェアです。

WordPress がシステムの持つデータの形にサイトを当てはめる CMS とすれば、baserCMS はデータの形ごと作成できる CMS です。

今回の応募したテーマを WordPress でつくれば、商品情報を投稿タイプとカスタムフィールドに、タクソノミーで条件抽出するような実装となると思いますが、baserCMS ではテーブル構成やそのリレーション・インデックスを1から設計することが可能です。

作成したデータの形は、スキーマ管理、ユーザ権限やファイルのアップロード、テーマシステム、管理画面用の部品などなど、baserCMS が持つ力をたくさん借りながらウェブサイトとして構成することができます。

管理画面

  • 商品管理

basercart-admin-01

basercart-admin-02

  • タグ管理

basercart-admin-03

basercart-admin-04

  • 注文管理

basercart-admin-10

basercart-admin-11

商品系では、商品の一覧・編集、画像のアップロードや、多対多で関連するタグなどを使うことができます。注文ではステータスの変更や、注文明細の閲覧をすることができます。

おそらくテーブル構成などは、管理画面からのご想像通りです。実はタグやスラッグなどの部分は WordPress に由来してつくったりしています。テーマのダウンロードまでお楽しみにです。

CakePHP 初挑戦なのもあって、モデルとコントローラが、エンティティとサービスよりに心がブレている部分なんかがあるのですが、少しづつ修正していきたいです。

うまくできたら、本テーマはひと通りやりそうな実装がそろっていのではないかと思いますので、どこかで時間をつくって「baserCartの作り方」的なドキュメントを書こうかと思っています。 🙂

最後になりましたが、baserCMS テーマコンテスト実行委員のみなさま、大変お世話になりました。ありがとうございました!

Kindle Fire HD 購入

Kindle Fire の 3000円割引最終日に、Grails2 系の洋書がいくつかでていることに気がついてしまったのが運の尽き・・・。 スマートフォンや 10インチ Android タブレットの Kindle アプリで読んでみたものの、小さすぎ大きすぎ。。

以前から Kindle Paperwhite は持っていて、小説を読むのにこれ以上のものはないと思っていたのですが、技術書を出力するにはちょっとページ送りの速度や、画面の大きさに難があり。小説と違って、ペラペラ戻ったり飛んだりしますゆえ。

というわけで、Kindle Fire HD を買ってしまいました。 割引入って 12,800 円。:)

20130714_111847

手前 Paperwhite、奥 Fire HD。こうしてみると、Paperwhite の紙っぽさはさすがですね。今後も小説はこちらで!

さて、Kindle Fire HD で The Defintive Guide To Grails2 を読んでみている図。良い感じです。

Screenshot_2013-07-14-11-15-03

Kindle 版の Grails 書籍は、紙版よりずいぶん安くなっています。 たぶん、Groovy in Action Second Edition も今後でてくるとと思うので楽しみです。当たり前なんですが、洋書でも送料もかからないのが良いですなぁ。:)

Screenshot_2013-07-14-10-56-07

Kindle Fire は、普通の Android に近いですので .apk ファイルさえあれば Kindle Store にないアプリも(たぶん大抵)動作します。 XBMC を入れてみた図。

Screenshot_2013-07-14-10-53-10

GPU は PowerVR SGX 540。 残念ながら XBMC では動画再生支援が効いていないのかコマ落ちします。 Twitter クライアントや FIrefox などはずいぶん機敏に動作します。 🙂

重量は若干あるものの、カバンのサイドぽけっとに入れておくにも丁度良いです。純正ケースも良い意味で存在感がなく、これは本なんだなって感じがしてお気に入りました。

ちなみに、洋書を買っていますが英語が読めません。(←壮大なオチ

WordPress10周年記念! SaCSS WordPress 特集2013

札幌のウェブデザイナー・コーダーのためのセミナー・勉強会 SaCSS(sapporo.css)にて、5/24 に催されました「WordPress10周年記念! SaCSS WordPress特集2013」に行ってまいりました。

WordPress10周年記念! SaCSS WordPress特集2013

@hiromasa :「WordPress10周年記念でひろましゃが語る!WordPress の新機能と最新動向」
@se_ino :「WordPress を初めて使って」
@komomoaichi :「WordPressで覚えるPHP入門」
@h2ham :「Webデザイナーの仕事におけるWordPressとテンプレート」

WordPress 日本語化チーム、Multibyte Patch Plugin でおなじみの倉石さんも来られまして、札幌からも 10周年おめでとうのメッセージを送ることができて良かったです!

パチリ。:)

DSC00399

SaCSS にて自分の方は、次期バージョンになります WordPress 3.6 の新機能などについてをお話させてもらいました。

スライドに動画を使ってしまっていたので、ここではダイジェストのスクリーンショットを掲載することにします。(以下開発中の WordPress 3.6 trunk の画面です)

オーディオ・ビデオサポート

WordPress 3.6 より audio、video ショートコードが追加になり、youtube などに頼らずに自前でメディア再生ができるようになります。

video01

音声は、’mp3′, ‘ogg’, ‘wma’, ‘m4a’, ‘wav’、動画は、’mp4’, ‘m4v’, ‘webm’, ‘ogv’, ‘wmv’, ‘flv’に対応しています。プレイヤーには html5、フラッシュ、マイクロソフト系は Silverlight が選択されるようです。

ちなみにメディア系のファイルは大きいですので、ファイルアップロードの際に PHP のサイズ制限にかかるかもしれません。そのような場合は、php.ini で次の設定をすると良いと思います。

upload_max_filesize = 100M
max_post_size = 100M

記事リビジョン(履歴)操作の UI のアップグレード

記事間の diff 操作や、リビジョンを戻す操作も直感的になってとても使いやすくなります。

revision

なお、リビジョン数はデフォルト無制限です。履歴数に制限をかけたい場合は、wp-config.php で次のように WP_POST_REVISIONS 定数で設定してください。

define('WP_POST_REVISIONS', 20);

投稿ロック

編集中の記事がロック状態に遷移し、複数人の編集争いで内容の破壊が防がれるようになります。

lock01

他の人が編集中を表す「鍵マーク」の記事を開いたときの図。「編集を引き継ぐ」でロックを解除することもできます。

lock02

自分が編集中の記事が他の人に引き継がれた場合は、ほぼリアルタイムで下の画面がポップアップしてきてリビジョンに保存されます。すごい。

lock03

投稿フォーマット

カスタム分類「投稿フォーマット」とカスタムフィールドを使った、投稿管理画面の入力項目変更 UI が搭載されます。(テーマで投稿フォーマットをサポートをした時のみ機能が現れます)

format01 format02

投稿フォーマット名や入力項目など、管理画面がまだカスタマイズできないため、クライアントさんに入れるような WordPress では採用しにくいところもありますが、将来的には面白い機能になるのではないかと思います。

以上、WordPress 3.6 にはローカルストレージへの記事保存などまだまだ新機能あるとおもいますが、SaCSS で紹介させていただいた内容でした。 🙂

WordPress 10周年、おめでとうございます!

DSC00369

(…ひろまさ老けたんじゃないか?と言っているのは誰ですか…)

WireframeSketcher でワイヤーフレームドキュメント作成

以前、サイトを眺めてすごいなぁと思っていたものの、有料($99)だったため試さなかった、WireframeSketcher を本日購入してみました。

用意された部品や操作系を元に、アプリケーション開発時のワイヤーフレームやモックアップなどのドキュメント作成を支援するソフトウェアです。 SI の世界だと、エクセル方眼紙でやっちゃうような、外設の画面設計書をつくるの、で通じるでしょうか(笑)

WireframeSketcher

WireframeSketcher is a wireframing tool that helps designers, developers and product managers quickly create wireframes, mockups and prototypes for desktop, web and mobile applications. It’s a desktop app and a plug-in for any Eclipse IDE.

デザイナー、開発者、プロダクトマネージャさん向け。

Eclipse GEF/EMF ベースでつくられており、Windows、Mac、Linux 対応。ダウンロードしすぐ実行できるオールインワンのスタンドアローン版の他、Eclipse プラグイン版も用意されています。

130422-0007

下のような、描くのも変更するのも大変そうなイラストが、

wp_tree_f

次のテキスト入力だけで作成できてしまう。。

wp-content
-plugins
--otenki
---otenki.php
-themes
--[v] twentyeleven
--[v] twentytwelve

なんてことだ...

このことだけで、なんでもっと早く試さなかったのだろうと後悔です。。15日のお試し期間中の 1 日目で購入してしまいました。

以下、これまたどう考えても描くの面倒だろうJK、と言われそうな一覧表とフォームの組み合わせも、

130422-0019

こんな感じのテキストでサクッとつくることができます。

130422-0020

あっという間。。 🙂

試しに、このサイト hiromasa.another のモックアップを作成してみました。

130422-0011

出力を手書き風味にできるのがポイントで、(お客さんなどに)まだデザインとかはイメージですよ、というようなことを表現できるとのことです。

ちなみに Screen のプロパティーを Sketch から Clear に設定することで、びしっとすることもできます。

130422-0002

びし。まっすぐ。

130422-0010

WireframeSketcher の操作はパレットビューより部品を選択し、ぺたぺた貼り付け、それぞれの個別属性を指定していく感じです。

部品は PC 用、モバイル、Android、iOS、Web フォームなどなど沢山。 これらは一般的な .svg 形式で、フォーマットに従えば自分で描いた絵も部品に取り込むことができるようです。

130422-0021

ブログのコメントフォームを描いてみたの図。

130422-0022

ドローアプリとしての操作感は、利用開始当初、レイヤー機能がないため若干厳しい部分あるかなと思いましたが、アウトラインビューなどからのZオーダ設定、グルーピング系と、そのグループへの突入(?)、またプロパティーからの位置ロック操作をうまく使えば、問題なく描くことができると感じました。

130422-0023

画面上、オブジェクトの単一選択と矩形選択の切り替えの UI がぱっと分かりませんが、(Fn + ) F3/F4 でそれぞれに切り替わります。クリック to ドラッグの範囲選択において、カーソル位置のオブジェクトを引っ張りたくないケースでは F4 を押すといいと思います。

さて、WireframeSketcher の良いところのひとつは保存形式に XML のテキスト形式が用いられていることで、さらに画像となる .svg ベクターデータと、骨組みとなる .screen データは完全に分離されています。

このため、骨組みの .screen の変更履歴をみると、どの部分が修正されたかが分かります。

130422-0016

スクリーンショットは新旧ファイル差分を出した図。–File Three が増えてその下のアイテムの y 座標が増えたことが分かります。

このように、WireframeSketcher はテキストファイルベースのデータ形式を採っているため、ローカルヒストリーの利用や Subversion、Git などバージョン管理との統合も得意です。

Eclipse マーケットから EGit や Subclipse などを追加することで Git や SVN が使えるようになるハズです。(スタンドアローン版 は Eclipse Juno ベース。自分は Eclipse Juno for JavaEE に WireframeSketcher をプラグインの形で入れました)

さて、ぼくは普段からドキュメントの作成に Eclipse Mylyn の .textile サポートを使っていましたので、今回ワイヤーフレーム作成に WireframeSketche という心強い見方が統合されたことになります。

ワイヤーフレームはもちろん、ちょっと億劫だなと思っていた図形の描画もできるようになってとても嬉しいです。 🙂

130422-0018

ブログ”徹底解析”シリーズを Eclipse で書いているの図。

日本に一人しかいないんじゃないかと思うくらいの Eclipse の利用法ですが、ソースコード見ながら記事を書くことが多いので、この使い方はすごく便利です。(ちなみに 300ページの原稿に耐えてます)

上記スクリーンショット下部は、PlantUML。これもテキストベース図形描画 & Eclipse プラグインあり。 UML を描くツールですが、これがまた色々な用途に使えるのです。

PlantUML についてはプログラマーズ雑記帳さんが非常に参考になります。(とても助かりました!)

PlantUML の使い方 | プログラマーズ雑記帳

テキストから UML を生成する PlantUML についての解説記事を書いてみました。

PlantUML の Eclipse プラグインについては、そのうちまた。 🙂

ThinkPad T530 登場

実家の ThinkPad X200s が壊れたということで、ThinkPad T530 が新たに登場です。 🙂

音声のノンリニア編集をしなければいけないということもあり、奮発して 8G メモリの Windows 7 64bit 版。それでも 97,000円くらいでした。

手前から、ThinkPad T420s、ThinkPad T530、MacBook Pro の 15インチ。

Thinkpad11

このブログではネクストジェネレーション ThinkPad 初登場です。

Thinkpad12

気になる新キーボードはこんな感じに。 アイソレーションですが微妙にお椀がついていて打ちやすくなっています。 前のキーボードの方がいいことはいいですが、、違和感はあまりない感じでした。 トラックポインタは T420s より若干浅め。

Thinkpad13

起動も速く、いい感じでした。

前の X200s は XP のダウングレード版で使っていましたので、Windows 7 になってメーラとか使い勝手が変わって若干実家でお勉強会を。:)

さて、壊れた X200s ですがどこが壊れたのか。。 20分くらいでマウスも動かないフリーズ状態になるとのこと。 実は再現したところが見れてなかったのですが、持ち帰って触っていたところ同現象が。

ファンが壊れていて熱暴走が原因っぽい気がしましたが、ファン音は正常っぽい。 分解するもやっぱり正常。 なんとなく HDD のセクタースキャンかけてみたらバッドクラスタ。。 というわけで HDD クラッシュが原因だったようです。 まぁこれはしょうがないですね。

3.5 インチの同容量の HDD が手元にあったので換装して復帰させてあげました。 🙂

Thinkpad21

メモリが 2G と少ない機械だったので、ついでに上海問屋さんで 4G メモリ調達。 2000 円。 安っ。 余生は何に使ってあげましょう。 Fedora かな〜。

てな感じで、作業でがさごそソフトケースあさっていたらこんなものが!

Epson win31

Microsoft Windows 3.1 by EPSON!!

強いオチ!!

カバン新調

会社に行くのに使っていたカバンが、ぼろぼろになってしまったので新しいカバンを買いました。

せっかくなのでパソコンを入るものをということで、、いつもの Lenovo さんのサイトを見ていたら、それはもういいだろう・・・と最近よく登場しますわたくしの上司、ももいろ上司Zがいろいろ見て選んでくれました。 🙂

booq という Mac のかばんをつくっているメーカから TAIPAN SHADOW M です。

20120810 021954

なぜか本家サイトには M サイズの記載がないのですが、代理店さんから輸入してもらって購入ですっ(とても丁寧に対応していただきました)

Booqの専門店 – JOKERS | iPad Macbook PRO Air のバッグ – Booqの専門店

Appleファンの間では有名なブランド「Booq」のバッグのみを取りあつかっている専門店をこの度オープンさせました。

カバンはこんな感じになかがふかふかになっていて、15 インチ Mac がぴったり入るようになっています。

20120810 021803

外側にはタブレットが入る、同じくふかふかぽっけがついておりますぞ。

20120810 021914

14 インチの ThinkPad T420s もいい感じに入りました。 普段仕事にいくときはPCを持ち歩いてはいないですが、そんな時に使っても問題ない感じです。 🙂

てなわけで、

おきにいった!

勉強会などに持ってお出かけすることにしましょうぞ。(←本当は引きこもり