2016年12月30日金曜日

[DMM Eikaiwa] How long does teacher teach English?


1. How many registered teachers in DMM Eikaiwa?

Currently Max teacher ID is 16360(as is Dec/2016). But registered teacher is only 5383(orange line). This number is stable around 5000 from April/2016.  DMM Eikaiwa tried to hire new teacher(so increase max ID number), but many teacher resigned.


2. How long does teacher teach English?


1 year(RED bar) is decreasing. Some teacher is step up to 2 years(Orange bar). But < 1 year(Blue bar)is not shift to 1 year(maybe resign before 1 year). So 1 year is decreasing, I think.
And if this trend(resign level high) continues, teacher skill level may be down because less than one year teacher will be increased.




2016年12月21日水曜日

[DMM英会話]ユーザー評価の平均点

2016年10月末ごろのDMM英会話の先生のユーザー評価の平均点グラフです。
あなたはユーザー評価何点の先生を選んでいますか?


上記の★の数4から5までを拡大したグラフ
2016年10月末現在の先生のIDの最大は15308ぐらい。
登録(home pageにredirectされない)先生数は5436ぐらいです。

2016年12月14日水曜日

[FreeBSD] USB serial convertor

I bought USB serial convertor, and I use it with FreeBSD.

Akizuki Super micro USB Serial convertor module:AE-FT234X (This module uses FT234X chip)
ugen1.3: at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (90mA)

I connect Raspberry PI with below command.
cu -l /dev/ttyU0 -s 115200

2016年11月15日火曜日

[Android] "android stack corruption detectedadb logcat"

When I logged some debug information, logcat was stopped. Never get new logcat message from Android.

One reason of this issue is included "BINARY" strings in logcat buffer.

So you need clear logcat buffer and you can get newer message.

adb logcat -c

and

adb logcat

I hope Google fix this "BINARY" string issue in adb logcat.

2016年10月17日月曜日

[FreeBSD]SolidRun HummingBoard-i2

Current status of SolidRun HummingBoard-i2 with FreeBSD

[2019/04/02] below information merged into FreeBSD wiki arm imx6 page

  • FreeBSD-11.0-ALPHA6-arm-armv6-CUBOX-HUMMINGBOARD-20160701-r302303.img
  • FreeBSD-12.0-CURRENT-arm-armv6-CUBOX-HUMMINGBOARD-20160829-r305028.img
    • [SOLVED] boot but very slow
      • If I replace /boot/dtb files from 10.3-RELEASE, it' fine. maybe time clock device was broken.
      • This slow issue was solved with r310012, thank you, Oleksandr Tymoshenko.[2016/12/15]
    • [SOLVED] can't use upper USB port[NG].
      • This issue was solved with r311850. [2017/7/25]
    • [NOT SOLVED]after reboot, always push reset button(even power off) same as Linux.
      • This issue was related to r312679. but unfotunatelly My HummingBoard-i2 was not fixed.
  • FreeBSD-12.0-CURRENT-arm-armv6-CUBOX-HUMMINGBOARD-20170717-r321072.img(maybe after March/2017 build SD-Card image)
    • [TEMPORARY SOLVED]could not boot at u-boot in latest image
      • related post at FreeBSD-arm@freebsd.org.
      • steps to mixed image[2017/8/4]
1. download images

11.RELEASE image for HUMMINGBOARD(because use for U-Boot)
ftp://ftp.freebsd.org/pub/FreeBSD/releases/arm/armv6/ISO-IMAGES/11.0/FreeBSD-11.0-RELEASE-arm-armv6-CUBOX-HUMMINGBOARD.img.xz

latest 12-current image for HUMMINGBOARD
ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/arm/armv6/ISO-IMAGES/12.0/FreeBSD-12.0-CURRENT-arm-armv6-CUBOX-HUMMINGBOARD-20170717-r321072.img.xz

2. decompress image file.

# xz -d FreeBSD-11.0-RELEASE-arm-armv6-CUBOX-HUMMINGBOARD.img.xz
# xz -d FreeBSD-12.0-CURRENT-arm-armv6-CUBOX-HUMMINGBOARD-20170717-r321072.img.xz

3. copy 12-current image to new.img

# cp FreeBSD-12.0-CURRENT-arm-armv6-CUBOX-HUMMINGBOARD-20170717-r321072.img new.img

(Currently I did not calculate image size, so I copy 12.0-CURRENT image to new image)

