gcchaan's blog

ぐちゃーんのブログです

テレビ局のWEB API

NHKの番組表APIが1月27日(月)に開始するようです
昨年の6月ころに公開が発表され、いよいよ使えるようなので何か作れたら面白そう
2009年から公開している日テレのAPIとは趣旨が違いそうです

機能

NHKは放送地域・日付などの情報から、番組のリストや概要を取得
日テレは出演者名・番組名・放送期間を相互に検索できるみたいです
NHKは名前の通り番組表、日テレは出演者が絡むのでエンタメ向けなんすかね

リンクです

NHK番組表API
日テレアプリWEB API
BBC Web API (beta)

海外ではBBCAPIを公開していたみたいですが、今はやっていない模様
昨年末の政府のオープンデータのこともあるので今後の動向が期待です

ブログを書く習慣を付けたいと思い、たらたらと雑記でした

Slide Shareのアカウント作成で突然Yahoo!が出現

Slide Shareで出羽さんをフォローしようと思った。 アカウントの作成画面を見ると、Oauth認証でFacebookとLinked Inがあり、 調度Linked Inも始めてみたかったのでサインアップを試みました。

作成したので、いざLinked InアカウントでSlide Shareにログインしようとすると、 英語で相互にプロフィール情報など使って入力を省こうという文面が現れました。

両サービスはそれぞれ用途が違うのでプライバシー設定もサービスごとに設定したい気持ちから「使わない」を選択。

Slide Shareにログインできました。...しかし!? ログインしたSlide ShareのIDが予期せぬ動きしています。Yahoo!Japanでしか使っていないID名で表示されていました。

この間、メールアドレスもYahooメールなんかは使ってはいないのですけれど。 なにか勘違いですかね、理解しがたい

Amazonアカウントは複数つくれるらしい

アマゾンギフト券の残高が¥0と表示されていておかしいと思いカスタマーサービスに連絡した

事前に確認したこと

  • アカウントのメールアドレス
  • ギフト券の有効期限
  • ギフト券のシリアルナンバー

すぐに返信が来ていました。

お持ちのAmazonギフト券が使用できない件について確認いたしましたところ、お客様は同じEメールアドレスを使用して、複数のアカウントを別々のパスワードでお持ちであり、その一方のアカウントにすでにAmazonギフト券が入力済みであることがわかりました。

同じメールアドレスで複数のアカウントをいつの間にか作っていたらしい。なるほどね。

行った・行きたい機能の使い方(食べログ)

ブックマーク機能

食べログレビュアー
食べログのブックマークはご存じでしょうか。
私は先月末からこの機能にハマっています。これは名前の通りお店をブックマークして整理できるもので、その際にレビューする必要はありません。ユーザーが独自にタグを設定できるラベル機能によって楽しく分類できます。

雑誌やネットの記事あるいは友人間で話題のお店を「行きたい」に登録しておくと、そのエリアに行く時や何か企画する際に便利です。

旅行で行ったお店を「行った」に登録すれば、思い出として記すのに役立ちます。マップから検索することもできるので、行ったことのあるお店を日本地図から眺めるのもまた面白いものです。

「行った・行きたい」に登録したお店は地図かリストアップして並べる方法のいずれかから検索することができます。

お店の持つ情報

  • お店の地域
  • お店の口コミ評価
  • ジャンル(レストラン・ラーメン等の大ざっぱな業態)

ユーザーが決めれる情報

  • ラベル機能
  • お店のお気に入り具合の評価(ブックマーク内のみ)

これらの情報をソートできます。

細かく絞り込むことも可能です。例えば、

  1. 行ったことがある
  2. ラーメン
  3. 満足度

とすれば細かいコメントはつけれはしないもののオリジナルのラーメンランキングが完成するわけです。ラーメン通の方など店舗登録数が多い場合は地域を絞り込めばよいと思います。

今日(7月17日)のリニューアルでは、店舗情報ページからワンクリックで「行った・行きたい」いずれかの情報を含めてブックマーク登録できるようになりました。ただ、「行った・行きたい」検索画面で以前できたラベルで絞り込む箇所がどこかに消えたようです。(勘違いだったらすいません)

食べログさんは6月27日にこの機能をリニューアルしており、「行った・行きたい」公開機能を一時停止しているようです。この日の翌日あたりから使い始めたので公開機能がどんなものかわからないので楽しみです。それにしても面白いサービスだと思います。

使い方公式はこちら
細かいリニューアル内容はこちら

Windowsでの仮想マシン導入からRoR実行まで

環境構築した軌跡です。流れと、地味に困ったことをまとめました。 おかしな内容もあるかもしれない一方で初心者・学生仲間に有用と思います。

目的

以前の環境(XAMPPでCakePHP)しか知らないとわからないことが多かった。
GitHubは使っていたけれどgitって何状態だったので勉強。(自分はニワトリが先だったのだ)
vimを使いたい。Rubyがやりたい!Railsアプリを作る。

Web系のエンジニアはみーんなMac

2013年、私が会ったWeb系の勉強会・就活イベント・ベンチャーの方々、99割がマカーでした(まじ)。 モニターの背面にステッカーを貼っている人を観測^1。Windowsっていないの!?と疑問に思いはじめる。 コマンドプロンプトの使い方すらわかっていなかったけれど、Linux系のOSではいろいろできるとの噂を聞いた。 当時Web系の人がVagrant便利!って言ってた。WindowsからVMでLinuxを動かしている企業も少なくない。 サーバーにはLinuxが使われていることが多くて、Windowsで書いたコードを実行しようとすると動作に違いがあるらしい。

