YOKOTA’s diary

最近はドローン関連が多いですが…ECやデータ解析、3Dプリンタなども。

WordPressプラグイン開発に参考となりそうな書籍3冊

プラグイン開発があるので改めて書籍でWordPressプラグイン周りを確認。

どのようなプラグインがもてはやされていて、どのようなお作法や注意点があるのかなどひと通りの確認をしたいと思い以下3冊を選択。

「プロが選ぶ WordPress優良プラグイン事典」ササッとどのようなプラグインがあるかを眺めてから、「サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル」でガッツリとプラグイン開発のイロハをしり、比較や抜け漏れ確認のために、「WordPressによるWebアプリケーション開発」のオライリー本で締めるという想定でした。が、、

プロが選ぶ WordPress優良プラグイン事典

プロが選ぶ WordPress優良プラグイン事典

プロが選ぶ WordPress優良プラグイン事典

2013年の本ですが、知らなかったプラグインも多く有用な物があり参考になりました。
今回は開発目線で色々見たかったので下記ソースを今後参考にさせていただこうと思います。

まずは、「シンプル」「自動」「テンプレート変数埋込」「一括アップロード」「カスタムフィールド」を中心にチェックしたいと思います。

AddQuicktag

https://github.com/bueltge/AddQuicktag functionにざっと書いてしまいそうな内容をGUIのわかりやすい管理画面にしているとてもシンプルなプラグイン。 エクスポート・インポートもあり、とっかかりによいのかと思いました。

Broken Link Checker

72時間などの自動チェックのタイミングがあるので監視方法の参考に。 にしても超高機能だな、これ…

CSV Importer

記事の一括アップロード投稿

Advanced Custom Field

カスタムフィールドのプラグイン

他にもプラグイン開発の参考になりそうなものがたくさんありました。(実際に使えそうなものももちろん)

サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル

サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル

サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル

WordPressプラグイン開発のイロハを教えていただきたくチョイスした一冊。
プラグインとは?からビジネスモデルなども含め幅広く取り揃えてありましたが、私が気になるのは開発時のお作法や環境やツール、保守観点での注意事項などです。

WordPressプラグイン開発の基本となるフックという仕組み

htmlは構造的に上から下に順番に読んでいきますが、WordPressではその至るところで「フック」というポイントが用意されていて、このフックのある場所に機能を追加したり、あるいは、機能を自分の定義する関数に置き換えてあげることが可能です。このアクションフックとフィルターフックという仕組みがプラグイン開発の肝であり、フックについて実例を元にわかりやすく説明されていました。

VCCWでのWordPressプラグイン開発環境構築

本書ではvagrantLAMP環境を簡単に構築する手段として、著者が手がけるVCCWを利用されていました。超簡単に環境構築できてとても便利でした。

一点困ったのは、default.ymlをコピーしてVagrantFileと同じフォルダにsite.ymlを作成し、langをjaに変えたところ正しく起動せず。。一旦vagrant destroyしてからvagrant upし直すとか色々情報は散らばっているもののうまくいかず管理画面から直接言語変更しました。