4. mdconfig those image files

# mdconfig FreeBSD-12.0-CURRENT-arm-armv6-CUBOX-HUMMINGBOARD-20170717-r321072.img
md0
# mdconfig FreeBSD-11.0-RELEASE-arm-armv6-CUBOX-HUMMINGBOARD.img
md1
# mdconfig new.img
md2

4. copy 11.0-RELEASE image to new.img(copy u-boot files)

# dd if=/dev/md1 of=/dev/md2 bs=10240 conv=sync

(If I know the partition size of u-boot, maybe I only copy u-boot part)

5. expand md2s2a partition with fdisk and bsdlabel

# fdisk /dev/md2

    start 118784, size 3026944 (1478 Meg), flag

# bsdlabel -e /dev/md2s2

(sorry, I forgot to memorize detailed steps, if you want to know, please ask me)

6. dump 12-CURRENT '/' partition as /tmp/hummingboard-20170717.dump

# dump -0uaLC 32 -f /tmp/hummingboard-20170717.dump /dev/md0

7.  newfs md2s2a partition and mount to '/mnt'

# newfs /dev/md2s2a
# mount /dev/md2s2a /mnt

8 restore 12-CURRENT dump image

# cd /mnt
# restore -rf /tmp/hummingboard-20170717.dump

9. unmount md

# mdconfig -d -u 0
# mdconfig -d -u 1
# mdconfig -d -u 2

10. write new image to microSD Card(if you connect microSD as da0)

# dd if=new.img of=/dev/da0 bs=10240 conv=sync
    • [NOT SOLVED]after reboot, always push reset button(even power off) same as Linux.
      • This issue was related to r312679. but unfotunatelly My HummingBoard-i2 was not fixed.

2016年9月21日水曜日

[DMM英会話]便利なFirefox Plugin/Chrome Extension(2019/06/23編集)

DMM英会話をする上で、便利なFirefox Plugin/Chrome Extensionをリストアップします。

