Swift3について色々まとめていくスレ

String を Data に変換する

色々実験したスクショ

スクリーンショット 2016-08-12 18.50.49

よく使うドイツ語とかのメモ

簡単な言葉でも意外と咄嗟に出て来ないことがあるので、旅行中に結構使うドイツ語とイタリア語とフランス語と英語をメモ。現地に行ったらなるべく現地語でやりとりしたい…。まあ聞き取れるかどうかという話はおいておく…。現地語で頑張って話すと英語が返ってくるのが多々あるのがウケる。

書きかけ

基礎

数字

  • 独: eine, zwei, drei, vier, fünf, sechs, sieben, acht, neun, zehn
  • 伊: uno, due, tre, quattro, cinque, sei, sette, otto, nove, dieci
  • 仏: un, deux, trois, quatre, cinq, six, sept, huit, neuf, dix

あいづち系

  • 英語
    • Yes, that’ll be fine.
    • Sure
  • 独語
    • Ja

チェックイン/チェックアウト

http://www.eslfast.com/robot/topics/hotel/hotel02.htm

    • I’d like to check in please. My name is …
    • Check in, please. My name is …
    • I have a reservation. My name is …
    • I have a reservation under (:my_name)
    • Hi/Hello, I’ve got a reservation, My name is …
    • I have a reservation. My name is …

  • *

その他チェックイン周辺の会話

  • do you have a reservation?
  • yes, it’s in name of …
  • where can i something to eat?
  • What time does breakfast start in the morning?
  • what time is breakfast served in the morning

感謝厨

    • thank you for your help

クレジットカードで支払いたい

  • I’d like to pay by credit card
  • Here is my visa(master, JCB)

〜ください

    • Can I take …?
    • Can I get …?

  • *

〜ありますか?

    • Haben Sie …?

ちょっとお聞きしても良いでしょうか?

    • Can(May) I ask you something?
    • Can(May) I ask you a question?
    • Könnte ich eine Frage stellen?
    • Darf ich Sie etwas fragen?

接続水域とは…

某国の公船が接続水域に侵入とかいう話がニュースででてたけど、接続水域ってどこらへんなのか知らなかった。意外に領土から近い。領土・内水・領海(12海里)・接続水域(24海里)・排他的経済水域(200海里)という形になっていて、余裕で排他的経済水域の内側だったのか(無知)。1海里 = 1.852km らしいので、領土から 44.448km。これは東京駅から直線距離で久喜、鎌倉、横須賀あたりまで程度の模様。結構近い。

何隻は普通に領海に入ったらしいしやりたい放題でワロタw(笑い事ではない…)

C++メモ

  • struct/classの違い➡︎デフォルトの可視性
  • 基本的にすべて値型
  • const は signature に含まれる
  • 抽象クラスを作るときは必ずデストラクタを作る

厨二病

virtual 継承とそうでないものの違い

superクラスのコンストラクタを取り込む

Swift1系脳で出来ないと思い込んでいたことができるようになっていた件

再帰的構造を持つ enum

Swift 1 系では、再帰的構造を持つ enum を定義することはできませんでした。たとえば、

というコードを書くと、Swiftの処理系は受け付けてくれません。しかしながら、Swift2はとても素晴らしい indirect という修飾子を導入することにより、再帰的構造を持つ enum を定義できるようになりました。

また、挙動的に面白いのが、再帰的構造を持つが即座に評価されないようになっている場合、たとえば以下のような遅延ストリームについては、indirect 修飾子がなくても動くのです。これは Swift 1 系のときに挙動を試してないので、どうだったかわかりませんが、Xcode ダウンロードするのめちゃめちゃ時間掛かるし重いのでだれか試して欲しい。

にゃ〜ん…って感じですね?

関数内に定義した関数の再帰呼び出し

まあコードみればわかると思うけど、以下のようなコードが Swift 1 系では動かなかった(記憶がある…)。間違っていたらごめんなさい。でも関数内に定義した関数なんて、再帰呼び出しにくらいしか使わなくないですか?と半ギレした記憶があるので多分ほんとに動かなかったと思う。Swift2でやっと動くようになりました。

Swift 最高!!!!!!(大嘘)

