2015年11月01日

自作ライブラリをComposerのパッケージとして使えるようにする

ちょっと前にIT関係のニュースを自動で集めるサイトの機能追加を行いましたが、そのときに自作パッケージをcomposerで管理できるようにしてみました。

自作パッケージはgithubの勉強用に作ったもので、ユーザーエージェントでアクセスしたOSや端末を判定するものです。これにcomposer.jsonを追加して、composerでインストールできるようにしてみました。ただし、このプログラムは簡単なものなので、Packagistには登録せずに、composer.jsonのrepositoriesでurlを指定して使っています。

最初簡単にできるかと思いましたが、以下のようなバージョン指定のエラーや、名前空間で結構はまってしまいました。
Your requirements could not be resolved to an installable set of packages.

Problem 1
- The requested package ajisaba/devicedetect could not be found in any versi
on, there may be a typo in the package name.

Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your min
imum-stability setting


PHPだとComposerは必須なので、まだ不十分ですが、とりあえず以下にまとめてみました。
PHP・Composerで自作ライブラリ(パッケージ)をインストール

posted by jun1 at 22:01| Comment(0) | TrackBack(0) | Web

2015年04月12日

Windows Phone IS12Tのユーザーエージェント

以前、スマートフォンが画像アップロード対応しているかどうかをユーザーエージェントで判別するためのPHPソースを公開しましたが、auの Windows Phone IS12Tをガラケーと判断することがありました。
AndroidやiOSなどでファイルアップロードが可能なものを判別する
https://github.com/ajisaba/DeviceDetect

そこでユーザーエージェントを調べてみると、"KDDI"という文字列が含まれていて、これでガラケーと判断されていました。

KDDI IS12T のユーザーエージェント
Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; FujitsuToshibaMobileCommun; IS12T; KDDI)

※上記は以下のページにあったものです。
Windows Phoneを.htaccessで正しく振り分ける方法

とりあえず、原因が分かれば修正は簡単なので、修正してgithubに反映して対応を終わりにしました。

あと、今年に入ってWindows Phone関係のニュースを見たような気がしたのと、Windows Phoneについて全く知らなかったので、ちょっとWindows Phoneについて調べてみました。
とりあえず、以下の記事にWindows Phoneの歴史などについて詳しく書かれていました。
Windows Phoneの逆襲(法林岳之の「週刊モバイルCATCH UP) 2015/4/3

記事には以下のようなことが書かれていますが、販売してもどれくらい売れるのでしょうか?
約3年半近く、国内向けには新製品が登場しなかったWindows Phoneだが、最初で触れたように、ここに来て各社が相次いで開発を表明し、今夏にも複数のメーカーから新製品が登場することになりそうだ。

参考 Net Applicationsが発表した2015年3月のモバイルOSのシェアについての記事
Android 4.4、iPhoneに匹敵するシェア獲得 - 3月OSシェア(モバイル)

posted by jun1 at 21:31| Comment(0) | TrackBack(0) | Web

2015年03月29日

クライアント側JavaScriptフレームワーク?

クライアント側JavaScriptのフレームワークについてのまとめ。

サーバー側の仕事が多いので、クライアント側のJavaScriptはjQueryぐらいしか使っていませんが、今はいろいろなフレームワークがあるようです。
人気上昇中のJavaScriptライブラリを調べてみた【2015年版】(Build INSIDER)
上記の記事だと、AngularJSが人気のようです。

仕事でBackbone.jsを使っているのは見た事ありますが、AngularJSはまだありませんが、日本でも使っているところはあるのかな?と調べてみると、以下の記事が見つかりました。
AngularJSのエキスパート達が語る、AngularJSの使いどころとつらいところ(前編)。Deverlopers Summit 2015
AngularJSのエキスパート達が語る、AngularJSの使いどころとつらいところ(後編)。Deverlopers Summit 2015

