2016/09/06

ウェブリオ株式会社様のAI英会話ナンナのアプリをお手伝いさせていただきました。

ウェブリオ株式会社様のAI英会話ナンナのアプリをお手伝いさせていただきました。
担当はアプリ内の実装すべてです。
好きな時間に好きな場所でいつでもナンナと英会話し放題です。
AI-Nanna.png
以下AppStoreより引用
・モデル回答機能を使えば、スピーキングの採点が可能です。また、英会話の色々な場面における適切なフレーズを知ることができます。
・スクリプトを非表示にすれば、音声のみでよりリアルな英会話をすることもできます。
・レッスンをクリアしていく毎に、次のレベルのレッスンが解除していくシステムとなっています。
・フリートークモードにすれば、レッスンとは一味違った自由な英会話をすることができます。
・現在、無料でご利用することが可能なので、何回でも話し放題です。
・レッスン1回あたりの時間はたったの2分なので、スキマ時間にも勉強できます。
・予約不要で英会話レッスンができます。

現状シンプルな機能に絞られていますが、今後追加の機能など開発していく予定です。

ダウンロードはこちら

その他プレスリリース

【Weblio公式】正しい文法で正確な英会話が身につく!AI(人工知能)英会話アプリをリリース
https://www.weblio-inc.jp/wordpress/blog/2016/08/26/ai_app_release/
【EdTech Media】ウェブリオ、AI(人工知能)英会話アプリをリリース
http://edtech-media.com/2016/08/26/weblioai/?utm_source=dlvr.it&utm_medium=twitter

2016/07/06

Swiftでランダム英数字の文字列生成(※arc4random()は使ってはいけない)

SwiftでセッションIDなどのランダム英数字を生成させたい時

ポイント

arc4random()ではなく、arc4random_uniform(UInt32)を使用するのがポイント

arc4random()を使うとクラッシュする

arc4random()は乱数を生成させる関数ですが、Intにキャストする際に32bit端末ではクラッシュします。iPhone5や4Sなど、初代iPad Air以前は32bit
arc4randomはunsigned 32 bit integerを返しますが、つまり0から4,294,967,295まで。
IntはiPhone5で32ビットの整数と5S上の64ビット整数です。arc4random()はiPhone5上のIntの倍の正の範囲を持っているUInt32型を返すので、クラッシュする可能性が50%あります。
また詳細は記述しませんが、ランダム性に少しバイアスがあるarc4random()のずれを補正し、int型に変換しても安全なのがarc4random_uniform()です。

実装

引数の数だけ、a-zの小文字大文字、0-9を組み合わせた文字列を生成します。
arc4random_uniformを使用
    func generate(length: Int) -> String {
        let base = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
        var randomString: String = ""

        for _ in 0..<length {
            let randomValue = arc4random_uniform(UInt32(base.characters.count))
            randomString += "\(base[base.startIndex.advancedBy(Int(randomValue))])"
        }
        return randomString
    }

参照

Objective-Cの乱数作成はarc4random_uniform
http://tanukichi566.blog.fc2.com/blog-entry-57.html
[Swift][iOS]64bit対応におけるarc4random()について
http://qiita.com/kiguchi/items/c75d6d3da05b3e8d80d9

2016/07/03

Swiftで半角英字のValidation(英字ニックネームなど)

半角アルファベットのみで入力させたい場合のバリデーション
extension String {

    var isAllHalfWidthCharacter: Bool {
        // 半角も全角も1文字でカウント
        let nsStringlen = self.characters.count
        let utf8 = (self as NSString).UTF8String
        // Cのstrlenは全角を2で判定する
        let cStringlen = Int(bitPattern: strlen(utf8))
        if nsStringlen == cStringlen {
            return true
        }

        return false
    }

    var isValidNickName: Bool {
        if rangeOfCharacterFromSet(.letterCharacterSet(), options: .LiteralSearch, range: nil) == nil { return false }
        if rangeOfCharacterFromSet(.decimalDigitCharacterSet(), options: .LiteralSearch, range: nil) != nil { return false }
        guard self.isAllHalfWidthCharacter else { return false }
        return true
    }
}

実用例

isValidNickNameでチェック
   if nickname.isValidNickName {
      // Set Data
   } else {
      // Alert
      let alertController = UIAlertController(
                title: "半角英字のみで入力してください",
                message: "",
                preferredStyle: .Alert)
            let otherAction = UIAlertAction(title: "OK", style: .Default) {
                action in
                self.navigationController?.popToViewController(self.navigationController!.viewControllers[0], animated: true)
            }

            alertController.addAction(otherAction)
            presentViewController(alertController, animated: true, completion: nil)
   }


NSStringではlengthでカウントできるのに、
String型ではcharacters.countって長い

2016/02/28

Remote Shutter for ThetaS v1.0を公開しました


久しぶりにアプリをリリースしました。
自作アプリをはじめて作成したのが、約5年前ですが、初の有料アプリです。
今回はAppleWatchに応しています。というかそっちメインです。
拍手したら、ThetaS(カメラ)のシャッターが切れます。以前ブログを書いて意外にも反響があったのでアプリとして出してみました。AppleWatchからTheta Sを操作して遊んでみた



App Storeの紹介文は以下

【ThetaS(RICOH)】Theta sが必要です。
カメラ(ThetaS)は、Wi-Fiネットワークを介してスマートフォンに接続されている場合、リモートで写真、ビデオ撮影することが可能です。
iOS appまたはAppleWatchから使用することができます。
**************機能***************
・リモートシャッター
・リモート動画撮影
・撮影音コントロール(無音or 100)
・手を叩いて、静止画の撮影(Apple Watchオンリー)

 


