WEB/システム/IT技術ブログ

Subversionのフットスクリプトを利用することで、サーバサイドでコミット時にさまざまな処理を実行することができます。

サーバ上のリポジトリ設置ディレクトリ直下の「/hooks/」ディレクトリに配置されてるファイルにスクリプトを記述することで、処理を実行することができます。
ファイルの種類により実行のタイミングが管理されており、それぞれ以下のようになっています。

start-commit コミットトランザクション作成前
pre-commit コミット前
post-commit コミット後
pre-revprop-change リビジョン属性変更前
post-revprop-change リビジョン属性変更後
pre-lock ロック取得前
post-lock ロック取得後
pre-unlock ロック解放前
post-unlock ロック解放後

リポジトリを作成したデフォルトの状態で、各テンプレートファイルが用意されているので、そのファイルをリネームすることで用います。
例えば「start-commit.tmpl」ファイルがあるので、コピーまたはリネームで「start-commit」というファイルを作成し、テキストエディタで開いてスクリプトを記述します。
ファイルを用意するだけで、後はコミット時に自動的にファイルの内容を読み込んでスクリプトが実行されるしくみです。

それでは、いくつか具体的な処理にトライしてみます。
ちなみに今回、SubversionサーバはUbuntu 14.04で試しているのでLinuxコマンドの処理となりますが、もちろんWindowsサーバでも同等の事が実現可能です。

Windows 7 Professional 64bitを使っているのですが、最近、Windows 10へのアップグレードを促すポップアップに悩まされています。

update_win10_01

「Windows 10のご紹介
今ならWindows 10へ無償アップグレードすることができます さあ、今すぐ予約を
予約は期間限定です Windows 10 詳細」
つまり、今なら期間限定でWindows 10に無償でアップグレードができるようです。

HTML5の新機能「Geolocation API」を使用して位置情報を取得します。

HTML5が公開され、いくつかの新機能が策定されましたが、中でもその有効性が期待されているのが「Geolocation API」です。

これまでの位置情報取得技術

一昔前までは、Webブラウザで現在地を取得する方法としては、例えばマシンのIPアドレスから位置を特定する方法がありました。しくみはとても単純で、IPと位置情報の紐づけはデータベース化されており、その精度はデータ量によるというものでした。
そのため、IPがプロキシサーバで偽装しているなどの場合に、正確な位置情報を決定できないという問題などがありました。

その他理由からも、ブラウザから正確な位置情報を取得するということは、当時は困難であり、サービスコストのかかる技術だったといえます。

処理進捗やLoading状態を表現するプログレスバーですが、今回はBootstrapのプログレスバーの長さをjQueryでアニメーション制御します。

こちらがBootstrapのデフォルトのプログレスバーです。

30% Complete
<div class="progress">
  <div class="progress-bar" role="progressbar" aria-valuenow="30" aria-valuemin="0" aria-valuemax="100" style="width: 30%;">
    <span class="sr-only">30% Complete</span>
  </div>
</div>

このバーの長さを制御するためには、単純にwidthの値をJavaScriptで変更するだけで良いです。
BootstrapでデフォルトのTransitionプロパティが指定されているので、CSS3が有効なブラウザ上でwidthの指定だけでアニメーション効果が得られます。

WordPressでアイキャッチ画像や投稿中の画像など、メディアが保存されるディレクトリを変更する方法です。

デフォルトでは「(WordPressの設置場所)/wp-content/uploads」に保存されますが、セキュリティの面からインストール先を隠蔽するなど、運用の都合上、ディレクトリを変更したい場合があります。

そのような場合、まずは管理画面にログインした状態で以下のURLにアクセスします。

http://cms.helog.jp/wp-admin/options.php

するとWordPressの細かい設定項目の一覧が表示されます。

WordPressのセキュリティチェック項目一覧です。

最近WordPressを使った要件がますます増えてきたのですが、そんな中でセキュリティチェックはルーチンワークとなっています。

オープンソースとして、活用事例も格段に多いWordPressですが、それに伴い攻撃の対象となりやすいのも事実です。ここで今一度、そのセキュリティの精度を確保するために、チェック項目一覧としてまとめてみます。

インストール編

WordPressインストール時に気をつけたいセキュリティチェック項目の一覧です。

WordPressインストールディレクトリの変更 WordPress本体のインストールディレクトリはルートにせずに、任意のディレクトリに設置しましょう。また、ディレクトリ名は「wordpress」や「wp」などとせずに、連想されないディレクトリ名にしましょう。
テーブルプレフィックスをデフォルトから変更する インストール時、デフォルトで生成されるDB内のテーブル名プレフィックスは「wp_」です。データベースを攻撃の対象とされた場合の対策として別のプレフィックスに変更しましょう。
SSL通信を適用する ログイン画面、管理画面にはSSLを適用して、通信を暗号化しましょう。
ユーザ名を「admin」などとしない 不正ログインを防ぐため、ユーザ名を「root」や「kanri」などにしない。特に、以前のバージョンでデフォルト管理ユーザ名である「admin」にはしない。

ソフトバンクでiPhoneを利用し始めてから約1年半が経ちました。
いわゆる「2年縛り」で、違約金が発生せずに乗り換えられる期間が近づいてきたので、最近話題の格安スマホへの乗り換えを検討してみます。

現状のソフトバンクの満足度

現在、使用しているソフトバンクのiPhone5cですが、個人的には特に不満なく利用しています。

  • 生活範囲内で電波圏外になることはなし
  • 速度にも不満なし
  • 生活範囲内にWi-Fi環境が整っているのもありパケット制限に達することもない

唯一の不満といえば、利用料金が高いと感じること。
速度、容量も十分ということから、オーバースペックに割高感というのは否めないのですが、恐らくその辺りはauにしてもdocomoにしても同じこと。

そこで格安スマホはどうだろうか?と思い少し調べてみました。

あるCMSをWordPressに移行するという事で、既存データを流し込みたいという依頼がありました。
そこで、関数wp_insert_postを使って投稿を一気に流し込む方法を考えてみます。

はじめは、それぞれのCMSでDB上のデータ構造が異なるので、詳細を把握した上で、PHPでDBからDBへのデータ移行プログラムを書くという、かなりリスクのある方法を検討していました。
しかし、WordPressのDBを直接操作することは、後に整合性がとれなくなるなど危険があります。

調べてみると、WordPressでは管理画面のインタフェースから記事を投稿する以外に、関数wp_insert_postを使ってプログラム上から整合性のとれた投稿が可能なことを知ったので、これを利用することにしました。

今回はFlickr APIを使って画像を取得してみます。

The App Garden on Flickr

写真投稿SNSとして有名なFlickrですが、先日、パブリックドメインに対応したということで話題になりました。

これまで、Flickrに投稿された画像について、各レベルの著作権が設定可能であったため、
どのようにしたら流用できるのか、著作権違反にならないのか、さまざまな場所で議論されてきました。

しかし、今回、著作者がその権利を完全に放棄するパブリックドメイン(CC0)を設定できるようになったことで、
APIから画像や動画を利用しやすくなりました。

Monthly Archives