読者です 読者をやめる 読者になる 読者になる

My puppyのブログ

40代前半の日曜プログラマです。学んだ事のメモを書いていきます。

English-Video.netを34か国語対応にしました。

english-video.net

昨日English-Video.netを34か国語対応へとアップグレードしました。

ちなみに以前は7か国語対応でした。

アップグレード後の対応言語は以下の通りとなります。

  1. Albanian
  2. Arabic
  3. Bulgarian
  4. Chinese, Simplified
  5. Chinese, Traditional
  6. Croatian
  7. Czech
  8. Danish
  9. Dutch
  10. English
  11. French
  12. German
  13. Greek
  14. Hebrew
  15. Hungarian
  16. Indonesian
  17. Italian
  18. Japanese
  19. Korean
  20. Lithuanian
  21. Persian
  22. Polish
  23. Portuguese
  24. Portuguese, Brazilian
  25. Romanian
  26. Russian
  27. Serbian
  28. Slovak
  29. Spanish
  30. Swedish
  31. Thai
  32. Turkish
  33. Ukrainian
  34. Vietnamese

パソコンのブラウザから「http://english-video.net/p/ja/1」を開いて、右上の「Language」ボタンを押すと言語の選択ダイアログが開きます。

ほかにもたくさんある不具合の修正とか検索機能の強化とかいろいろやりたいんですけど、今ちょっとバタバタしていてあまり時間がとれません(;´・ω・)

Windows10からPHP7でAzure SQL Databaseに接続する方法

今回の環境:

  1. XAMPP for Windows 7.0.8
  2. Windows 10
  3. Azure SQL Database (すでにデータベース作成済みとします)

XAMPPをインストールしたWindows10上のlocalhostからPHP7でAzure SQL Databaseに接続する方法です。

こちらのその手順が書いてあります。

azure.microsoft.com

上のリンク先の「手順 1: 開発環境を設定する」の項目に書かれている「PHP 開発用の開発環境を構成する」をクリックすると、こちらのページ(英語)に飛びます。

Step 1: Configure development environment for PHP development

このページには英語でこう書かれています。

この中の「Download Microsoft PHP Driver」をクリックすると、「Microsoft Drivers for PHP for SQL Server」のページに飛びますので、「Download」ボタンを押下します。

すると「Choose the download you want」と表示されるのですが、一番下の「SQLSRV40.EXE」がPHP7用のファイルですのでチェックボックスにチェックを入れて、「Next」ボタンを押すとダウンロードが開始されます。

ダウンロードした「SQLSRV40.EXE」をダブルクリックして解凍すると、全部で12個のファイルが出てきます。

PHP7のインストールフォルダ直下のextフォルダ(例:C:\xampp\php\ext)に解凍された「php_sqlsrv_7_ts_x86.dll」や 「php_pdo_sqlsrv_7_ts_x86.dll」などのファイルをコピーします。

コピーし終わったら、これらの.dllファイルをPHP7に読み込む為に、「php.ini」(例:C:\xampp\php\php.ini)に以下の行を追加します。(参照:PHP SQL ドライバーの読み込み)

extension = "C:\xampp\php\ext\php_sqlsrv_7_ts_x86.dll"
extension = "C:\xampp\php\ext\php_pdo_sqlsrv_7_ts_x86.dll"

XAMPPのコントロールパネルからApacheを再起動して、「phpinfo();」で設定を確認すると、「sqlsrv」や「pdo_sqlsrv」の項目が追加されていると思います。

つぎに以下のページから、「Microsoft ODBC Driver 13 for SQL Server」をダウンロードしてインストールします。

Download Microsoft® ODBC Driver 13 for SQL Server® - Windows from Official Microsoft Download Center
(「ダウンロード」ボタンを押下すると、x86用かx64用かの選択画面が出ます。)

これでWindows10からPHP7を使ってAzure SQL Databaseに接続するためのドライバはインストール出来ました。