ThetaS(RICHO)の360度全天球の写真、動画をすぐ撮影するためのアプリケーションです。AppleWatchからだと、拍手(手をたたく)だけでシャッターが切れます。
公式のアプリではAppleWatchに対応していないので、watchアプリ出してほしいとの声がありました。AppleWatchなら時計なので、そのまま腕を押すだけで、シャッターが押せる。アプリからより楽。それにwatchからの方がリモート感が増します!歩きながら、走りながらとか撮影可能です。

ダウンロードはこちら

ダウンロードはこちらからどうぞ。120円です。


ThetaS とAppleWatchユーザの方はぜひお使いくださいませ。

2016/01/21

プロクラウドワーカーに認定されました

表題通り。
クラウドソーシング大手「クラウドワークス」のプロクラウドワーカーに選ばれていました。
https://crowdworks.jp/lp/procrowdworker?ref=blog1206
og.jpg
クラウドワークスでのプロフィールはこちら
https://crowdworks.jp/public/employees/277964

どういう基準?

  • 実行力がある(納品完了率90%)
  • 顧客満足度が高い(クライアント評価4.8以上)
  • 収益力がある(獲得報酬額上位20%以内)
  • 指名数が多い(スカウト数10回以上)
  • 信用力が高い(本人確認済み)
上記の基準を満たしたということで、プロフィールにプロクラウドワーカーマークが表示されていました。
今回認定されたエンジニア、デザイナーのプロクラウドワーカーの総数は1540名なので、数として多いのか少ないのか、どうなんでしょうか。ワーカー自体の総数はエンジニア、デザイナーだけで数万人はいると思うので、満足していいのかな...
上位ランクイン実績(月間ランキング)2015年2月に6位になったことがハイライトで、クラウドワークスがメインの収益ではなくなったのですが意外でした。
https://crowdworks.jp/public/employees/277964/ranking

一年間やってきて

期間中お取引をいただきましたお客様はもちろんのこと、これまで関わっていただきました多くの方々に感謝いたします!
いつでも、どこでも仕事ができるフリーランスという生き方、やりたいこと、得意なことで生きていけるということは幸せな限りです。

今後について

これからもクラウドソーシング業界の発展に貢献すると同時に、新しい働き方の実現と新たな価値の創造、好奇心赴くおもしろいと思うことに挑戦していきたいなと思っています。
ちなみに最近,クラウドワークスで受注した仕事は、
センサー付きメガネJ!NS MEME(ミーム)向けiOSアプリ、Webアプリ(データ格納、PC上に画面表示、CSV出力)の開発です。
JinsMEMEを購入した甲斐がありました\(^o^)/
引き続き、よろしくお願いいたします!

2016/01/10

新年早々、PayPalアカウントをハッキングされた話

新年早々、ベッキーの不倫騒動が世間を賑わせてますが、そんなことはさておき、

残高がすっからかん

6306561065_01b09bc127_b.jpg
久々に買い物をpaypal決済でしようと思い、
ログインしてみて、残高を確認すると見覚えのない引き出しが多数、ログインしていない数ヶ月間の間にすっからかんになっていた\(^o^)/
支払いをPaypalで受けることもあったので、引き出していないお金をずっとプールしていたのですが、久しぶりに確認してみるとこの有様!
ログインしてみると覚えのないメールアドレス、銀行口座、クレジットカードが登録されていて、取引履歴を確認すると、どこかの口座にどんどん振り込まれている履歴が残っていた!
え?これ返金してもらえないの?どうしよ…
あくせく働いたお金がぱーなのか...
と思ってググったら同じような被害の記事を発見。
まぁ戻ってくるのかなとひと安心、、、

速攻paypalに電話

ネイティブではない日本語でおそらく東南アジア系のお姉さんの声...
状況を説明すると、冷静に聞いてくれる...
一時的にアカウントを凍結して、不正な取引に関しては全額返金してくれるとのこと。
三年前くらいは日本語対応すらなかったのに対応が素晴らしい、、、

ひと安心

三時間くらい経過して再び電話。
取引履歴を確認すると、残額が元通りに( ´・‿・`)
パスワードの変更をしたり(定期的なパスワードの変更は必要と実感)、
メールアドレスの変更をしたり、
もろもろの処理をして、一安心

問い合わせ対応がとても親切、安心

shutterstock_86935414.jpg
何度か電話をかけたり、受けたりしてたんですが、皆総じて、丁寧な敬語で対応がスピーディで安心しました、そして皆ネイティヴではない日本語で東南アジア風のかた。日本人ではない人が丁寧な敬語を使うと印象がすごくいい気がした。コールセンターは海外にあるんでしょうね。さすがグローバル企業。
原因は不明ですが、おそらくパスワードの漏洩でハッキングされたので、今後一切paypalを利用しない方がいいだろうなと心決めてたのですが、お姉さんの綺麗な言葉遣い、冷静でスピーディーな対応に感服しました。
生体認証、静脈認証がデフォルトになれば、漏洩やパスワード入力の煩雑さから解放されるんですが、そんな世界はもう少し先でしょう。

最後に

お金もちゃんと返ってきたし、気持ちのいい対応をしてもらったので、今後もpaypalを利用させてもらおうと思いました。
コールセンターをソフトバンクのようにほぼすべて自動音声にしてしまうのもありだと思いますが、今回の件で、人だからこそできるサービスというのを実感しましたね。
担当のジェニー(ケニー?)さん、ありがとうございました。美声でした。