【Go】作業効率アップ!ファイル監視 -> 自動コンパイル -> 自動実行の完全自動化

開発時に、以下のような工程を繰り返している場合、

①ファイル編集
②「go run」または「go build」して実行

開発効率が落ちる。
LivereloadのようなことがGoでも出来ないか調べてみたら
まさにぴったりのパッケージがあった。

GitHub - codegangsta/gin: Live reload utility for Go web servers

使い方

①インストール
go get github.com/codegangsta/gin
②動作確認
gin -h
③使用

基本的な使い方

gin run main.go

コンパイル後、自動的に再実行したい場合は以下

gin -i run main.go

【Go入門】さくらVPS(CentOS)にGoをインストールしてみた。

1)yumでインストール

$ yum install epel-release
$ yum install golang

2)環境変数「GOPATH」の設定

Goのプロジェクトを作成したり
パッケージをインストールするための起点になる
GOPATHを設定する。

$ cd ~
$ vi .bash_profile
# .bash_profile
export GOPATH=$HOME/go
$ source .bash_profile

3)プログラムの作成

app.goを作成。

$ cd ~/go
$ mkdir hello
$ cd hello
$ vim app.go
package main

import (
  "fmt"
)

func main() {
  fmt.Println("Hello, Golang!")
}

4)動作確認

$ go run app.go

【Go入門】Echoを使ってみた - Webフレームワーク

1)Echoフレームワークの取得

※(現時点で取得したバージョンはv3.2.1)

# お決まりの「go get」 で取得
$ go get github.com/labstack/echo

# プロジェクトディレクトリの作成&移動
$ cd $GOPATH/src
$ mkdir sample
$ cd sample

2)Echoを使ったページを作る。

page.goというファイルを作成

package main

import (
  "net/http"
  "github.com/labstack/echo"
)

func main() {
  e := echo.New()
  e.GET("/", func(c echo.Context) error {
      return c.String(http.StatusOK, "Hello, World!")
  })
  e.Start(":5050")
}

3)「go run」&ブラウザでアクセス

$ go run page.go

↓のように表示されたら
⇨ http server started on [::]:5050

URLにアクセス
http://localhost:5050



簡単♪

【AMP】スマホページが要らなくなる?WordPressとの連携方法

AMPとは、「Accelerated Mobile Pages」のことで
GoogleTwitterが協同で策定したプロジェクト。

詳細については、以下のサイトさんがよくまとまっている。

qiita.com

AMPについて検索してみると
AMPは「カルーセルのみに表示される」のように
書いているサイトさんも見受けられるが
現在は通常の検索結果でもAMPが表示されている。

「渋谷 イタリアン」で検索した例)
f:id:Thoames1212:20170829044205p:plain

AMPでは外部Javascriptが使用できないため
リッチなサイトの作成は難しそうだが

などのコンポーネントは使えるため、
オーソドックスなサイト作成には、問題ないと思われる。

AMPの広告対応も、Adsenseだけではなく

  • A8net
  • AccessTrade
  • ValueCommerce

なども対応しているようだ。

[参考]
amp-ad / amp-embed – AMP

WordPressでのAMP作成方法

AMPの作成方法には

の方法がある。手っ取り早く使いたい場合は
プラグインが良いだろう。

記事作成時点では以下のWordPressプラグインが存在するが
AMP」のプラグインがメジャーっぽい。
※記事作成時のGithubのスター数で比較。「AMP」が1009、「AMP for WP」が61

[AMP]
ja.wordpress.org

[AMP for WP]
wordpress.org

[AMP]を使用する前提で書くが
デフォルトのデザインは簡易なものなので
CSSの変更は必須。

<?php

add_action( 'amp_post_template_css', 'amp_base_css' );

function amp_base_css( $amp_template ) {
    echo file_get_contents(get_stylesheet_directory_uri() .'/amp-base.css');
}

その他以下のような変更がフィルターを設定するだけで可能だ。

Feature画像の非表示
<?php

add_filter( 'amp_post_template_data', 'xyz_amp_remove_featured_image' );

function xyz_amp_remove_featured_image( $data ) {
    $data['featured_image'] = false;
    return $data;
}
コンテンツ幅の変更
<?php

add_filter( 'amp_content_max_width', 'xyz_amp_change_content_width' );

