2015-12-06

Bitbucket × Jenkins

個人開発用にローカルWindowsへJenkinsをインストールし、Bitbucketのプライベーソリポジトリへプッシュした内容を自動的にClで回してデプロイまでもっていきたい。

Clツールのためにサーバーを用意するほどではなく、課金してCircleCiするほどでもない案件。
規模が大きくなるとどっかに移行したほうが楽かも。

公式。

インストールからHelloWorldまでは上記が参考になった。

基本的なセキュリティは、ちょっと古いようだが上記の流れで問題ない様子。

ユーザー認証。

2015-12-04

Default CSS

なんとなく気になって主要ブラウザのデフォルトCSSを調べてみた。

IE

Firefox

Chrome

Safari

Edgeは見つけきれなかったなぁ。

2015-12-02

多言語化

Webアプリを日本語の他に英語にも対応させることにした。

WEB+DB PRESS の78号でフロントエンド向けではあるが特集が組まれていたおり大いに参考になった。

フロントエンドではi18n APIに期待したが、Safariが…。

ライブラリ群では定番のMoment.jsも紹介されており、その後より広範囲なFormatJSが登場したりしているので、よく吟味したい。

URLの設計をどうするかは未だ検討中だが、言語ごとに検索結果の最適化を行いたい場合はドメインを利用した手法がオススメなようだ。

Nodeではi18n向けライブラリが存在し、Koaでラップしたものも有志により作れれているので、この辺を使えば容易に行けそう。

そして実装へ

サブドメインを使用したi18n化を実装した。

とりあえず検索エンジン向けにhreflangを記述した。HTTPヘッダーやサイトマップへ記す方法もあるようだが、今回はお手軽にhtmlへ直接書いた。

1<link rel="alternate" hreflang="en" href="https://dewy.me/"> 2<link rel="alternate" hreflang="ja" href="https://jp.dewy.me/">

片方ずつ置けばいいのかと思いきや、両方のページに両方置かなければならないらしい。
今回は2言語なのでごちゃごちゃすることはないが、増えるようだったらサイトマップを試してみたい。

2015-12-01

SourceTree-1.6.24

SourceTree 1.6.24でBitbucketアカウントへのログインができない。

調べてみたらすでにヘルプへ上がっているので、そのうち修正されると思われる。どうやらWindows全般で起こっているようだ。

現時点での解決策は1.6.23へのダウングレードのようだが、一度アンインストールが必要でやや面倒なので様子を見ることにした。明日修正版が出なかったら実行することにする。

2015-11-29

Marker-Clusterer

Google mapsへMarker Clustererを導入した。

ライブラリを追加し、下記ドキュメントとデモを見たら大体の仕様は分かった。

基本的にはGoogleMapオブジェクトとマーカーの配列をnew MarkerClusterer()へ突っ込めば作動する。

オプションを渡してクラスター化のタイミングなどを制御できるようだが、ドキュメントを探すのにちょっと苦労した。
おそらくVer.1と同様のようなので、ここを参照した。

  • gridSize - クラスター範囲のサイズ。デフォルトは60で、小さくすると精度が上がり、大きくするとパフォーマンスが上がる。
  • maxZoom - クラスター監視に限度を設定できる。設定以下だとクラスター対象のマーカー群を無視する。
  • styles - クラスターのスタイルを設定できる。配列で大サイズから小への順番で。

大量のマーカーを配置するならユーザビリティ的に恩恵は大きいと思う。
スマートフォンでもパフォーマンス上の問題は無さそう。

しかしマーカーが比較的密集していると、ズームレベル15では単独表示だったが、16へズームするとクラスター化されてしまうという不自然な挙動が見られた。恐らくクラスター化のグリッド計算アルゴリズムの仕様なのでしょうがないかも。