2016年12月31日土曜日

[DMM Eikaiwa] Teacher ID vs ....

1. Teacher ID vs how long teach


2. Teacher ID vs score


3. Teacher ID vs number of rating


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の例
     - でも、まだ未完全らしい。

2016年7月21日木曜日

potatotips #31 (iOS/Android開発Tips共有会)7月21日に参加レポート

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

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

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

2. y_matsuwitterさん「Puree+Kinesisでのログ収集パターン」


  ログ収集する場合の課題は? ユーザー属性の計測に融通が効かない場合が多いので、その解決策をPuree+Kinesisを使った説明

Puree: Cookpad製のコレクタ(retry/bufferingなどをやってくれる)
AWS Kineis: 直接LOGを収集・変換サービス

1. PufreeBuffer Bulkで非同期で送信する..(メモできませんでした)。

実装の注意点、1) Authorization 2) Partition Keyなどが注意

簡単に出来るので使ってみましょう。

4.  すみともさん  「AdapterToolboxでRecyclerViewを楽にする」



背景としては「RecyclerViewに複数のデータ型を入れたい案件が多い」

RecycleViewを実装がつらいので、それを楽する方法。神Adapterを使うのも使い。

データ型から自動的に束ねるAdapterがあると便利なので、AdapterToolを作った話。

他の良い案や改良点募集中だそうです。

https://github.com/cattaka/AdapterToolbox

6. nekoeさん「Activityのライフサイクルイベントを監視する」

いろいろなActivityのタイミングで、いろいろな監視をしたいので、その監視のテクニックをSDK作成者の支店で説明。

onCreateでcCallback登録するだけで良い。

使う上のTips

1. 複数のCallbacksを登録できる。
2. 他アプリのTaskに含まれるActivityのライフサイクルイベントでもコールバックされる。
3. 最前面にあるActivityのResumeが最後に呼ばれるわけではない。
  (端末回転時など、処理順序に依存しないコールバックが呼ばれる場合がある)

8. ikamooonさん  「周辺beaconを取得するwearアプリを追加してローンチするまで」

ウェアラブルデバイスでのiBeaconの感度を検証してみた。Android端末毎の感度が違う結果があったので(70台ぐらいで調査)。ウェアラブル版での検証結果。

作り方

1. Android Studioでwearアプリを追加
2. alt-beacon libraryを利用
3. 実装では、全てのbeaconを取得してモニターさせるアプリを作った。
4. RSSIを表示する(ほぼAndroidのコードと同じ感じ)
5. Androidアプリ側にもbluetooth/locationのpermissionが必要だった。
6.アプリを公開するための準備 :aa build.gradleに追記必要

Watchの感度は意外によかった

10. magiepoohさん「How to get StatusBar and NavigationBar size」

https://github.com/magiepooh/AdjustFullScreenLayout


shibuya.apkでの発表の補足情報

TabletやPhoneで取得方法が違うので、そのあたりをうまく解決する方法

Googleのあらきさん方からWindowInsetsCompatを紹介された。
OnApplyWindowInsetsで、各値を知ることができる!!!

WindowInsetsCompatは値が返ってくるタイミングが遅れる場合があるので、magiepoohさんのlibraryの方が良い場合もある。

12. yuichi_maekawaさん「OpenGraphでURLをリッチに見せる」

本日のスライド
http://qiita.com/kaelaela/items/934fa1096e6181ee1a54

関連コード
https://github.com/kaelaela/OpenGraphView

- Open Graph protocol(Web Pageにtagを追加してリッチに表示される)

- og:title:...などである。
- デメリットOpenGraphに対応していないブラウザもあるの注意

Custom Viewで作ってみた話
Kaela...メモできず。

- HTMLのパースが面倒で、頑張ってパーサー実装しました。
- 通信も自分で作った。
- 画像のCacheも実装した。

作ってみての感想は小さなライブラリを組み合わせるのが64k問題などもあるので、よさそう。

2016年6月23日木曜日

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

potatotips #30 (iOS/Android開発Tips共有会)6月23日に参加してきました。 

変更履歴
2016/06/25 RxJavaを活用する3つのユースケースのプレゼンテーション追加


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

基本は発表者間の懇親が中心なので、オーディエンス枠は15名のみだけで、オーディエンス枠に50名の応募がある人気勉強会です(オーディエンス枠は抽選で決定)。今回は、ブログ枠で参加です。Androidの発表についてまとめてみます。

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

 1. VOYAGE GROUPの紹介 

