2016年01月18日

IT関係記事を集めているサイトに分類機能を追加

勉強やデータ収集テスト用にIT関係記事を集めているサイトを公開していますが、検索機能などがなかったので、とりあえず自分用に特定キーワードごとに表示する分類機能?を追加してみました。
IT News 一覧

記事タイトルに対象キーワードがあるかどうかで分類しています。テストでは概要などもチェックしてみましたが、タイトルだけチェックする方が良さそうでしたので、タイトルだけチェックするようにしました。

ちょっとした勉強用に使えるかな?と思います。



posted by jun1 at 00:03| Comment(0) | TrackBack(0) | ソフト

2015年11月08日

Vagrantのbox作成

ここ数年VirtualBox + Vagrantを使っています。
個人的に使用する場合は、公開されているboxを使っていましたが、boxの中身理解や開発環境のテストのため、boxを自作できるようにしました。

boxの作成では、カーネルヘッダーやDKMSなどが必要だったり、sudo、SSHの設定があったりと作業がいろいろとあるので、作成に困らないように作業内容をまとめてみました。
スクラッチでVagrantのbox作成

あと、自作や他の人が作成したboxで、たまに起動しなかったりするトラブルがあります。
その場合、ログ出力のレベルをinfoに変更して、より詳細なログで調べると原因が見つけやすかったです。
Vagrant エラーのデバッグ

posted by jun1 at 23:37| Comment(0) | TrackBack(0) | ソフト

2015年10月18日

IT関係記事のアクセスランキング

IT関係のサイト記事を定期的に集めるサイトを作成して約1年間公開しています
IT News 一覧

ずっと自分かクローラーぐらいしかアクセスが無いと思っていましたが、記事のアクセス数をを調べてみると他に比べてあきらかにクセス数が多いものがありました。

そこで、どのような記事にアクセスが多いか、ランキングページを追加してみました。
アクセス・ランキング

また、セキュリティ関係記事のランキングページも作成してみました。
セキュリティ・ランキング

アクセス数は半年でも100アクセス前後程度なので、あまり参考になりませんが、自分が見落としていた記事で面白そうなものとかがありました。


アクセス・ランキングの上位にあった記事
Ashley Madisonから流出したパスワード100選