まんがタイムきららフェスタ2016

 北千住の海鮮三崎港で寿司を700円分くらい食べて水道橋の東京ドームシティホールへ向かいました。会場のすぐ目の前には、芳文社のビルもあります。本当の聖地巡礼。

 物販はとりあえずパンフだけでよいかなという感じ(ものが増えてきて非常に厳しい)なので、さらっと買って会場入り。夜の部18:30からで、座席はアリーナ8列。キャスト陣をじーっと見ていると目が合っちゃいそうな距離感でなんかこそばゆい気持ちになりました。

 オープニングから全作品のキャスト陣が一列にずらっとならんで、もういっぱいいっぱいになっていました。これだけのキャストさんのスケジュールおさえるの大変だろうなぁ…と。朗読劇、ゲームコーナー、ライブという3部構成で進んでいきました。

 まあ色々ありましたが、一番印象に残ったのはあんハピ♪関連でした。ニコ生とかラジオであんハピ♪キャスト陣雰囲気良いなぁ…と思っていたけど、生で見るとやっぱりそれがひしひしとつたわってきて、中の人の組み合わせ的にも今後の映像化展開つながって欲しい作品だなぁと思いました。原作はこれからも続くので、ゆみりさんが言ってたようにOVAという形としてでも良いし、あわよくば2期やってほしいですね。

 朗読劇パートもあれだけアドリブぶっこめるのは仲良くないとできないですよね。。。山村響さんの原由実さんものまねは、マジで本物かと思うくらいすごかった。。会場がガチで演技のすごさに静まり返った気がします。こういうイベントでこういう意味で静まり返るというの、めったにないし、自分も感動してしまった。そして、その後のはなべぇの演技も似ていて、はなべぇもああいう声出せるのかーって感じになった。声優さんすごいなぁ…。響さんとまゆしいの例のアレもよかった(何とは言わないけど)。

 白石さんはうまるちゃんのときから気になっていたけど、うまるちゃんイベには参戦していないので、今回初。めっちゃオーラのある方だ。小見川千明さんを彷彿とさせる、良い顔立ちの方、と思っていたらおみんちゅと事務所が一緒だった。安野希世乃さんもふわふわしてて良い感じで、メガネかけてるとリアル牡丹ちゃんだった。

 そしてあんハピ♪で最高だったのはやっぱりパンチマインドハピネス。ずーっとライブで聴きたかったので、今日これが聴けて本当によかった。永遠にパンチマインドハピネスしていたい。次ライブが見れるのはおそらく、9月のあんハピ♪イベですねー。そのあとが、どうなるか…ですが、めちゃくちゃいい曲だし、本当に盛り上がるのでこれで終わらせて欲しくない!!! 8月はお渡し会とかあるのでそれも楽しみ(でもお渡し会は緊張するのであまり得意ではない)。あんハピ♪のことだけでこんなに記事が長くなってしまった。花守ゆみりさん好き。

 三者三葉、和久井優さんが出演するイベント初だったので、生で見ることができてよかった。やはり本物のお嬢様オーラが漂っている。クローバーかくめーしょん、これもライブ向きの曲ですね。個人的には2番のサビ前の間奏がかなり好き。OPだと1番サビ手前にこれをもってきていて、各話ごとにセリフをあてていましたね。三者三葉♣︎活動、めちゃくちゃ面白いのでみなさんみましょう。原作ストックは当然きららのなかでは一番豊富にあるので、ぜひ続編を引き続き動画工房で製作して欲しいなぁと思いました。そういう意味も込めて、あとは9月のイベントに行きたいというのもありとりあえず円盤を買います。

 あとは田中真奈美さんはあいかわらず、外野フェンス前からホームへ2バウンドで返すようなレーザービーム級のネタを仕込んできていて、やっぱり好きだなぁと思いました。もっと田中真奈美さんの出演するイベントに参加したいけど、いまのところきんモザ関連だけでしか参加できていない。

 ゆゆ式の朗読劇は頭一つ抜けて作品のテイストにマッチして、かつイベント向けのサービスも入れたような構成になっていてよかった。あとは種田梨沙さんの縁の演技を久々に聞いて、もっとこういう系の役柄も増えると良いなぁとか思ったりもしました。新作エピソードは良いとして、その後の2期につながってほしいですね。津田ネキ来てほしかった。

 ごちうさもあやねる or りえしょんが来てほしかったなぁという感じです。あとどうせ振り回され隊がそろってたので、ライブパートで振り回され隊のキャラソンをやってほしかった(が、まあ他の作品はOP持ってきているので少々場違いになっちゃいそうw)。りえしょん、あおちゃんはステラのまほうのキャストにも抜擢されていたのでまあ、来年のきらフェスにはきっと登場するのでしょう(チマメとしても来て欲しい)。

 がっこうぐらしで高橋李依さんが登場していたが、最近はRe:ゼロのラジオとアニメのほうを繰り返し摂取しているので、エミリアの声にしか聞こえない病気にかかってしまった。ただ自分はラムちー派です。たしかチーム対抗戦のところでがっこうぐらしとあんハピ♪がペアのチームになっていた気がしていて、その登場の際、ステージ両サイドから亜李さんとゆみりちゃんが登場して、真ん中でぎゅっとしていたのが、よかった(?)。ライブパートのトリは、まさかのがっこうぐらしだった。まあ今回のライブパート登場作品の中では、認知度は一番たかいので、そうだよなとなった。NEW GAME!とか下手したら今回初めて曲聴いた人がほとんどな気がする。

 イベントから帰宅する途中三者三葉の最終回を見たが、優さまが言っていた「最終回でここやる?」という意味がわかった(良い意味で)。ぜひ「永遠に終わらない」という願いが叶うと良いなあと思いました。来年も絶対にきららフェスタに行きたい。芳文社さんありがとうございました。