あと、AngularJSの入門用記事
AngularJSを利用するには?
AngularJS入門 – シリーズ –
posted by jun1 at 20:41| Comment(0) | TrackBack(0) | Web

2015年02月15日

AndroidやiOSなどでファイルアップロードが可能なものを判別する

スマホでファイルのアップロードをしようとしたら、古いものは対応していないことが分かりました。とりあえずAndroidとiPhoneだけ使えれば良いので、対応しているバージョンを調べると以下のようになっていました。
iOS バージョン 6 以上
Android バージョン 2 or 3以上?


Androidは、以下の記事によると、2.2以上で対応。ただし、OSのバージョンの違いや,機種によって動かないものもあるということだそうです。
スマホでブラウザ経由でファイルのアップロードは,対応状況がバージョン依存。iOS6以降,Android2.2以降

そのため、Androidはバージョン3以上なら対応と見なすようにしました。

これらの判別はユーザーエージェントをチェックするしかないので、PHPの公開されているものはないかと探してみると、以下が見つかりました。
mobiledetect

これでも良かったのですが、簡単なガラケーの判別も必要だったのでちょっと自作することにしました。また、最近仕事でgithubを使うことが無く、使い方を忘れかけていたので、とりあえずgithubに登録してみました。
https://github.com/ajisaba/DeviceDetect

現状ではAndroid、iOS、ドコモ、Au、Softbankの判別は大丈夫のようですが、PCやその他のモバイル端末などは問題がありそうです。


posted by jun1 at 20:25| Comment(0) | TrackBack(0) | Web

2015年02月01日

mod_rewriteでURIを変更せずに静的ページを動的ページにしたり、ホスト名の変更などに対応

最近、mod_rewriteでURIを変更せずに静的ページを動的ページにしたり、ホスト名の変更などにすることがあったので、そのときのメモ

・サーバーやコンテンツを変更せず、あるサイトに新しいドメインを割り当てて、古いドメインでのアクセスを新しいドメインにリダイレクトさせる場合

以下の2つのホスト名が設定されている場合
・www.example.com (今まで使用していた方)
・www.example.net (新しい方)

この場合、mod_rewriteを使い、”.htaccess”に以下のように記述します。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule .* http://www.example.net%{REQUEST_URI} [R=301,L]

%{HTTP_HOST}, %{REQUEST_URI} は、http://www.example.com/test/index.htmlの場合以下のようになります。
%{HTTP_HOST} = www.example.com
%{REQUEST_URI} = /test/index.html

[・・・]の指定は以下のような意味になります。
NC   RewriteCondの判定で大文字、小文字の区別をしません。
R=301 HTTPステータスコード301(Moved Parmanently)でリダイレクト
L   条件にマッチした場合は、[L]の行で実行が停止します。


・ある特定のページを別のページにリダイレクトさせる場合、以下のようにします。
RewriteEngine on
RewriteRule ^/server/test.html$ http://www.example.net/client/test.html [R=301,L]

ただし、バーチャルホストを使用していると、上記でリダイレクトしない場合があります。
原因は条件”^/…$”の先頭にある”/”になります。
この場合は、”^/?…$”にして先頭の”/”が無しでもマッチするようにします。
RewriteEngine on
RewriteRule ^/?server/test.html$ http://www.example.net/client/test.html [R=301,L]

参考
ApacheのRewriteRuleで検索条件に^/がマッチしない場合がある理由


・特定の拡張子のときだけを遷移させる場合、例えば、拡張子が.htmlの静的ページを、URIは変更せずにPHPの動的ページにするような場合
RewriteEngine On
RewriteCond %{REQUEST_URI} \.html$
RewriteRule (.*) /index.php?uri=$1 [L]

ここでは2行目で拡張子".html"のリクエストだけを対象に指定しています。
3行目でリクエストのURIをパラメータとして "/index.php" にアクセスするようにしています。
さらに、最後の[L]にRが無いため、ブラウザに表示されるURIの変更なしに動的ページとなります。

