happasukeの覚書

私がググらなくてもいいよう記事にします。またそのほかにも感じたことも書き綴りたいと思います。

TOEICで600越えたときにやったこと

流れ
27年4月 500点到達
27年6月 450点くらいまで下がる
28年1月 600点到達


4月の時点では以下の参考書でリスニングを360点あたりまで伸ばしました。リーディングはほとんど勘のような残念な結果となりました。

TOEICテスト公式プラクティス リスニング編

TOEICテスト公式プラクティス リスニング編

それからしばらくして再受験しました。
方針としてはリーディングを伸ばしてリスニングを維持することです。公式の対策本でリスニングを伸ばせたので、リスニングも公式の対策本を購入し、一通りこなしました。


ですがそれほど効果があったようには感じられませんでした。結局、これに乗っていた文法の確認を行い、ひたすらやるという事になりました。
一回あたりの量を小さくしやすいので、負担を少ないです。
テスト対策を始めた3週間前から何をしたか思い起こしたいと思います。

テスト3週間前~2週間前
毎日一時間程度公式リーディングをやる。

テスト2週間前~1週間前
加えてリスニングを30分くらいやる。

テスト1週間前
公式リーディングをやる。
公式問題集を1日1回通してやる。



とにかく毎日やればこのくらいの点数は越えるんだなあと感じました。こなみ

Azure WebSitesで定期的に実行するWebJobの作成方法

 Azureのクラシックポータルを使用してタイトルのことをしました。ちなみにクラシックポータルを利用するために無料試用のサブスクリプションを購入しました...

 中の人のブログによるとAzureSchedulerとInternal Webjob Schedulerを使う方法があるのですが、前者はどうやらDreamSparkサブスクリプションでは利用できなく、後者はスタンダート(F1ではダメ)の料金プランでないと使用できないようです。しばやんさんのサイトの説明がわかりやすいです。

Azure Web Apps で crontab っぽく WebJobs のスケジュール実行が出来るようになっていた - しばやん雑記

 クラシックポータルの場所は新ポータルのタイルからもいけます。

f:id:happasuke:20160216190542p:plain

 このポータルからWebアプリを新規に作成し、詳細画面のトップのダッシュボードやら監視やらの項目からWebジョブの項目を選択し、新規に作成します。スケジュールを指定した時間で実行するように設定すれば動いてくれます。

 無料試用版は最高でも1時間周期で、それ以上短い周期で実行することはできないそうです。

 

DreamSparkアカウントではazure classic portalにアクセスできない

completed
How can we improve the Azure portal?
  • 5 votes
  • 5 comments

I can't access old portal? manage.windowsazure redirects me to new portal?

I can't access old portal? manage.windowsazure redirects me to new portal?

feedback.azure.com

指定時間にジョブを発火させたいと思い、一番簡単そうなクラッシックポータルで時間をGUIで指定してやろうと思ったらどうやらDreamSparkサブスクリプションではできないらしい。ソースは上記。本当にありがとうございました。

 

androidで一定時間後にTTSで何かをしゃべらせる

 手順はこうです

  1. ActivityからAlarmManagerでreceiverをセットする
  2. 指定時間後にreceiverからserviceを呼び出す
  3. serviceのなかからTTSを呼び出す

 順を追って説明します。その前にManifestで以下のように追記します

this is used in newsgetter and for explain code

 

 application内にreciverとserviceを使うことと、パーミッションにSET_ALARMを追加します。指定のしかたは書いてあるような感じです。

 

 次にActivity内でのAlarmManagerのセットのしかたです。これはすでにネットにたくさんありますね。ざっくりいきます。

gist8f2ede46abd9154109d8

 こんな関数をActivity内から呼び出すことでアラームをセットします。10秒後にRTC_WAKEUPでよびだすAlarmManagerです。

 次にAlarmManagerで使われているレシーバです。

gist13001483bec606e79f40

 16行目のcontext.startServiceが重要です。TTSクラスを入れて呼び出します。ここで直接TTSを呼び出そうとすると事故ります。それでserviceがこちらです。

gist26bdcb5964e837597ca6

 

萌ゆるTTSで朝は起きれるのか

サーバ(AzureWebsite)でフィードをとってアプリでTTS(TextToSpeech)させようとしている.

こやつに朝、目覚まし代わりにニュースを読ませて起こしてもらおうと思っている.うむ、すばらしい.ついでにいい感じのキャラがいると映えるぞお^~

 

最初はゆっくり(AquesTalk)を検討したのだがサーバ側で走らせようとしたらutf-8に対応した関数の挙動がおかしかったりできた実行ファイルをkuduで走らせたら走らなかったりした.サーバがだめならクライアントで動けばいいだろと思ってAquesTalkのAndroid版の開発をしたのだが、AndroidStudioのエラーログを見てもrunningだけはいて死んでいたので断念した.

 

で、そもそもAndroidにはTTSの開発環境があったのでそれを使うことにした.

ついでにKDDIのN2の声がいい感じだったのでPlayStoreからそれも入れた.

早速TTSさせようとアンドロイドで日本語音声出力:音声読み上げを参考に書いたら動いた.うむ、未来は明るい.ちなみに私のスマホはXperiaZ3compact Android5.0.2です.

 

あとはサーバ側をAPI化すればよさそう.

 

kakasiを使おうとした

Azureのwebsiteで漢字をひらがなにしようとkakasiを使おうとしたら辞書のディレクトリはc:\kakasi\share\kakasiしかだめだとは...

Azureでは基本的に操作できるディレクトリはD:\home\以下なのでこれではkakasiが使えない.

そもそもC:\直下に置くという前提の設計はどうなのか.

 

f:id:happasuke:20160119210934j:plain

解決策としてはソースから作り直せばよさそうだがここはyahoo apiを使おう.

 

simplexml_load_fileでrssが拡張子のRSSを取得できない

ちょっとこまったので覚書

phpにはsimplexml_load_fileという便利なxmlをいい感じに分解してくれる関数がありますが、これを使ってはてなrssを取得しようとしたときにこけました.

 

はてなrssは以下のURLで提供されています.

http://b.hatena.ne.jp/hotentry/it.rss

一見サイトを訪れただけではどこにrssがあるのかわかりませんでしたが、ggったっらurlに.rssとつければそれがrss扱いになるということ.素晴らしい、感動した.

 

まず、これをphpから取得してみます.

...何も起こらない.

 

よくよく他のsimpleなんたらの使い方を見てみるとすべて拡張子xmlになっているではないか.hmm

 

そこでfeedburnerなるものを使ってみました.

feedburner.google.com

 

これを使うと登録したフィードのurlがfeedburner.google.com/nantokaになります.

このurlをsimplexml_load_fileを実行するとあら不思議、フィードがとれるんですね.

 

XMLの構造はwgetかなんかでみてやればわかります.