以下のPHPスクリプトで「myserver」、「AdventureWorks」、「MyUser」、「MyPassword」を設定してlocalhost上で実行すると、「Success!」が表示されてAzure SQL Databaseに接続できると思います。(参照:Step 3: Proof of concept connecting to SQL using PHP

<?php
    $serverName = "tcp:myserver.database.windows.net,1433";

    $connectionOptions = array( "Database"=>"AdventureWorks",
                                "Uid"=>"MyUser",
                                "PWD"=>"MyPassword");

    $conn = sqlsrv_connect( $serverName, $connectionOptions );

    if( $conn == false ){
        echo "Failure.";
    } else {
        echo "Success!";
    }

Azure SQL DatabaseでJSONファイルを扱う方法

azure.microsoft.com

Azure SQL DatabaseでJSONファイルを扱う方法ですが、まずは今年の春に投稿されたこちらのブログ記事をご参照ください。

Azure SQL Database の JSON 関数のパブリック プレビューを発表 – IT プロフェッショナルのみなさまへ

これをするには、Azure SQL DatabaseをV12にアップグレードする必要があります。

こちらにその方法が書いてあります。

azure.microsoft.com

TED APIで取得したJSONファイルをAzure DocumentDBで扱おうかと思っていたのですが、Azure SQL Databaseで扱えるなら選択肢が増えますね(#^.^#)

azure.microsoft.com

<追記>

ちなみにMySQL5.7からJSONが扱えるようになりました。

こちらのQiitaの記事に解説が書いてあります。

qiita.com

MySQLJSONが扱えるとなると、レンタルサーバーでも運用が出来そうですね(^^)/

XserverでもMySQL5.7が使えるみたいです。

www.xserver.ne.jp

介護ニュースヘッドラインの近況

2013年にPHP+MySQLで作成した介護ニュースヘッドラインですが、最近ではほとんど手を入れていません。

kaigo.news

このサイトは現在プログラムで2時間ごとに自動的にニュースを取得して配信しています。

ランキングページ(http://kaigo.news/?scoring=r)もプログラムにより自動更新されているので、普段は全て自動で動いています。

直近1年間(2015/08/02~2016/08/01)でのGoogle Analyticsのデータは以下のようになります。

ユーザー 75,750
ページビュー数 449,144
セッション 212,631
新規セッション率 34.77%
平均セッション時間 00:02:52
直帰率 60.78%

ニュースへのコメントやブックマークなどの機能も作成したいのですが、もう少し先の話になりそうです(;^_^A

現在ちょっと時間がなくて、なかなか手を入れられない状況です(>_<)

もし介護ニュースヘッドラインのサイトを丸ごと(ドメイン+プログラムのソースコード)買い取りたい方がいらっしゃいましたら、ご連絡をお待ちしております<m(__)m>

個別のご相談はこちらのメールフォームにて承っております。

「介護ニュースヘッドラインお問い合わせフォーム」
http://form1.fc2.com/form/?id=897599

パーソナルソング / 思い出ソング

「パーソナルソング」という映画があります。
認知症の方にiPodで「思い入れのある曲」を聴いていただき、記憶を呼び戻す画期的な試みを記録したドキュメンタリー映画です。

personal-song.com

数十年前の思い出の曲をスマホで簡単に再生できたら良いですよね。
そんな想いを実現してくれる「思い出ソング」というAndroidアプリがあります。

play.google.com

ただこれは有料アプリなので、無料のWebアプリとして作ってみたいです。
まだアイディア段階なので、作るかどうかわかりませんが…(;´・ω・)

Jumperというストリートビューを活用したサイト

f:id:ken_tokyo:20160606192125p:plain

Jumperというグーグルのストリートビューを活用したサイトがあります。

tryjumper.com

世界各地の観光地にクリックひとつで連れて行ってくれるんですね(^^)/
これ素敵だなと思いました。
このサイトは英語ですが、日本語化して全国各地の観光地を解説付きで紹介できたらいい感じですよね。

まだ作るかは決めいていませんが、候補リストに入れることにします(#^.^#)

TED APIが7月15日に終了するそうです。

まずは以前の記事です。

ken-tokyo.hatenablog.com

TEDから動画の情報を取得するのにTED APIがとても便利だったのですが、なんと今年の7月15日に終了してしまうそうです。
ちょっと前にTEDからその旨を通知するメールが来たんですね。
残念ですね(>_<)
でも仕方ありません。
とりあえずあと少し機能追加をして、次の予定を考えますね(^^)/

Microsoftのベンチャー支援プログラム「BizSpark」について

f:id:ken_tokyo:20160427175010p:plain 実は今年の1月、試しにMicrosoftのBizSparkというベンチャー支援プログラムに応募してみたら、審査に通ってしまいました。

ちなみに最近はベンチャー企業とは言わずに、「スタートアップ」と言ったりします。
↑上のBizSparkのロゴにも左下に「Startup」って書いてありますよね。

BizSparkの公式サイトはこちらです。
https://www.microsoft.com/ja-jp/ventures/BizSpark.aspx

BizSparkについて簡単に説明させていただきますと、このプログラムに入会すると、Microsoftの開発ツールが3年間無償で使えたりします。
具体的には「Visual Studio Enterprise with MSDN」や「Microsoft Azure」、「Microsoft Office」などです。

ただ今のところ収益は全然無いので、先の長い話となりそうです(;´・ω・)

TEDから動画の情報を取得する方法

f:id:ken_tokyo:20160427175501p:plain TEDから動画の情報を取得するには「TED API」を使います。
公式サイトはこちらです。

「TED API
http://developer.ted.com

私が現在開発しているEnglish-Video.netもこのページに登録されています。

「View Member Yamanaka」
http://developer.ted.com/profile/profile/1688826

ただ現在TED APIの新規登録はストップしています。
その内再開するかもしれません。

<追記:2015/05/28> TEDからメールが来たのですが、TED APIは7月15日にその機能を停止するそうです。残念ですね(>_<)

はてな匿名ダイアリー

先日(2/23)「はてな匿名ダイアリー」に投稿したのでメモっておきますね。

anond.hatelabo.jp

ちなみにこの「はてな匿名ダイアリー」は通称「増田」と呼ばれています。
なぜそう呼ばれているのかといいますと、ここに解説が書かれています。

「ネットでよく見かける『増田』って一体何なんだ!?」 http://www.oshiete-kun.net/archives/2008/10/post_194.html

TED動画のサムネイルページの表示速度を高速化しました。(English-Video.net)

English-Video.net」では現在TED動画のデータをJSONファイルで管理してます。
まだDocumentDBなどのデータベースは使用していないので、サムネイルページによっては表示が遅かったりしました。
そこで今日サムネイルページ表示用のデータをキャッシュ(一時保存)するように修正し、高速化しました。

例:http://english-video.net/p/ja/69
日本語のサムネイルページの69ページ目です。表示が多少速くなっていると思います。

またTED動画の一覧表もキャッシュ(一時保存)するように修正し、表示速度を高速化しました。
昨日までは表示するのに10秒以上かかっていましたが、現在は速くなっていると思います。

例:http://english-video.net/l/ja
TED動画の一覧表の日本語ページです。このページも高速化しています。

以前にも少し書きましたが、TED動画の数が多いため表示チェック漏れが多数あると思います。
変な表示やエラーなどがございましたら、このブログのコメント欄などに書き込んで頂ければ幸いです<m(__)m>

TED動画の一覧表を作りました。(English-Video.net)

非常に重いページですが、TED動画の一覧表を作ってみました。

All TED Talks List (Japanese)
http://english-video.net/l/ja

開くのに10秒以上かかる(もしかしたら20秒くらい)と思います(;´・ω・)

重い理由はTED動画のデータが入ったJSONファイルが約2000ほどありまして、それを毎回全部開いてるからです。

ひとつ前の記事に書いたDocumentDBに移行すれば早くなると思うのですが、もうちょっと先の話になりそうです。

英語の一覧表はこちらです。

All TED Talks List (English)
http://english-video.net/l/en

現在English-Video.netGoogleのカスタム検索を利用していますが、あまり検索精度が良くないんですね。

なのでこの一覧表を表示してからキーボードの「Ctrl + F」を押してTED動画を検索すると、すぐに探せると思います。

DocumentDBをPHPから動かす方法。

まずはMicrosoft AzureのDocumentDBの公式サイトです。

azure.microsoft.com

このDocumentDBをPHPで動かす時に、下の「documentdb-for-php」で試したらうまく動きましたのでメモっておきますね。

github.com

下記のコードは上のリンク先のサンプルからの引用です。

include 'documentdb-for-php.php';
$host = 'https://yourdocumentdbaccount.documents.azure.com'; // see (1) in the screenshots bellow
$master_key = 'yourmasterkey=='; // see (2) in the screenshots bellow
$db = 'yourdbname'; // see (3) in the screenshots bellow (optional)
$db_rid = 'thedbresourceid=='; // see (4) in the screenshots bellow
$coll = 'yourcollectionname'; // see (5) in the screenshots bellow (optional)
$coll_rid = 'yourcollectionresourceid='; // see (6) in the screenshots bellow
$query = "Select * from ..."; // This is your SQL or LINQ code
querycoll($host, $db_rid, $coll_rid,$query,$apptype,$useragent,$cachecontrol,$da_date,$api_version,$master,$token,$master_key,$da_date); //The function that does the magic. All variables are defined above and in the functions file

リンク先のサンプルの通りに上記の$hostや$master_key、$db、$db_ridなどを一通り設定すればすぐに動きました。

ちなみに以下の2つも試してみたのですが、エラーが出てうまく動きませんでした。

github.com

github.com