(2016/11/23追記: weblioPaneで音声を出すときの設定Tips)
(2017/3/22 追記: Wired-MakerがFirefox 52以降で動かなくなったため、Textmarkerを追記)
(2017/5/13 追記:  Google Translatorを追加)
(2017/10/15 追記: メインに使うブラウザをChromeに変更して、Chromeの情報を追記
(2017/11/18 追記: Google翻訳の表示位置問題は2.0.7で解決しました)
(2019/06/23 追記: Mouse Dictionaryを追加)
  • Chrome Extension
    • Mouse Dictionary
      • 高速offline対応dictionary
      • Eijiroなども利用可能(要辞書購入500円)
      • 詳細は作者のページを参照ください。FireFox版もあるようです。
    • Google Dictionary (by Google)
      • Pop-Up Dictionary
      • DMMの教材はCSPが設定されており、Pop-Up Windowの発音ボタンで音声が聞こえません。そのためContent Security Policy Overrideに以下の設定をして、CSPをオーバーライドしています。
      • [
          ["https://app\\.eikaiwa\\.dmm\\.com/daily-news/*", [
            ["media-src", "media-src * "],
            ["default-src", "default-src * "],
            ["img-src ", "img-src  * blob: "]
          ]]
        ]
        
        
    • Google 翻訳 (2.0.7)
      • CSP overrideの設定をせずとも動作する。しかしPop-Up位置がずれて見えない場合がある。(2.0.7で修正されました)'
    • Super Simple Highlighter
      • 予習時に不明点などをマークするExtension

  • FireFox向けPlugin
    • Wired-Maker
      • 予習時に不明点などをマークするPlugin
      • Firefox 52以降では動かなかった
    • Textmarker
      • 予習時に不明点などをマークするPlugin
    • weblioPane fx40fixed
      • Online辞書、テキストの文字を選択すると自動的に辞書引きしてくれます。また、発音も容易に確認できます。
      • スピーカーマークを押すと発音を聞けますが、Adobe Flash Playerをインストールしていないと、毎回Media Playerを起動することとなります。Adobe Flash Playerをインストールすれば、スピーカーマークをクリックするだけで何度でも発音を聞くことができます(2016/11/23追記)
    • Google™ Translator
      • 予習時に意味が分からない文を理解するため。

2016年8月23日火曜日

potatotips #32 (iOS/Android開発Tips共有会)8月23日に参加レポート

potatotips #32 (iOS/Android開発Tips共有会)8月23日に参加してきました。
Android ブログ枠で参加しましたので、レポートします。

会場の「Wantedly, Inc.」はテーブル付きでクッションも良い椅子でした[Good]。

http://potatotips.connpass.com/event/36346/

プレゼンテーションが公開されたら適宜リンクしていきます。

2. たーみーさん 「I/O 2016 で発表された Awareness API をいじってみた」

http://slides.rnita.me/20160823-potatotips-32/#/


 - Awareness API: 「どこに居るか」「なにしているか」「近くになにがあ
る」をまとめて処理できるAPI。

  - 7つの機能に対応
  (Location, Place, Beacons, Time, Activity, Headphones, Weather)

  - 2つのAPI(Fence API(通知してもらう), Snapshot API(いまどうなの?)

 - 今回の発表は公式サンプルアプリを動かしてみての感想
   - Snapshot APIだと、callbackされて状態が分かる
   - Fence APIだと、 FenceReciverが呼ばれる。

 - まとめ
   - 導入はかんたん、Build Tools > v21, Gogle Support Library
   - サンプルも簡単に動きました
   - Placeなど調べてみたい。

4. よしおかさん 「暗黙的IntentをプログラマブルにするTips」

  - 「iOSでいうところのUniversal Link対応」
  - WebのURLからアプリを起動できる。
  - 普通に作るといろいろも問題がある。
       - URLの数だけManifestにIntentが増えるなどなど。
  - 案1: なんでも受け取って、アプリ内部で処理する。
  - 案2: コードの自動生成
       - Templateエンジンを使って自動生成
       - プロダクト本体以外のメインテナンスが発生している。
  - 案3: Xamarin
       - Activityの上にManifestのIntentFilterが記載できる。

5. しょーんかわのさん 「Taking glance at RxJava 2」


  - RxJava2(未リリース)の説明
  - 変更点1: Reactive Streamsの対応
        - データを止めること無く流すことができる。
  - 変更点2: 1.x to 2.x
     - package名画変わる
     - メモできず...
     - Action 0 -> java.lang.Runnable
     - Action 1 -> Consumer, Action 2 -> Bi...
     - Func3-Func9 -> Function3- Function9
     - Subscribe()メソッドでも、Subscriptionは返らない。
     - Subscription->disposeに

  - 10月に本リリース予定。
  - githubレポジトリが参考になる。
  - Fragmented Podcast:053が参考になる
  - Droidcon NYC2016(Paid Live Stream予定)

7. カトウリュウさん 「今日からはじめるAndroidCI」


  - アンドロイドアカデミア本で詳細書いています。
  - ビルド、テスト、Lintなどなどをやっている。
  - BITRISEの紹介
      - 設定簡単
  - デモ
      - ポチポチボタンを押しているだけで、CI始められる
      - gradleの中身も自動認識
      - build通知もslackに遅れる。

  - まとめ
    - まず「できることから始めるのが大切」

    https://www.bitrise.io/

  BITRISEは無料コースもあるようです。

9. かつとむさん 「RuntimePermissionをAOPで解決する」




  - AOPとは、
     - アスペクト指向プログラミング
  - @NeedPermissionと記載するだけで良い。

  - gradle-android-plugin-aspectjx を使う
    - InstantRunとの相性が悪い...(個人的には...)
  - permissionaspect

  まとめより
    - PermissionAspectはバグもある...

Twitterから「PermissionDispatcher」の紹介もありました。


11. まえすとろ/Tanimotoさん 「DeviceOwnerのお話」


- DeviceOwner - Android 6.0以上ならば、自動でアプリインストールが可能 - 作り方 - adb shell dpm set-device-owner パッケージ名...を実行 - M Permissionの自動許可設定も可能 - アンインストール不可アプリ設定も可能 - Androidタブレットを一つの用途だけに使う場合には便利 - Google Playに公開するアプリでは使わないように...

13. カエラエラ/まえかわさん 「WebSocket for Android」


  - 良い点
     - No request headerで速い
     - Real time communicationできます。
     - HTTPのproxyやfilterやauthなどを使える。

  - 悪い点
     - errorハンドリングが難しい
     - 再接続処理が難しい

  - 使い方
     - Socket.io
     - Java-websocket
     - OKhttp-ws
     - .Socket

 - Okhttp-wsの例
     - でも、まだ未完全らしい。