function xyz_amp_change_content_width( $content_max_width ) {
	return 1200;
}
Schema.orgメタデータの変更
<?php

add_filter( 'amp_post_template_metadata', 'xyz_amp_modify_json_metadata', 10, 2 );

function xyz_amp_modify_json_metadata( $metadata, $post ) {
	$metadata['@type'] = 'NewsArticle';

	$metadata['publisher']['logo'] = array(
		'@type' => 'ImageObject',
		'url' => get_template_directory_uri() . '/images/my-amp-metadata-logo.png',
		'height' => 60,
		'width' => 600,
	);

	return $metadata;
}

詳細は以下のリンクを参照
GitHub - Automattic/amp-wp: WordPress plugin for adding AMP support

【Wix】使う前に知っておきたい!WixとWordPressの違い

以前の記事にも書いたとおり、
WixはHTMLやCSSなどの技術を知らなくても
簡単にサイトが作成できる。

thoames.hatenadiary.jp

この記事では初心者の立場から見た
WixWordPressの違いについて解説するが
最初に結論を書くと、以下の通りになる。

Wix WordPress
環境設定の有無 不要
セキュリティへの対応 不要
カスタマイズの自由度
無料デザインテンプレート やや多
サポートの有無 質問投稿有

1)環境設定の有無

言わずもがな、WixWordPressと比べ
以下のようなサービスを使うための環境設定をする必要がない。

  • サーバの選定
  • サーバソフトウェアのインストール及び設定
  • データベースのインストール及び設定
  • WordPressのインストール及び設定
  • SEO対策またはECショップ運営用などのプラグインのインストール及び設定

2)セキュリティ対応

Wixを使用する場合、セキュリティへの対応は不要だ。
裏で動いているサーバのアップデートや、
その他のセキュリティの更新は全てWix側で行われる。

そのためWixの使用者は、ただコンテンツやデザインのことだけ考えるのに集中できる。

WordPressを使用する場合、セキュリティの保持するための
WordPress本体や必要に応じたプラグインのアップデートが随時必要になる。

WordPressは世界中で支持を得ているソフトウェアであるため
その分、多くの攻撃者に狙われやすい。
近年の2017年2月に発生したバージョン4.7.1のような脆弱性が発覚した場合、
すぐに対応できる体制をWordPressを使う場合は、整えておく必要がある。

chaika.hatenablog.com

3)カスタマイズの自由度

ある程度HTML、CSSJavaScriptなどの知識がある人は、
自分で任意のコードを追加・編集したくなるだろう。

Wixでも簡易のHTML設定は可能だが、
WordPressと比べると些細なものだ。

以下、WixでのHTML設定例

f:id:Thoames1212:20170828062656p:plain

[参考]
独自のCSSは設定できませんか?

WordPressはスキルがあれば
ほとんどのことは何でもできる。
カスタマイズの自由度で言えば、WordPressに軍配が上がる。

4)デザインテンプレート

こちらについては
「"すぐ"に無料で使えるテンプレートが豊富にある」という点においては
Wixのほうが上だろう。

WordPressも海外のサイトまで探せば、無料のテンプレートがいくらでも見つかるが
WordPressのバージョンにマッチし、且つ良い感じの無料テンプレートを
探すのは骨が折れる。すぐにサイトを立ち上げる必要性がある場合や
手軽にテーマを選びたい場合は、Wixのほうが良いだろう。

ただWordPressには、自由にデザインを変更できるというメリットがある。
今後、デザインの変更の必要性が出てきそうなら、
要件に合う無料のテーマを探して、WordPressを使うのも良いだろう。

有料のWordPressテーマでもかまわないという場合は
海外サイトではあるが以下のサイトをオススメする。
高品質なデザインがすぐに見つかる。

market.envato.com

5)お問い合わせ・サポートの有無

WordPressオープンソースの無料ソフトウェアなのでサポートサービスは無い。
Wixは英語など、日本語以外での電話サポートはあるが
日本語での電話サポートは無い。
だが質問投稿によるサポートは日本語対応している。

[参考]
Wix への電話でのお問い合わせ

まとめ

個人的な意見ではあるが、
初心者がWixを使うか、WordPressを使うかで決め手になる点は
更新やセキュリティ保守などの管理コスト」をどう考えるかだと思う。