今回の会場提供のVOYAGE GROUPさんの紹介。無料会議室貸出やピザの差し入れをしているそうで、使ってみたい方はコンタクトすると良いと思います。

 2. KENさん CDD(コンポーネント駆動開発) Android

サンプルプログラム
https://github.com/KEN0331/cdd

急遽代打発表のKENさんによる「Fragmentの再利用性とAPI通信」について。Timeline表示について。例えば、Profile表示ありと、Profile表示なしのでTimeline表示する方法。Timelineの共通のFragmentを設計方法。一つのTimelineFragmentを作って、onLoadTimeline(callback)を定義して画面に依存しないFragmentを作る。 通信モジュールは、表示したい内容を通信して、Fragmentに通信した内容を返す。Timeline型のアプリは作ったことないのですが、機会があったら参考にして作ってみたいです。

3. @hkusu_さん Androidアプリ開発でRxJavaを活用する3つのユースケース


プレゼンテーション


RxJavaをAndroidで使う話。今回は特にイベントをどのように扱うかを整理してみたお話。1つめは、結果の受け取り方。2. メモできず..3. 値の監視の作り方。特に、データ保持クラスと、それを表示に反映するのは、別々に実装できる。

ActivityのonPauseで購読を止める場合には、unsubscribeする。

でも、まだプロダクトにRxJavaは使っていないそうです....

サンプルアプリ
https://github.com/hkusu/android-mvc-sample

お勧めの構成
Activity/Fragment
     ^
     |
UseCase層
     ^
     |
Repository層
     ^
     |
Service層

4. ねこえさん   プッシュ通知の「開封」を検知する方法

プッシュ通知をなんで検知したいかは、プッシュ通知の効果計測(アトリビューション分析)したいので検討してみた。今回の「開封」の定義は、「Notificationがタップされたこと」。

PendingIntentが発火するかどうかで、計測したいが...普通は計測できない。しかし、Activity側ではどのIntentから起動されたか分からない!!

IntentをBroadcastReceiverで受け取ってから、Activityに渡す実装で検知を実現する。BroadcastReceiverでどのPush通知から呼ばれたかを判断した。

上記の制限1)、Notificationせずに、直接アプリ起動した場合は計測もれとなる。そのため、みなし開封テクニックも必要。

上記の制限2)、FLAG_ACTIVITY_NEW_TASKフラグが必要。

5. しろやまさん     Realm for Android Tips  Android

参加者へのアンケートでRealmのプロダクションで使っている人もそこそこいらっしゃる。(実際にproductionレベルで使える)

Nikkei新聞アプリは、RealmにデータをdownloadしてofflineではRealmのデータを使って表示しています。

Callback式の更新時に通知してもらって対応することが可能。

パフォーマンスも良いです!!、いろいろな制限事項も減ってきているので使いやすいです!!

Realm Browserもあって、中身を見れる。

紹介したいポイント2つ
1) RealmRecycleViewAdapter便利です。2) RxJavaにNativeで対応している。

日本語のドキュメントも充実しているので見てみてください


6. しょーんかわのさん   Introduction to AutoValue

プレゼンテーション

Googleが作っているJavaのlibraryの話。

まず、Article.classをベースに説明。最初はシンプルなclassが要件が増えてくるとだんだん複雑になっていく...

それを解決するのが、AutoValue。これで自動的に生成される。(@AutoValue, @AutoValue.Builder, AutoValue Extensionもいろいろある)例えば、Parcelableも自動生成。

7. やまくらふとさん     FirebaseのAuth機能
詳細は、Firebaseの勉強会で!!神泉Firebase勉強会 #1

Otemachi Firebase #1

Twitter/Github/Facebook/Googleログインに対応して、Auth系のtoken取得/管理をうまくやってくれる機能です。他にもemail, 匿名アカウントも取得・管理可能。

基本は、token管理のみなので、SNSログイン自体の仕組みは、それぞれのSDKで実装する必要がある...

8.magiepoohさん How to detect phone call

プレゼンテーション
AbemaTV Appで着信時に音を止めたい要望があり対応したときのTipを発表します。

1. TelephonyManagerを使う場合。
   READ_PHONE_STATE permissionの追加が必要で対応大変