AWS SDK for Node.jsを用いたSQSの操作

AWS Lambda を使ってお手軽に SQS を操作するために、普段はあまり使わないが Node.js 経由で試してみることにした。本当はJavaのほうが慣れているし、好きなのですがいかんせん Lambda にいちいち jar をアップロードするのは非常に厳しい気持ちになるので、まあたまには…。

自分のためのメモ書きなので、各位はドキュメントを見るべきだと思います
http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html

SQS へのメッセージの送信

SQS メッセージの受信

SQS 受信メッセージの削除

Node.js 書くのかったるい…

PHPの private なメソッドを無理やりテストする方法

Java の package プライベートとかほんと素晴らしい仕組みだと思うのですが、他言語はなかなかないですね…。最近だと Swift2 でようやく @testable import などという形で、モジュールプライベート的なメソッドをテストできるようになっていますが、まだまだ Java に比べると柔軟ではない感じはあります。そもそも、Swift1系はアクセス修飾子の設計普通にミスってるんじゃないかと思いますが、まあ言語を作っている方々は自分よりもはるかに知識がある方々だと思うので、いろいろあったのかな…という感想。自分はコードを読み書きするときにアクセス修飾子を基準にどこから読み進めるかとか、このメソッドは重要だなとかを判断するので、やっぱりこのあたりの機能が柔軟な言語のほうが好き。

本題。PHPの private メソッドを無理やりテストする方法。まあリフレクションしかないですよね。ということで、以下のような具合(自分のための備忘録)。

にゃ〜ん…って感じだ。

AWS Lambda を用いた Amazon SNS のエンドポイント整理

 Amazon SNS の Application に紐付いているエンドポイントには Enabled という Attribute がついています。文字どおり、有効なエンドポイントかどうかを表すものです。Amazon SNS は賢いので APNSGCM からのフィードバックを受けて、プッシュトークンが無効になった場合に自動的に false にしてくれます。しかし、基本的には Enabledfalse になったエンドポイントは不要です。したがって、これらを自動的に削除するような仕組みがあったほうがよさそうです。そこで、この記事では AWS Lambda を用いて、それを実現する方法について説明します。

AWS Lambda で動かすスクリプト

 コード自体は非常に簡単で以下のような形です。AWS Lambda Function を素早く立ち上げるとしたら本来は pythonnode.js のほうが良いかと思いますが、今回の作りたいものに関してはそれほど即時性を求められるようなものではないと思うので、好きな言語(もちろん Lambda でうごくもの)で問題ないと思います。

 json4s とか typesafe config とか scala logging とか使ってます。よい塩梅に jar に固めて、 Lambda Function を作って、アップロードしてください。これで AWS Lambda 側の準備は完了です。

Amazon SNS 側の連携設定

Amazon SNS側の作業は次の2点になります。

  1. 先ほど作った AWS Lambda Function の実行をフックさせるためトピックを作成し、購読(Subscribe)させる
  2. エンドポイントの整理をしたい対象の Application の持つエンドポイントの状態変化をフックして、トピックに通知を送るように設定する

それぞれについて見ていきましょう。

トピックおよび、サブスクリプションの作成

 トピックの作成は通常どおり普通にやってあげれば大丈夫です。とりあえず適当に「endpoint-updated-topic」とでも名前をつけておきましょう。続いて作成したトピックを先ほど作成した Lambda Function に購読させましょう。以下のような形で Protocol で AWS Lambda を選択すれば Endpoint のプルダウンリストに先ほど作成した Lambda Function の ARN がでてくるでしょう。

スクリーンショット 2016-05-26 0.41.37

Application のイベント設定

 最後に Amazon SNS の Application に紐づくエンドポイントの Attributes が変化したイベントをトピックに通知させるように設定します。 Application 一覧の画面で設定対象のアイテムを選択し Actions から configure events を選択してください。

スクリーンショット 2016-05-26 0.46.00

 そして、次に表示されるダイアログの Endpoint Updated の項目に、先ほどつくったトピックの ARN を入力すれば、すべての作業は完了です。

スクリーンショット 2016-05-26 0.48.25

動作確認テスト

 設定が終わったら適当に Application へ Endpoint を追加してみて、Edit Endpoint Attributes から Enable を false にしてみてください。きっと自動的にエンドポイントが削除されるはずです。

スクリーンショット 2016-05-26 0.50.55

 Application エンドポイントの Attribute 変更以外にも、作成イベント、削除イベントなどをフックすることができるので、やり方次第では様々な連携を AWS Lambda を用いて行うことができると思います。