vagrantいれよう

仮想マシンの環境を作ったり壊したりできる。Ubuntu12.04を次のリンクを参考にして導入しました
Vagrant 入門 - Windows 上に Linux の仮想マシンを簡単に用意する - 僕は発展途上技術者

仮想マシン起動から終了までの流れ。

vagrant init [box名]
vagrant up
vagrant ssh
exit
vagrant halt
  • GitHubシェルを起動 ※GitShellのショートカットを消してしまったらGitHubのソフトでリポジトリを開いてから[tools]->[Open a shell here]
  • cdでフォルダ移動(1つのフォルダに1つの仮想マシンが対応しているようだ)
  • vagrant initは次回から必要なし
  • box名はvagrant box listで一覧表示できる
  • 設定ファイルであるVagrantfileを編集した後はvagrant reloadvagrant haltせずに再起動できる。
  • Vagrantfileを編集する際には改行コードを指定して保存すること。恐らくCR+LF。

コマンドラインを扱い慣れていなかったのでショートカットを少し説明
Alt + Space + eで[編集]までいけます、これに以下を続けて入力します。

  • k:選択開始
  • y:コピー
  • p:貼り付け

また、cdなどフォルダやファイルを指定するコマンドで最初の1文字を入力してtabを押せば候補を自動補完してくれます。 同じ文字から始まるファイルが存在した場合などコンピューターが判断できないときはもう一度tab押下することで候補を表示してくれます。

次に、Linuxコマンドにも慣れる必要がある。google検索とドットインストールさんで学ぶ。
$ apt-get installなどはパーミッションで怒られるので変にファイルのパーミッションを変えるでなく頭にsudoを付けて$ sudo apt-get installとする。

なおシェルには種類があってLinuxで標準のbashが使用されていた。
$ echo $SHELLで確認可能

何か実行しているときにキャンセルしたい場合は大抵Ctl + c

vimを入れよう

ここからRailsをインストールするまで1時間半かかりました。
デフォルトでvimがインストールされていないので導入します。
sudo apt-get install vim
vimの使い方もドットインストールさんで学べる。チートシートを探して印刷した。

RubyRuby on Railsの導入

rbenvというrubyのバージョンを管理してくれるものを使いました。
Railsには現在推奨されているRuby1.93を、他のプログラムにはRuby2.0を使えます。
下記記事を参考にさせていただきました。
Ruby on Rails 3.2 を Ubuntu にインストールする手順をかなり丁寧に説明してみました
rbenvで複数のバージョンのrubyを使用する環境を整える

Railsの実行

rails sをしてもホストマシンがゲストマシンにアクセスできるようにしなくてはブラウザで確認できません。
そこで仮想マシンのあるフォルダのVagrantfileを編集します。(必ずバックアップをっとっておこう)

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine. In the example below,
  # accessing "localhost:8080" will access port 80 on the guest machine.
  config.vm.network :forwarded_port, guest: 3000, host: 3000

のように4行目を追加します。そしてvagrant reloadで再度読み込ませれば
http://localhost:3000/ にアクセスできるようになります。

用語等含め間違いございましたらご指摘お願いします。

レンタルサーバーでCakePHP2

レンタルサーバ

ローカルでつくったアプリを公開しようと思った。
CakePHP2.2を使うために、

PHP 5.2.8 or greate
http://book.cakephp.org/2.0/en/installation.html

とあるので、Cake2.x系ではサーバーのPHPバージョンが5.28以上である必要があります

そんなレンタルサーバーで無料なものはあるかいとググってみると、
lv9が無料だしCakeも使えるよという記事を発見
lv9のPHPバージョンも5.3.14だったので、条件を満たしている

インストール

インストール方法は解凍したCakePHPをひたすらアップロード
FTPソフトはFFFTPを使った
時間がかかりファイル数が多いため、細かくフォルダ毎にアップした

アップロードが完了したら、tmpのパーミッションを変更してcakeを表示してみる
うまく表示できたら、MySQLの設定とエラー表示の変更して終わり

はまったこと

  • MySQLのデータベース名は勝手に番号が挿入される
  • MySampleFooBarのようなアプリ名前だと、アクセスするアドレスが小文字でNotFoundが表示されてしまう

CakePHP2に入門

入門

今までフレームワークなんて使ったこともなく、ゴリゴリぐちゃぐちゃとロジックを書いてきたが、
PHP初心者のおれには検索機能や、LEFT JOINしたデータの加工をすることなどできそうになく、限界を感じていた
結論から言うとCakePHPを導入したら、自分の能力以上のことがコピペで使えるようになっており
Cakeのアソシエーションのおかげで、できなかったことが容易にできた、Cakeすごい

参考にしたサイト

これらを改変するだけで自分独自のアプリをつくることができる
ドットインストール
初心者のためのCakePHP2.0 プログラミング入門(libro)
CakePHP2.0にSearch Pluginをいれてラクラク検索しよう(トーハム紀行)
検索機能は、いろいろなサイトに乗っているものを試したところ、唯一トーハム紀行さんの方法でうまく導入でき、
しかもページング機能もおまけで付けることができた!

後はタグ機能を導入してみたい。
おれみたいなコピペPHPerにとってCakePHPはありがたい存在だ
2.x系の、チュートリアルサイトが増えることを切に願う