2. AudioManagerを使う場合
   API Level8からで対応。Audio fouceの変更を検知して対応。
   permission不要です。以外に良い感じで動く。音楽再生ソフトによい。


2016年5月24日火曜日

[FreeBSD]DS-Lite with FreeBSD

FreeBSDを用いてDS-Liteをしてみました。目的は夜間のIPv6回線が遅くなる点の改善です。

追記:FreeBSDならば、佐藤さんのFreeBSDworkshopでの発表が詳しく良い設定です。

修正:2016/10/2 dslite-ctl.shを修正しました。sudo sysctl net.inet6.ip6.forwarding=1
のコメントインを削除しました(IIJ Blogと同じ設定にする)。そうしないと以下のエラーで
IPv6のdefault routeが消えていました。

nd6_dad_timer: cancel DAD on gif0 because of ND6_IFF_IFDISABLED.


1) 用いたプロバイダーIIJmio
2) IPv6接続は、IPoE(IIJmioのIPoEオプション)

用いた機器
1) Odroid-C1(ARMが動くボードですが、Raspberry PIやi386/AMD64のFreeBSDが動く機材でも同様な設定で動くと思います。
2) FreeBSD-current
3) NTT PR-500KI (光ルーター) IP: 192.168.100.1


Odroid-C1の/etc/rc.conf amle0がOdroid-C1のLAN portです。
##############################################
#
# enable IPv4
#
ifconfig_amle0_name="net0"
ifconfig_net0="192.168.100.2/24"
##############################################
#
# enable IPv6
# https://www.freebsd.org/doc/handbook/network-ipv6.html
#
ifconfig_net0_ipv6="inet6 accept_rtadv"
rtsold_enable="YES"
##############################################
#
# enable DHCP Server
#
dhcpd_enable="YES"

dhcpd.conf
default-lease-time 600;
max-lease-time 7200;

log-facility local7;

subnet 192.168.100.0 netmask 255.255.255.0 {
  range 192.168.100.101 192.168.100.150;
  option domain-name-servers 192.168.100.1;
  option domain-name "example.com";
  option routers 192.168.100.2;
  option broadcast-address 192.168.100.255;
  default-lease-time 600;
  max-lease-time 7200;
}

MacOS X用dslite.shへのパッチ(http://techlog.iij.ad.jp/contents/dslite-macosx)
変更ポイントは、

  • LANのport nameをnet0へ
  • 自宅の環境では、gw.transix.jpの名前解決ができなかったため、決め打ちで東日本用アドレスを設定

--- dslite-ctl.sh.org   2016-05-12 07:51:34.905693000 +0900
+++ dslite-ctl.sh.pulic 2016-05-24 22:44:18.206909000 +0900
@@ -15,6 +15,7 @@
   echo "Ethernet Interface: ${IF}"
   echo "MY_GUA: ${MY_GUA}"
   echo "AFTR_GUA: ${AFTR_GUA}"
+  sudo ifconfig gif0 create
   sudo ifconfig gif0 inet6 tunnel ${MY_GUA} ${AFTR_GUA}
   sudo ifconfig gif0 mtu 1500
   sudo ifconfig gif0 inet 192.0.0.2/30 192.0.0.1
@@ -43,15 +44,17 @@
 get_my_gua() {
   for i in ${EN_NUM}
   do
-    MY_GUA=`ifconfig en${i} inet6| grep 'inet6 2409:[0-9a-f:]*ff:fe[0-9a-f:]*' | sed 's/\%.*//' | cut -d ' ' -f 2`
+    MY_GUA=`ifconfig net${i} inet6| grep 'inet6 2409:[0-9a-f:]*ff:fe[0-9a-f:]*' | sed 's/\%.*//' | cut -d ' ' -f 2`
     if [ "${MY_GUA}" ]; then
-      IF="en${i}"
+      IF="net${i}"
       return
     fi
   done
 }
 COM=`basename $0`
-AFTR_GUA=`host ${AFTR_FQDN} | grep '2404:8e0' | sed -e '1!d' -e 's/.* address //'`
+#AFTR_GUA=`host ${AFTR_FQDN} | grep '2404:8e0' | sed -e '1!d' -e 's/.* address //'`
+AFTR_GUA="2404:8e00::feed:100"
+
 get_my_gua
 if [ ! "${MY_GUA}" -o ! "${AFTR_GUA}" ]; then
   echo "Error: My Global Unicast Address and/or AFTR IPv6 Address not found."