例 http://www.example.com/test/hello.html でアクセスすると、クライアントには分からないように http://www.example.com/index.php?uri=/test/hello.html が実行され、その結果が返されます。

参考
Apache Module mod_rewrite
posted by jun1 at 21:44| Comment(0) | TrackBack(0) | Web

2014年12月05日

趣味の開発・開発用記事一覧を自動収集して時系列で表示

最近はサーバーやプログラム調査が多く、プログラムを書くことが少なくなっていました。そこで、休みなどで何か作ろうと思ってい、前から考えていた複数のサイトの開発用記事一覧を自動収集して時系列で表示するものを作ってみました。
IT News 一覧

基本は、RSSで記事一覧を取ってきて、データベースに保存し、ある条件で並べて表示となっています。

開発はPHPで、フレームワークは使わずに一から作ってみました。CakePHPやSymfonyなど、フレームワークを使ってもよいのですが、フレームワークは仕事で使うので、勉強の意味も兼ねてフルスクラッチにしてみました。

今回作成したページは、通勤時スマホ、自分の部屋ではPCから見るので、その両方に対応させました。デザインセンスが無いので見た目ががよくありませんが、とりあえず自分が見る分には問題ないので、いろいろな実験も兼ねてこのまま運用していきたいと思います。
posted by jun1 at 00:07| Comment(0) | TrackBack(0) | Web

2012年12月31日

2012年のホームページのアクセスについて

2012年もあと少し。そこで、自分のホームページのアクセスランキングを振り返ってみることにしました。

1位 Linux - シリアルコンソール
2位 Eclipse 3.7 起動エラー
3位 Linux カーネル 起動オプション

これらはGoogleの検索結果から来ているみたいです。特に1位のシリアルコンソールは1ヶ月あたりのアクセス数が900HITを超えています。書いた当初はそんなにくると思わなかったですが、毎月同じぐらいアクセスがあって意外な感じです。

次に第2位のEclipsのエラーの記事ですが、1ヶ月600HITぐらいです。こちらも毎月おなじくらいのアクセスがあります。

3位は1ヶ月あたり300HITの「Linux カーネル起動オプション」のページです。このページは内容が非常に乏しく、このアクセス数は不思議です。予想としてはカーネル起動オプションについて書いているサイトが少ないのではと思います。


以下は参考
4位 bridge-utils(1ヶ月あたり200HITぐらい)

5位 TFTPサーバー(1ヶ月あたり170HITぐらい)

6位 Fedora 15 VirtualBoxのインストール(1ヶ月あたり150HITぐらい)


最もアクセスの多いページでも1ヶ月1000HITに届かない上、ページも少ないのでアクセルランキングなど考えてもあまり意味がないですが、結果を見るといろいろと考えさせられて面白いものです。
posted by jun1 at 22:53| Comment(0) | TrackBack(0) | Web

2012年07月26日

OpenStreetMap

最近ですが、OpenStreetMapという自由に利用できる地理情報データのプロジェクトを知りました。
「オープンソース」を使ってみよう(第6回:OpenStreetMap編)




続きを読む
posted by jun1 at 00:54| Comment(0) | TrackBack(0) | Web

2011年10月27日

ソーシャルゲームでIISとSQL Serverを使用している会社がある

ソーシャルゲームにWindowsを使用している会社の記事がありました。

1日3億ページビューをWindowsプラットフォームで処理

続きを読む
posted by jun1 at 10:41| Comment(0) | TrackBack(0) | Web

2010年08月12日

Googleのランキングについて

Yahoo JapanがGoogleの検索エンジンを採用するという記事が最近ありました。
Yahoo!JAPANが約6年ぶりにGoogleの検索エンジンと広告システムを採用へ

この記事を見て、以前に調べたGoogleの検索についての記事を思い出したので、忘れないようにメモ。

続きを読む
posted by jun1 at 23:39| Comment(0) | TrackBack(0) | Web