WordPressは作るだけなら、ある程度知識があれば簡単にできる。
しかし問題は管理や保守で、例えばセキュリティなんかの問題が絡むと
途端にハードルが高くなる。

なのでサイトを作成する場合、

  • 予算があまりなく、更新やセキュリティ保守があまり重要でない場合は「WordPress
  • 予算があまりなく、更新やセキュリティ保守が重要である場合は「Wix
  • ある程度予算があり、更新やセキュリティ保守が重要である場合は「制作会社

を基準としたら良いと思う。

もちろんスキルがある方は、最初からWordPressで作れば良いだろう。

要件に応じて、適切な選択をしたいところだ。

【Wix】Wixを使うべきただ1つの理由と、最適なプラン選択

いきなりだが、Wixを使うべきただ1つの理由。

それは下記の動画を見ていただければ、分かりやすいが、
専門的な知識(HTMLやCSSなど)を知らなくても
簡単にホームページを公開できる
」という点にある。

WordPressなどで自分でサイトを作ると
更新作業やセキュリティなどの保守が大変だが
Wixでは全く気にする必要はない。

またネットショップ、ブログ、お問い合わせフォーム、オンライン予約
なんかも、もちろん使える。

www.youtube.com

自分も試してみたが、テンプレートを選んで
文字を編集して、写真を変えて、公開するだけという手軽さ。
ホームページビルダーと比較しても、良質なテンプレートが
揃っている気がする。

ちなみに公式サイトのトップには「無料で作る」という文言が入っているが
実際に無料モードで作ると、

  • Wixサイトを作ろう!」(右上)
  • 「このホームページはWIX.com.を使って作成されました。あなたも無料で作りませんか」(サイト下部)

が、それぞれ広告として表示される。

ビジネスとしてホームページを立ち上げる場合、
また個人的なホームページであっても
上記のような広告がサイトに入るのは、正直微妙。

なのである程度、信用が必要とされる情報を公開する場合は
有料プランを契約する必要がある。

現時点(2017/08/26)での有料プランは以下通り。

f:id:Thoames1212:20170827042612p:plain

ECショップ用サイト

ECサイトを作るなら、問答無用で

  • VIPコース:月額約24ドル
  • eコマース:月額約16ドル

かを選択する必要がある。
VIPコースには、「毎月10回の宣伝メール作成」と「サイトレビュー」という
SEO改善のためのレビューをしてもらえる機能がある。※ただし英語でのレビュー。
この辺はサイトの用途によって決めると良いだろう。

ECショップ以外のビジネス用・個人用サイト

ECショップを作る以外で1番需要が多いとされるのは、
1番安い月額4ドルのプランは広告が入るので論外なので

  • コンボ:月額約8ドル
  • 無制限コース:月額約12ドル

だと思われる。

注意したいのはコンボプランの「帯域幅」。

帯域幅とは要は「転送量」のことで、このプランの場合
月毎に2GBの転送量があった時点で、サイトが見られなくなる。
Wixで2Gの帯域幅をオーバーした場合

Webサイト1ページ毎の転送量(データ)は、サイトによって
それぞれ違うのでなんとも言い難いが
おおよそ1ページあたり1MB〜3MBだと思われる。真ん中の2MBで計算すると
「月に1000人」ぐらいのアクセスまでは、このプランで対応できるものと思われる。

このプランに当てはまる需要は
名刺代わりに、とりあえずサイトを立ち上げたい会社か個人ぐらい。

サイトを立ち上げた時点でアクセス数にこだわらないならこのプランでも十分と思う。
仮にオーバーしそうになっても、オーバーする前にWixから連絡が入り
アップグレードも可能なようなので、最初はコンボプランで試してみても良いだろう。

ただしお問い合わせフォームなどのフォーム系を設定したい場合は
「無制限」プラン以上を選択する必要があるようだ。

【Elasticsearch】設計時のポイントについて

設計のポイントについては
以下のサイトさんがよくまとまっている。

dev.classmethod.jp

他には2.x系の場合
string系のフィールドには「not analyzed」を設定できないかを考慮する。
こっちのほうが性能が良くなるらしい。

またフィールドの自動追加機能をオフにしたほうがいいらしい。
小数点を使用したいフィールドが勝手に丸められてしまうなどの
現象が発生するっぽい。