==> cv.dev: STDERR: Error: The requested locale (ja) was not found.
==> cv.dev: ---- End output of "bash" "/tmp/chef-script20150727-18885-j56vvo" ----
==> cv.dev: Ran "bash" "/tmp/chef-script20150727-18885-j56vvo" returned 1
==> cv.dev: [2015-07-27T07:44:58+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
Chef never successfully completed! Any errors should be visible in the
output above. Please fix your recipes so that they properly complete.

WordPressプラグインのお作法や注意点

  • プラグイン名に同名の物がないようにする
  • 関数や変数名に同名の物がないようにプレフィックスをつける
  • プラグイン名をハイフンでつないでプラグインのディレクトリにする
  • プラグインの場合はプラグインヘッダに「Plugin Name:」を記載する必要あり(コロンとの間にスペースがあるとNG)★例
  • Readme.txtは書きましょう(公開するなら基本英語)
  • PHP, html, CSS, javascript、それぞれのコーディングスタンダードがある [PHP]インデントはタブ、縦位置調整はスペース。if文中と同行に開始括弧{。括弧()の間や演算子の前後には全てスペースを入れる(配列は例外) [PHP]関数名は小文字でヘビ型、クラス名の始まりは大文字、ファイル名は小文字ハイフンつなぎ。 [HTML]W3CのValidationに則る。インデントはタブ。 [CSS]インデントはタブ。セレクタは1行ずつ記載。属性値は小文字、ハイフンつなぎ。 [js]インデントはタブ。JSHintを通してほしい。オブジェクトは短いなら1行で、長いなら行ごとに要素記載。 [js]配列や関数の括弧の間にはスペース。セミコロンは必ず付ける。ifなどのブロックはPHPと同じ ** [js]チェーンメソッドは行ごと

WordPressによるWebアプリケーション開発

WordPressによるWebアプリケーション開発

WordPressによるWebアプリケーション開発

頭に入りにくくちょっと小難しい…。
ある程度、WordPressを用いた開発を行った経験がある方が読むほうが良いと思われます。
が、私が気になっていたのは、「5章のプラガブルなモジュールを開発する」です。

5.プラガブルなモジュールを開発する

「開放/閉鎖原則」コードの設計、実装は、既存のコードにシア証言の変更を加えるだけで新しい機能を追加できるようにしなければならないという原則。既存のコードに変更を加えず、例えば、クラスの継承という形で新機能を追加できるような設計が求められる。

www.oodesign.com

WordPressプラグインは、アクション、フィルター、プラガブル関数により、新機能に対して開かれ、変更に対して閉じた形で開発ができるように思想設計がされているということです。

そのため追加機能は、別個のプラグインで実装すれば、既存のコードに悪影響を及ぼさずに有効化・無効化できると。これをファイルアップロード処理を自動化処理を実例に説明されていました。

しかーし、正直うまく理解できていません。 例えば、元々あるプラグインに追加機能を開発するときにどのように書くのが既存コードに影響を少ないのかなどが本書を読んでも私は理解できませんでした。もう一回読む必要がありそうです。

そこでもう一冊:詳解 WordPress

詳解 WordPress

詳解 WordPress

より良いプラグイン開発のお作法がもやっとした理解になってしまい不完全燃焼のため、さらにもう一冊。
2015年の書籍であり、180ページのオライリー本ということでさっと読み物として読めました。

HTTPリクエストからテーマ、プラグイン、WPコアなどの基本の説明、フックなどの重要概念、管理画面とサイトの違い、などがわかりやすく説明されていました。

「サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル」と近しい内容ですが、WordPress全体についてサッと知るのには最も適している書籍だと思います。

以上、合計4冊のWordPressプラグイン開発本でした〜

初めてのgit-flowの使い方

git flowを初めて使った時のお作法や主なコマンド等などの共有用にメモ。

基本前提:gitのローカルリポジトリとリモートリポジトリ

svnはひとつのリモートリポジトリにcommit, merge, updateなどを行うことが多いのに対して、gitはリモートリポジトリから取得したソースをローカルリポジトリと作業ファイルに取得してまずはローカルリポジトリにコミットし、後でまとめてリモートリポジトリにプッシュする。

git flow

git flowとはあるgit運用方法をやりやすくするプラグイン
developブランチを作成して、新規機能はfeatureごとに作成して後でdevelopにマージし、リリースタイミングでmasterブランチを利用してリリースする。

詳細は下記ご参照。
git-flow cheatsheet

名前・登場人物

  • origin:リポジトリ
  • branch:ブランチ
  • master:メインブランチ
  • develop:開発ブランチ
  • feature:新機能用ブランチ

私はこのfeatureが初めてだった(元々SVNユーザ)のですが、どういう単位で使われるか(使うことにしたか)というと、ticket単位≒機能単位でバシバシfeatureきってタスクを消化するという感じです。

origin, masterがデフォルト

origin, masterはデフォルトのリモートリポジトリとメインブランチ。
そのため、通常コマンドでは省略されている。

git pull // == git pull origin master  
git config --list //masterなどがどこを指しているか確認、変更が可能  

最初にリポジトリを設定する際に利用するコマンド

リポジトリをチェックアウトする

git clone http://hohohohogeee.git

ブランチをすべて取得する

git pull --all

git flowを初期化する

git flow init

ここでmasterやdevelop、featureといった名前を決める。デフォルトを利用。

新規機能を作りたいのでfeatureする

「display-pankuzu」の新規機能を開発したい

git flow feature start display-pankuzu

ここでリモートリポジトリとローカルリポジトリに差分があると、正しくfeatureを切れない場合があるため、git pull origin develop (featureはdevelopブランチを元にするので)などでリポジトリを綺麗にしてあげる。

日々の作業で利用するコマンド

現在どのブランチにいるか(どのブランチで作業するのか)を確認する

git branch

develop
* feature/display-pankuzu
master

ブランチを切り替えたい場合

git checkout <branch>

現在の修正状況などを確認する

git status 

リポジトリにファイルを追加したり、ファイルを修正、削除した場合などの変更ファイルが確認可能

コミット非対称のファイルを無視させる

開発に便利なプラグインやメモファイルなどがリポジトリ内に作成されている場合に、.gitignoreファイルを作成しファイル名・ディレクトリ名を記載することで変更内容として無視させることができる

vi [リポジトリホーム]/.gitignore
a.txt

↑これでa.txtは修正の対象から除外

変更内容の具体的な修正内容を確認する

git diff 

一部のファイルを間違えて修正していたので元々のファイル状態に戻す

functions.phpを本に戻す例

git checkout HEAD functions.php

リポジトリの内容を更新する

git pull origin develop

あくまで更新するのはブランチなので、featureではなくdevelopを指定する。 つまり、複数のfeatureを切って作業してもdevelopは同じ。 なるべくfeatureは1つずつ終わらせる(終わるとdevelopにマージされる)のが良いのかな

ローカルリポジトリにコミットする

対象ファイルをaddしてコミット

git add --all
git commit -m "message"

git statusでadd/commit状況は確認することが可能

リモートリポジトリにプッシュする

git push

マージなどは随時。

featureが終了したら

git flow feature finish display-pankuzu

で終わり!

ドローン周辺情報は「Be into Drone」サイトに移行します。


※お知らせ

ドローン関連のコンテンツはドローン専用メディア「Be into Drone」に移行しました!

ドローンの機体比較やPhantom 3やドローン周辺知識などについても新しく記載していますので、よろしくおねがいしますー。

drone.beinto.xyz

drone.beinto.xyz

drone.beinto.xyz

【ドローンのフライトシュミレータ】風速19.9mまで設定できるDJI Pilot app


※お知らせ

ドローン関連のコンテンツはドローン専用メディア「Be into Drone」に移行しました!

drone.beinto.xyz


f:id:ashyktj:20150522122331p:plain

DJI Phantom 3やDJI Inspire 1の公式アプリ「DJI Pilot app」には、フライトシュミレーターがついていて、基本的な操作方法や設定などを事前に確認することができます。

フライトシュミレーターの起動

起動するにあたっては、通常のフライト同様に、

  1. 機体の電源を入れ、
  2. リモコンの電源を入れ、
  3. モバイルデバイスとリモコンをUSB接続しアプリの起動を行う

この時、実際にフライトするわけではないので、安全のためプロペラは外しておくことが推奨されています。機体の電源を入れることでバッテリーの状況確認やLEDの状態や各種センサーの設定などの実際の設定が見れるのがリアルなところでもあります。

f:id:ashyktj:20150522122518p:plain機体ON→プロポON→アプリ起動

機体とコントローラーとappがそれぞれ接続された状態でDJI Pilot appの画面が開くと、下記画面に。(背景画像は都度変わる)

f:id:ashyktj:20150522122828p:plain右上のHelp部分を選択

すると、ドキュメントや各種動画が表示される。

f:id:ashyktj:20150522122912p:plain左のFlight Simulatorを選択

3D のフライト画像が表示されますが、左下のマップは実際のGPSで拾われた位置情報となります。

f:id:ashyktj:20150522123015p:plain背景はおそらく変えられない

そしてユニークなのが風速と風向の設定ができ、なんと19.9m(もはや台風です)まで設定が可能。

f:id:ashyktj:20150522123038p:plain

実際に19.9mで飛ばしたところ、エレベーターを前方にめいいっぱいやって、0.1mずつゆっくり帰ってくることができましたが、油断すると風に流されてしまいます。実際は、無茶でしょうけど…。

風速5mとか吹くと、機体の操作にだいぶ注意が必要になってくるので、GPSの道を見ながらいろんな方向から強い風を吹かせてまっすぐ進むとか、風上に飛ばす練習とかするといいかもしれません。

f:id:ashyktj:20150522123102p:plain

もちろん風速や風向きを抑えて、離着陸の操作やエレベータやスロットル、ラダー、エルロンなどのそれぞれの操作をひと通りためすことができます。FPVでカメラの映像を見ることはできないので、遠くに行くと画面上からは機体を目視できなくなります。またジンバルの操作やカメラのシャッターなどは擬似的に画面上で反応があるだけです。

f:id:ashyktj:20150522123237p:plain 結構高画質なシュミレーターでした。

DJI Pilot appの設定メニュー

せっかくなのでDJI Pilot appの設定メニューもじっくり確認することに。
公式のユーザーマニュアル(日本語)にもDJI Pilot appのことが記載されているのですが、画面上のボタンなどのそれぞれの役割の説明のみです。(37p)

抜粋した情報のwikiこちら

MC settings(画面右上の設定メニューなどを選択)

f:id:ashyktj:20150522123143p:plain

インストール直後はこちらのビギナーモード(Beginner Mode)がONになっているのでOFFにしたり、最大高度の設定(150mを超えると警告有)、最大飛行距離の設定ができます。さらに下にはAdvanced SettingsやSensorsなど高度な設定があるようす。

RC Settings

f:id:ashyktj:20150522123201p:plain ジンバルの動作スピード、リモコンのモードの設定や後ろのオプションボタンの利用用途の設定などリモートコントローラーに関係した設定ができます。

Image Transmission Setting

f:id:ashyktj:20150522123204p:plain 無線の電波状況です。

Aricraft Battery

f:id:ashyktj:20150522123207p:plain

機体のバッテリー状況。セルごとに電圧や残容量が表示され、その時の温度やフライト時間など必要な情報があります。

Gimbal Param Settings

f:id:ashyktj:20150522123212p:plain ジンバルの設定。

General Settings

f:id:ashyktj:20150522123215p:plain f:id:ashyktj:20150522123218p:plain アプリの初回起動時の設定や、カメラ・地図・ビデオキャッシュの設定があります。Enabled Hardware DedocedはiPad Air2向けの設定です。(詳細

機体状況(上部真ん中の「safe to fly」の部分を選択すると開きます)

f:id:ashyktj:20150522123220p:plain f:id:ashyktj:20150522123223p:plain 新しい場所でのフライトを行うときは最初にこの画面が自動起動され、すぐにCalibrateに映ることができると思います。他にも機体に関するサマリー情報が確認できます。

また、何か機体や操作や設定などでわからないことがあった場合は、フォーラムでの検索や投稿がいいです。検索するときは、こちらからが効率的でした。
https://www.dji.com/search/

DJI

【第一回 国際ドローン展】日本のドローン市場はこれから!


※お知らせ

ドローン関連のコンテンツはドローン専用メディア「Be into Drone」に移行しました!

drone.beinto.xyz


f:id:ashyktj:20150521095403p:plain

無人飛行機「ドローン」に関するハードやソフトウェア、センサーやフライトコントローラーなどの技術やサービス展開する企業が集まった国内初の展示会「国際ドローン展」が5月20日〜22日に幕張メッセで開催され、初日に参加してきました。

初日からすごい人の数。ちょっと若い人は少ない印象(40〜60歳レンジが多い印象)でしたが、初のドローン展示会であり、官邸ドローンや各種規制でホットな話題だけに人気のようで、テレビ関連の方たちが結構いらっしゃる状況でした。

www.jma.or.jp

日本発のドローンベンチャー

今回目を引くドローンはまずはこの2つ。
日本のドローンの第一人者と言われている千葉大学の野波教授が代表を務める「自立制御システム研究所」。放送業界から産業用ドローンを手がけているPRO DRONE。

自立制御システム研究所のミニサーベイヤー

Webでは何度か見たことのあるミニサーベイヤーだが、実物は初めてだった。 f:id:ashyktj:20150521095717p:plain

今回数社でオリジナルの機体を作っていたが、「ミニサーベイヤーのフライトコントローラーを搭載」と記載しているところも幾つかあった。「国内唯一のドローン制御ユニット」ということで期待されている。

f:id:ashyktj:20150521101404p:plain

ただ、こうした日進月歩で新しい制御機能や装備が出てくる中で、「国内」に縛られる必要はないし、Dronecodeのようなオープンソースプロジェクトが日本でも積極的に採用されていいのではないかと思いました。

空撮、荷揚げ、調査、有線給電など産業用ドローンPRODRONE

一際、展示ブースがクールな印象だったのがPRODRONEで多くの人だかりができていた。実際の機体もとてもクールで、各種用途に応じたドローンがバリエーション豊富に展示されていました。 f:id:ashyktj:20150521103501p:plain空撮仕様のドローン

f:id:ashyktj:20150521103605p:plain有線給電仕様のドローン。
ある程度限定される範囲のドローン利用は現状は有線でも良いのかもしれないが、有線は邪魔…。PCのLANも昔は有線じゃないと遅かったが現在ストレスなく使えるように、ゆくゆくは近場でも無線に変わっていくのだと思います。

f:id:ashyktj:20150521103451p:plain同じ型+セーフティバージョン
クアッドコプターは1つでもプロペラが止まると墜落してしまうため、それを防止するための措置。

f:id:ashyktj:20150521103457p:plainウィンチがついて荷物の上げ下げができるドローン
こういう手足となるような動作を行えるようになると、利活用出来る幅がぐっと広がる。

f:id:ashyktj:20150521103454p:plainサーモカメラが搭載され、ソーラーパネルなどの異常検知するドローン
ソーラーパネルは異常がある部分が熱くなるのでサーモである程度まで故障部位を絞り込めるとのこと。太陽光の会社の方いわく、実際には人の目でチェックしないと故障判断はできないが、該当箇所を特定するのに効率化されているという。

f:id:ashyktj:20150521103506p:plainドローンを積んでモニターもするバイク!

さすが映像関係ということもあり各種考えられている印象でして、他のブースよりも大盛況のイメージです。展示会で資料を入れるのに重宝される布袋もPRODRONEが提供されていて、展示会場はPRODRONEだらけでした。

大手も続々とドローンビジネスへ

コマツ/SKYCATCH

f:id:ashyktj:20150521105821p:plain
SKYCATCHという米ベンチャーのドローン機を利用して工事現場などの精確性が求められる場面で活用されている。

面白いのがGPSや超音波、赤外性といったセンサーでの位置検知するのではなく、予め用意してある地図を読み込んでおき、4隅などをポジション取りをしておく。実際に飛行させたときの映像とマッチングさせて位置を数センチという単位で飛行させることができるとのこと。施工業者によっては、数センチのズレがコストに影響するためこうした精確性は常に求められるという。うまく機体と用途が活用されていると感じました。

f:id:ashyktj:20150521110029p:plain

日立マクセル:信頼性の高い日本製リチウムイオン電池パックと無線充電技術

f:id:ashyktj:20150521110622p:plain 一般的にはリチウムポリマーのほうが量産は難しいが安全性が高いとされているが、リチウムイオンを選んだ理由があるのかと思いきや「昔からの(社内の)技術の流れ」とのことでした。。
現在は、各社それぞれのバッテリーが開発されている状態でデファクトがない状況。エンドユーザからすればぜひとも標準化してほしいものだし、無線給電(現在開発中とのこと)も規格バラバラだとそれごとにステーションも用意が必要となる…。

セコム:小型飛行監視ロボット

f:id:ashyktj:20150521110834p:plain ドローンとは別にレーザーセンサーを監視エリアに設置し、レーザーセンサーで検知した不審者や不審人物のもとへドローンが飛んでいき、映像記録しオペレータや警察との各種連携を素早く行い、これまでのセキュリティ品質を上回るサービス提供ができるようになるとのこと。

一つ気になったのが「ドローンの音」。これくらいのサイズになると静かなモーターでもまぁまぁうるさいので、数十メートル離れていても音が聞こえるのでは?不審者が出そうな深夜とかなら特に。これのせいで逆に犯人に気づかれてしまい、逃げられてしまうのではないかなぁと。であれば、これまでの定点カメラのほうが…と思い質問したところ、「音を消すことは検討されていたが技術的に難しいため、今後の展開と考えている」とのこと。うーむ。

他にもいくつか気になったドローン/ドローン活用例

ゼロ社:二つのIMUとパラシュートを搭載し安全飛行を実現。3軸ジンバル通常設備、軽量コンパクト

f:id:ashyktj:20150521112533p:plain パラシュートがついていた展示会では唯一(たぶん)ドローン。機体が70度傾くとパラシュートが開くように設計されているらしい。たしかにパラシュートがあるってだけでとても安心。

システムズエンジニアリング/Aero Testra社/BaySpec社

光学機器や計測器の会社で軽量のハイパースペクトルカメラを展開していたところ、マルチコプターに搭載することで可能性が広がるということで、海外のドローンメーカと組んで展示会を行っているらしい。この「ハイパースペクトルカメラ」というのは、通常は赤・緑・青の3色と黒を用いて表現するところを、2次元の情報に加えてその奥行き(表現があっているか微妙)の濃淡を取得することで、通常のRGB画像では得られない情報が取得できる。何ができるかというと、微妙な濃淡の違いなどを利用して、「農薬散布が行き届いていない箇所の特定」などに利用できるとのこと。

Aeryon Labs

f:id:ashyktj:20150521114716p:plain 映画の宣伝のようなアピールで目を引いたのがAeryon。話を聞くと、通常時はもちろん風速25mは推奨しないけど、15mを超えても安定して動けるという。放熱板がいくつか設置されているので、−30度でも耐えられかつ50分の飛行というこの3点は他より圧倒している部分。もちろん値段も圧倒していたが、用途によっては利用検討が考えられる機体。

ホビー向けドローン

パイオニアのParrot

f:id:ashyktj:20150521115334p:plain ドローンといえばParrotを想像するくらいエンドユーザ向けに一般化された商品ということもありブースやデモも大盛況の様子でした。

ハイテック マルチプレックス ジャパン

f:id:ashyktj:20150521115456p:plain ハイッテクさんでは、ホビーに限定しているわけではないですがこちらに。
展示会と全然関係ないけど、私のお気に入りのRC EYE One Extreamのメインフレームが折れてしまい…修理方法など確認したところ丁寧に教えてもらえました!!笑ありがとうございます。さっそくアマゾンで部品購入して修理です。

ヨコヤマコーポレーション:日本設計のオリジナルドローン、HighOneなど

TEAD?イマイチ、ブランド名が何なのかがよくわからないが、各種ホビー用のドローンが取り揃えられている感じでした。あたっても痛くなさそうな子供でも使えそうなドローンです。ただおもちゃ感は拭えないので、お試しなどに利用でしょうか。
同じ200万画素なら、私はSymaのほうがお勧めですが。

ドローン展示会に参加して、

産業用ドローンの機体については、カメラや保険込みのものが大半だが、だいたい数百万から1000万レベルであるが、40万のDJI Inspire 1や20万のDJI Phantom 3 Professionalとの性能差でいうとそこまでの差があるのかは現時点では私には知識・経験がなく正直不明です。しかし、業務に特化した機能や装備が必要なのは間違いないと感じました。ハードもソフトも日進月歩で利活用する分野もどんどん顕在化して市場も拡大してくので、今後どうなるかますます楽しみです。

今は誰でもドローンを触って楽しめるためおかしな事件もおきていますけど、数年前からドローンに関わっている方たちは、ドローンの活用やドローンによる課題解決をとても真剣に考えられていて、 上記以外の会社さんもお話しさせていただいて大変おもしろい方、優秀な方、まだまだお話聞きたい方がたくさんいらっしゃってドローン業界はやはり熱いなと再認識しました。