セキュリティ・ランキングの上位にあった記事
継続中の大規模な同時多発Web改ざん攻撃を詳細分析(トレンドマイクロ・セキュリティブログ

時々アクセスランキングを見れば、見落とした面白い記事を見つけられそうです。

あと、上記の2つ記事で気が付きましたが、1つ目はセキュリティに分類しないといけないのに分類されていませんでした。分類するプログラムは雑に作ったので、修正か作り直すことを検討してみたいと思います。mecabかn-gramなどの形態素解析とか使って自動分類プログラムを作り直すのが面白いかも?

posted by jun1 at 22:09| Comment(0) | TrackBack(0) | ソフト

2015年03月22日

文字列の特定単語の前後にタグを付ける

文字列の中の特定単語の前後にタグを追加したい場合、単語に変更がなければ正規表現などで置換すればできます。しかし、単語が自由に登録、削除でき、順番もばらばらで似たような単語が多くある場合、単純な置換だけだと、漏れがでる場合があります。

例 単語が以下のように登録されている場合


春分
秋分

文字列が、"春は春分、秋は秋分" の場合、登録されている順番に正規表現で置換すると、”春”、”秋”で置換されて、”<b></b><b></b>分、<b></b><b></b>分”になってしまいます。

求めるのは、"<b></b><b>春分</b><b>秋</b>は<b>秋分</b>"で、登録単語の順番を変えれば、正規表現と置換で簡単にできますが、求めるのは、どのような単語の組み合わせにも対応できるものです。

とりあえずネットで検索してみましたが、上手く見つからなかったので、作ってみました。
https://github.com/ajisaba/WordMarker

他に何かいい方法が無いか、また調べたいと思います。
posted by jun1 at 21:36| Comment(0) | TrackBack(0) | ソフト

2015年02月22日

githubでpushすると403エラーになる場合

githubで作成したレポジトリを以下のようにcloneしてきてました。
$ git clone https://github.com/ajisaba/DeviceDetect.git
Initialized empty Git repository in /home/username/github/DeviceDetect/.git/
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.


ファイルの追加などをコミットしてPUSHすると、以下のような403エラーになります。
$ git push -u origin master
error: The requested URL returned error: 403 Forbidden while accessing https://g
ithub.com/ajisaba/DeviceDetect.git/info/refs


原因が分からなかったのでネットで調べると、以下が見つかりました。
git push origin masterしたら403エラー出た時の対処
githubでいつもと違うPCからHTTPSの認証を使ってgit pushする場合の手順
(Stackoverfllow) Pushing to Git returning Error Code 403 fatal: HTTP request failed

これらを参考にして、.git/configの中身を確認。
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://github.com/ajisaba/DeviceDetect.git
[branch "master"]
remote = origin
merge = refs/heads/master


参考ページより、https接続の場合は、urlにgithubのユーザー名が必要ということです。
url = https://[ユーザー名]@github.com/[ユーザー名]/[レポジトリ]


例えばユーザー名がajisabaの場合、以下のようになります。ただし、この指定方法ではpushするたびにパスワードを求められます。
url = https://ajisaba@github.com/ajisaba/DeviceDetect.gi


他に、ssh接続を使う方法もあります。sshの場合、urlはssh://URLになります。SCPコマンドのような省略形を使うこともできます。
url = ssh://git@github.com/ajisaba/DeviceDetect.git
url = git@github.com:ajisaba/DeviceDetect.git  (省略形)


参考、
4.1 Git サーバー - プロトコル

毎回のパスワード入力は手間なので、今回はsshの省略形でurlを指定することにしました。
そのため .git/config を以下のように修正してpushをすると、エラーが無くなりpushに成功しました。
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@github.com:ajisaba/DeviceDetect.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master


posted by jun1 at 19:44| Comment(0) | TrackBack(0) | ソフト

2014年11月07日

PHP:var_dumpとprint_rについて

現在の業務では、PHPを使う機会が減っています。個人的に、PHPでプログラムを作ったりする場合があるのですが、PHPの細かい点を少し忘れ気味です。

最近、デバッグで配列やオブジェクトの中身を確認するのに、var_dumpばかり使っていることに気がつきました。似た関数にprint_rがあります。何らかの理由でprint_rよりvar_dumpを使うようにしたのですが、その理由を思い出せません。また、両方の違いも忘れ気味なので、var_dumpとprint_rについて簡単な確認用のまとめページを作ってみました。
PHP・デバッグ・変数の中身確認

var_dumpの結果を変数に代入する方法のような、使う機会がほとんどないテクニックも、とりあえず忘れないように記録しておきます。
posted by jun1 at 07:33| Comment(0) | TrackBack(0) | ソフト

2014年10月06日

Eclipseからバッチファイルを実行する(2)

久しぶりにEclipseからバッチファイルを実行しようとしたら、やり方をすっかり忘れていました。そこで、以前ブログに書いた以下を参考に、バッチファイルを書いていると、疑問が起こったのでちょっと調べてみました。
Eclipseからバッチファイルを実行する

疑問が起こった個所は、バッチファイルの先頭に、以下の2行を書くところです。
%~d0
cd %~p0

これらがどういう意味だったかはっきりしなかったので調べてみました。
すると、以下のページが見つかりました。
%~dp0 とは

このページによると、以下のような意味になります。
%~d0 %0 をドライブ文字だけに展開
%~p0 %0 をパスだけに展開

%0がバッチファイルのフルパスになるので、バッチファイルが D:\batch\test.bat とすると、以下のようになります。
%~d0   =>  D:    =>  バッチファイルのあるドライブへ移動
cd %~p0  =>  cd \batch\  =>  バッチファイルのあるディレクトリへ移動


また忘れたらいけないので、以下にまとめました。
Windows・Eclipseでバッチファイルを実行
posted by jun1 at 23:31| Comment(0) | TrackBack(0) | ソフト

2013年05月24日

CakePHP 2.3のシェルのユニットテスト

最近、CakePHP 2.3を使用していますが、シェルのユニットテストができないかと調べてみました。

ネットで調べると以下の記事が見つかりますが、これはCakePHP 2.3では上手くいきませんでした。
CakePHPシェルの単体テストのやり方

そのため、上記を参考に、CakePHP本体にある、ShellTest.php を調べてみました。
  lib/Cake/Test/Case/Console/ShellTest.php



続きを読む
posted by jun1 at 08:33| Comment(3) | TrackBack(0) | ソフト

2013年03月13日

GitHub Enterpriseの活用記事

「はてな」や「グリー」などのGitHub Enterprise(GHE)の活用についての記事がありました。

知らないと残念過ぎるGitHubの新機能とグリー・DeNA・クックパッド・はてな・ペパボ・ドリコムの活用事例〜GitHub:E Casual Talkレポート

個人で使用するのと違って、大規模に使用していると、いろいろとはまることがあったそうです。

また、ドリコムでは、Ruby On Railsで書かれたGitlabを使用しているということです。Gitlabについては初めて知りましたが、Railsで書かれているのは面白そうです。

あと、クックパッドやDeNAでは、VMware ESXiでGHEを動かしているそうです。KVMやXenでない理由についてはっきりとは書いていませんが、安定性優先のような感じです。
posted by jun1 at 01:08| Comment(0) | TrackBack(0) | ソフト

2013年02月15日

mp4サンプル

ちょっと前にmp4の動画テスト用ページを密かに公開しましたが、最近、かなりのアクセスがあったので調べてみました。すると「mp4 サンプル」という検索で、Googleの上位に出ているのが原因のようでした。
動画テストページのトップ

このページは、以前Androidでmp4が上手く再生できなかった時に、その原因やプログラムのテストを行うために作成しましたが、同じようにAndroidやiphoneの動画再生テストなどでmp4のサンプルを探している人たちが見に来ているのかもしれません。

さて、mp4のサンプルですが、小さいサイズで問題ない場合、NHKクリエイティブ・ライブラリーの公開しているものが無料で利用できます。
NHKクリエイティブ・ライブラリー

基本的には無料で公開利用できますが、よくある営利目的の禁止ができないなど、いくつかルールがありますので、利用する人は以下を確認してください。
NHKクリエイティブ・ライブラリー 利用のルール
NHKクリエイティブ・ライブラリー よくある質問

いろいろな種類の動画があるのは良いのですが、どれも時間が短く、容量が小さい(5MB以下?)ようです。数十MB程度のmp4もあれば、より面白いのですが。。
posted by jun1 at 02:17| Comment(2) | TrackBack(0) | ソフト

2013年01月16日

gitの勉強で参考にしたサイト

去年の4月ごろからソースの管理にgitを使用しています。それまではsubversionでしたが、自宅で3台のPCを切り替えて使っていると、分散タイプの方がいろいろと便利なので、全てgitに切り替えました。

gitの勉強で参考したサイト
Gitを使いこなすための20のコマンド

Pro Git (Book)
(参考 Pro Git (日本語)

A successful Git branching model
(参考 A successful Git branching modelの日本語訳

Gitに潜む光と闇

gitで気に入った点は、コミット後にログが修正できる点です。subversionの時は修正が手間だったので、基本的にコミット後の修正はしませんでした。しかし、gitはコミット後でも修正できるうえ、コミット後にコミットの順番を変えたりすることもできます。これは自宅での個人的なプログラム開発で非常に役立っています。
posted by jun1 at 01:55| Comment(0) | TrackBack(0) | ソフト

2012年11月25日

PHPのmktime関数とdate関数を組み合わせると(2)

前回、以下のコードに問題があると書きましたが、その確認用にテストプログラムを作ってみました。

$t = mktime(0, 0, 0, date('m'), date('d'), date('Y'));


ただし、テストプログラムでは、上記のコードでなく、以下を使用しました。
mktime(date('H'), date('i'), date('s'), date('m'), date('d'), date('Y'));


また、テストした時間は、2012-11-17 17:59:59 から 2012-11-17 18:00:00 の間です。
その結果、予想通り、誤った日時が2種類得られました。
続きを読む
posted by jun1 at 23:36| Comment(0) | TrackBack(0) | ソフト

2012年11月11日

PHPのmktime関数とdate関数を組み合わせると(1)

最近PHPのコードで、以下のような問題のあるコードを見ました
$t = mktime(0, 0, 0, date('m'), date('d'), date('Y'));


日付処理で使用しているのですが、いろんなところに同じようなコードが使われていて、
数も多いので、作業工数の関係上、そのままにしています。依頼者からも、バグはそのままでいいから機能追加をさっさとやってくれということですし、何年も動いているシステムでなので、下手に修正しないほうが良いと思い、放置しました。

さて、コードの問題点ですが、分かる人は見た瞬間に分かります。しかし、PHPの文法的には問題ないので、分からない人にはむずかしい問題かもしれません。

posted by jun1 at 13:06| Comment(0) | TrackBack(0) | ソフト

2012年07月27日

3x3スライドパズルの最小手順を求めるゲーム

以前、3x3のスライドパズルの全パターンを求めましたが、これは、Android用アプリに利用することが目的でした。今回、それを利用したゲームを、以前作ったAndroid用ゲームに追加しました。

CellGame (Android Market)

新しいゲームは、3x3のスライドパズルに最小手数の制限を付けたもので、与えられた配置の最小手数で解くものです。また、解けなかった場合のための解答機能や、最初の配置に戻すリセット機能も付けました。

例 ゲーム画面(最小手数が13の場合)
slide_min_game13.png
続きを読む
posted by jun1 at 23:33| Comment(0) | TrackBack(0) | ソフト

2012年04月08日

新規のEclipse 3.7が起動しない

WindowsXPで、Eclipse 3.7.2 をダウンロードした後に、解凍して実行すると、以下のようなエラーが表示されて起動に失敗します。
ec_indigo_start_error.png

最終的には起動できるようになりましたが、また遭遇するかもしれないので、忘れないように作業内容についてまとめました。
Eclipse 3.7 起動エラー

過去ブログを見ると、以下の2つの起動エラーもありました。
Eclipse 3.6.1 Virtual Machine エラー
Eclipseがエラーで起動しない


過去ブログのその他のエラー
Eclipseでアプリを実行するとMavenのエラーが起こる。
Eclipse3.4とTomcat6
posted by jun1 at 22:33| Comment(0) | TrackBack(0) | ソフト

2012年03月26日

Android用ゲーム ”CellGame” の機能追加

マス目を利用したAndroid用のゲーム ”CellGame” を公開していますが、機能を追加してみました。

CellGame ゲーム概要

CellGame(マス目ゲーム Android Market)

今までスコアの保存機能が無かったので、スコア保存機能を追加しました。
jp_speed_score.png

また、並べ替えゲーム(スライドパズル)で、ゴールの配置(ゲーム終了になる配置)を3種類から選べるようにしてみました。
jp_slide_settings_goal.png

追加したゴールの配置は、縦と、時計回りの配置です。
またスタートボタンを押したあと、以下のようにゴールの配置を表示してから、ゲームがスタートするように変更しました。
jp_slide_start_goal_c.png
posted by jun1 at 00:47| Comment(0) | TrackBack(0) | ソフト

2012年03月15日

スライドパズルのゴール可能な配置と不可能な配置

スライドパズルのゴール可能な配置と不可能な配置について調べた結果のまとめ

slide3x3_goal.png

3x3のゴールが上記の場合、以下のように縦か横で隣接する数字を1組入れ替えるると、ゴールの配置にすることは不可能です。
slide3x3_imp.png
また、上記はすべて、7と8が入れ替わった配置にすることができます。

さらに、上記のような縦か横で隣接する数字を1組入れ替えた配置で、さらに縦か横で隣接する数字を1組、計2組入れ替えるとゴール可能になります。
slide3x3_pos.png

前回のゴール可能か不可能の判断プログラムで参考にした以下の解説から考えると
14-15パズルは何故解けないか?(Jan 1996)   pdf file

ゴール可能の配置から、1組の入れ替えでは移動距離の和が奇数となり、2組の入れ替えでは移動距離の和が 奇数+奇数 = 偶数 となり、1組の入れ替えはゴール不可能、2組の入れ替えはゴール可能になることが分かります。

まとめると、
・ゴール可能な配置からスライドで移動させたどの配置でも、縦か横に隣接する1組の数字を入れ替えるとゴール不可能になります。
・ゴール不可能な配置からスライドで移動させたどの配置でも、縦か横に隣接する1組の数字を入れ替えるとゴール可能になります。
・上記の2つは、3x3だけでなく、2x3、4x4、2x5などの長方形型(?)のスライドパズル全てで成り立ちます。

参考
スライドパズルの配置の判定方法

スライドパズルの配置チェックプログラム

昨日の配置のゴール可能、不可能を判定するプログラムを、3x3の全ての配置パターンで確認したときに使用したサンプルプログラムと結果
配置チェックプログラムの動作確認

posted by jun1 at 00:40| Comment(0) | TrackBack(0) | ソフト

2012年03月14日

スライドパズルの配置でゴール可能かを判定する

以前、Appletでスライドパズルを作りましたが、その機能の1つにゴール不可能な配置が作れるものがありました。しかし、ゴール可能か不可能かの判定機能が無いので、間違ってゴール不可能な配置にして、コンピュータに解かしてエラーになることがあり、困っていました。

slide3x3_goal.png

例えば、3x3のスライドパズルのゴールが上記の場合、以下の配置からゴールの配置にすることは不可能です。

slide3x3_impossible2.png

そのため、ある配置がゴール可能かどうかの判定方法について調べてみました。
すると、ネットで解説したサイトを見つけたので、それを元にして判定機能を追加しました。

詳細は以下にまとめました。
スライドパズルの配置の判定方法


上記の判定機能を追加したスライドパズル
スライドパズル (Applet)

posted by jun1 at 00:38| Comment(0) | TrackBack(0) | ソフト

2012年01月30日

公開しているAndroid用ゲームの修正

公開しているAndroidのゲームで、操作性の不満や試してみたいことがありましたので、修正してみました。
修正点は以下になります。

1. マス目のグラフィック
2.並び変えゲームの操作(ワンタッチで移動するように変更)
3.並び替えゲームの番号の移動にエフェクトを追加し、設定に項目を追加
4.早押しゲームで、すでに押した番号に色を付ける機能を追加
5.設定の項目に上記の機能のオンオフを追加

CellGame(マス目ゲーム Android Market)

CellGame ゲーム概要

例 並び変えゲームの画面
jp_slide.png

例 10 x 10 の早押しゲームの画面
jp_speed10x10.png

注、10 x 10の画面を例に表示していますが、画面が小さいものでは操作に難があります。このゲームでは表示方向の変更や、縦、横のマス目を3〜10の間で自由に変更できますが、手持ちのIS01だと縦長表示にして、縦5 x 横4ぐらいが遊ぶ限界に感じます。
posted by jun1 at 02:29| Comment(0) | TrackBack(0) | ソフト

2012年01月26日

JETROの中国コンテンツビジネスレポート 2011年度(3)

JETRO(日本貿易振興機構)の中国コンテンツビジネスレポートというもの見つけたのでメモ
中国コンテンツビジネスレポート 2011年度(3)(2011年11月)


どうも四半期ごとに調査した結果を公開しているようです。上記のリンク先の下側に、第1四半期、第2四半期のリンクもあります。

最新のは第3四半期のレポートのようです。
中国コンテンツビジネスレポート 2011年度(3)(654KB):PDF


このPDFを見てみると、2010年の中国のオンラインゲーム市場は約4000億円と書かれていて、想像していたのより、かなり大きい市場のようです。そういえば以前、ネットカフェでオンラインゲームをする中国の若者を、テレビで見たことがあります。その時は一部のマニアだけだろうと思っていましたが、どうも違うようです。

さらにレポートには2014年までの市場規模の推移の予測がありますが、まだ伸びると見ているようです。

さらに見てみると、市場のシェアは騰訊(テンセント)という企業がトップのようで、2010年度全体では約30%のシェアだそうです。

レポートの2011年度第2四半期の企業収益を見てみると、騰訊が大きく二位以下を大きく引き離してトップに立っています。
1位: 騰訊  45.0億元
2位: 網易  15.0億元
3位: 盛大  13.6億元


その他いろいろデータがありますが、興味を引くのはモバイルゲーム市場規模のデータです。そこで見てみると、2011年第2四半期の市場規模は9.8億元で、オンライゲームに比べるとまだまだのようです。

最後に
人民網日本語版の記事によると、米国の調査機関パール・リサーチが、中国のオンラインゲーム市場は2011年中に日本を抜いてアジアトップになると予想したそうです。
中国オンラインゲーム市場 日本を抜いてアジアトップに
posted by jun1 at 00:31| Comment(0) | TrackBack(0) | ソフト