しばらくブログの更新が途絶えてました。 これは更新をさぼってた訳ではなくて、ブログを楽に更新できるシステムを構築していたためです。ようやく本稼働できたので、数回にわたってその仕組みを紹介したいと思います。 Pelicanでのブログ更新 これまでの記事で、静的Webサイト生成ツールのPelicanに移行したことや、Pelicanのインストールを書いてきました。PelicanによるWebサイト作成では、MarkdownやreStructuredTextで書いた記事をPelicanでビルドして、生成されたWebサイトのファイル一式をWebサーバに転送します。このブログの記事はMarkdownで書いてBitBucketに作成したGitリポジトリで管理しているので、以下のような流れです。 Gitで現行作成用のdraftブランチを作成する。 ローカルPCで原稿をMarkdownで作成する。 ローカルPCでPelicanのビルドを実行(make html)して、レイアウトや文体・誤字・脱字を確認する。 原稿が完成したら、Gitで変更点をコミットして、draftブランチをmasterブランチにマージする。 masterブランチをBitBucketにPushして取り込む。 PelicanでWebサイト用に発行(make public)する。 生成されたWebサイトのファイル一式をFTPでWebサーバに転送する。 この一連の作業が、記事を何篇も書いているうちに、だんだんと面倒になってきました。BitBucketに原稿を取り込んだらWebサイトも更新された状態になっていてほしいのですが、Pelicanの仕組みではビルドと生成ファイルの転送が必要です。 そこで考えたのが、BitBucketに変更点がPushされたことをWebサーバで検知したら、Pelicanでの発行処理を行うという仕組みでした。BitBucketにはリポジトリにPushされたら他システムに通知する仕組みが提供されています。これを使えばPushされたことを検知できそうです。 複数サイトの自動ビルドシステム構築 ブログサイト1箇所にこの自動ビルドシステムを構築するのは大した手間ではないのですが、ブログサイトが複数あるとそれぞれの横展開で同じ作業が続くことになり、作業漏れや作業ミスが起きる心配があります。 できれば、自動ビルドシステムを構築したWebサイトの雛形を作っておいて、それぞれのWebサイトは雛形をコピーして設定ファイルを直すくらいに簡略化したいものです。 このために目を付けたのがDockerと呼ばれる仮想化技術です。DockerはOS上に互いに隔離された空間を作成して、それぞれでプロセスを実行します。この空間はプロセス、ネットワーク、ファイルシステムが独立していて、コンテナと呼ばれます。OSを仮想化する仮想マシン技術と比べて、コンテナ仮想化はOSを共有しているのが特徴です。 (DockerRead More →

"What’s New in Windows Phone 8.1を読んで(その6)"の続きです。 開発ツール関連 Windows Phoneエミュレータ Windows Phone 8.1エミュレータは複数解像度、マウスでのマルチタッチ入力が追加されていて、 ネットワーク周りも改善されています。 エミュレータの"Additional Tools"を使って、アプリの多くの機能をテストして、 実行時の条件をシミュレートできます。SDカードのシミュレーション、地図上で経路を移動したり、 センサーを止めたり、通知を送ったり、異なるネットワーク速度でテストしたりできます。 Windows Phone DeveloperRead More →

"What’s New in Windows Phone 8.1を読んで(その5)"の続きです。 データ・ストレージ関連 Windows.Storate API Windows Phone 8.1ではストリームベースのファイル関連を除いてWindows.Storage APIをフル実装しています。 このため、File Pickerを使って開いたり保存するファイルを選択できます。 ただし、メモリが少ない端末ではFile Pickerから戻ったときにアプリが終了してしまっている可能性が あるため、別のFile Pickerが用意されています。 ローミングRead More →

"What’s New in Windows Phone 8.1を読んで(その4)"の続きです。 近接通信 近接通信で用いる"近接通信アプリID(proximity app Id)"は、 Windows 8では"<パッケージファミリー名>!<アプリID>"の形式で "b3c3e7ef-371a-464f-a75e-95ddbdcaf974_7fed2v891h66p!App"のような値です。 一方、Windows Phone 8ではプロダクトIDを使った "{1c6379c1-9d5e-4254-8f4c-be7ea24057d1}"の値です。 Windows Phone 8.1とストアアプリがユニバーサル化されて同じパッケージファミリー名をRead More →

"What’s New in Windows Phone 8.1を読んで(その3)"の続きです。 アニメーション XAMLでの開発者がアプリに適用できるよう、WP8.1の全てのアニメーションを 新しいクラスを通して公開する、とあります。 これは、Windows.UI.Xaml.Media.Animation名前空間にあるクラスのことだと思われます。 テキストの拡大 Windows Phone 8.1では、ユーザー補助機能で設定するとテキストが自動的に拡大されます。 アプリでの対応は不要ですが、オプトアウトしたいときはIsTextScaleFactorEnabledを falseに設定できます。 また、設定値を調べたり、設定が変更された場合に通知されるために Windows.UI.ViewManagenent.UISettingsクラスの TextScaleFactorChanged, TextScaleFactorメンバを使えます。Read More →

"What’s New in Windows Phone 8.1を読んで(その2)"の続きです。 アクションセンターで通知の管理 通知を管理するアクションセンターは、アプリからAPIを介して通知を管理できるようです。 管理できるのは、通知の追加、削除、置換、expireがあります。 ユーザとしてアクションセンターは欲しかったのだけど、アプリから制御できるなら 有効な使い方を考えたいですね。 トースト通知、タイル、バッジ バックグラウンドからタイルを更新できるようになっています。 バックグラウンドの音楽再生 バックグラウンドでの音楽再生で使用するクラスが、 従来のMicrosoft.Phone.BackgroundAudio.BackgroundAudioPlayerから Windows.Media.Playback.BackgroundMediaPlayerに置き換わりました。 Windows.Media.Playback.MediaPlayer APIを使うことで 以下のことができるようになります。Read More →

先日のBUILDでのWindows Phone 8.1の発表と合わせて、そのSDKが公開されています。 さっそくSDKを導入して、どんな内容か見ていきたいとおもいます。 SDKのインストール Windows PhoneのSDKはいつもはこの配布場所から入手しますが、 今回のWindows Phone 8.1 SDKはVisual Studio 2013 Update 2に含まれています。 Visual Studio 2013 Update 2はRC版が公開されたところで、RTMへのアップグレードがRead More →

"What’s New in Windows Phone 8.1を読んで(その1)"の続きです。 Windows Phone 8.1の機能 原文では"Windows Phone 8.1 features"。新しい機能として多くが挙げられていますが、少しずつ見ていきます。 位置情報関連 Geopositionクラスによる位置情報の測位は変わっていないようです。 クラスが追加されているとのことで、使い方を後日見ていきます。 Geofencing機能 指定された位置に入ったとき、出たときにアプリに通知する機能。 自宅や職場に着いたらリマインダーを出すような例を挙げています。 位置に依存した情報を取得・処理して表示する機能は需要があるだろうから、Read More →

BUILD 2014の基調講演でWindows Phone 8.1 (WP8.1)が発表されましたね。Channel 9で公開されている動画を見ると、多くの新機能・機能変更があって追い切れないくらいです。 一方、Windows Phone Dev Centerでは"What’s New in Windows Phone 8.1"が公開されて、変更点がまとめられています。これを読みながら、Windows Phone 8.1でのアプリ開発の姿を見ていけたらと思います。 Windowsストアアプリへの収斂 原文では"Platform convergenceRead More →

先日に言及した静的Webサイト生成ツールのPelican。Windows環境でのPelicaのインストール方法を紹介します。 以下では、Pelicanを"c:\blog\pelican"にインストールするものとします。 Pythonのインストール まず初めにPythonをインストールします。Pelicanの新しい版ではPython 3.3にも対応していますが、Python 2.7が推奨なので同バージョンをインストールします。 Pyhon 2.7のダウンロード先 インストール先は任意のフォルダで構いません。以下ではインストール先フォルダを"c:\Python\Python27"とします。また、PATH環境変数にインストール先フォルダを設定する必要はありません。 pipのインストール pipはPythonの各種のライブラリをインストールするツールです。 pipのインストール手順に従ってget-pip.pyをダウンロードしてPython 2.7で実行します。 :::shell > c:\Python\Python27\python.exe get-pip.py Virtualenvでの環境作成 Pelicanとその依存ライブラリをPythonにインストール前にVirtualenvをインストールします。 Pythonでは、プロジェクトごとに独立したPython環境を作成して、Read More →