yukiasaiのブックマーク (28)

  • 型消去を用いたSwiftによるリポジトリパターンの実装 - AnyType

    リポジトリパターンとは リポジトリはオブジェクトの参照を取得するのに必要なロジックをすべてカプセル化するためのパターンです。 Domain Driven Design Quickly 日語訳 iOSアプリ開発の文脈では、オブジェクトをWeb APIから取得するのかRealmから取得するのかといった関心ごとがある。リポジトリを実装することで次のようなメリットがあると思う。 どこからどのように取得するのかなどの関心ごとからドメインモデルを切り離せるため、ドメインモデルをクリアに保つことができる。(DDDの観点) テスト時にWeb APIやRealmにアクセスするリポジトリをメモリにアクセスするリポジトリに差し替えること(Dependency Injection)が可能になるため、テストデータを簡単に用意できたりテストのパフォーマンスを向上できるなど、テストしやすくなる。(テスタビリティの観点

    型消去を用いたSwiftによるリポジトリパターンの実装 - AnyType
    yukiasai
    yukiasai 2016/03/11
  • マネーフォワード、フルタイムRubyコミッターを採用~Ruby1.8.6/1.8.7のリリースマネージャである卜部昌平氏が就任~

    お金のプラットフォームを提供する株式会社マネーフォワード(社:東京都港区、代表取締役社長CEO 辻庸介)は、Rubyの発展に寄与する事を目的とし、フルタイムのRubyコミッター職として、卜部昌平(うらべしょうへい)氏を招聘したことをお知らせいたします。 左:卜部昌平氏/右:代表取締役社長CEO 辻庸介 Rubyは20年以上前に日で生まれた開発言語であり、国内外の様々なWEBサービスの開発言語として選択されています。当社は「テクノロジーの力で、個人・法人が抱えるお金の悩みを解決する」をミッションに、Ruby on Railsを基盤に、最新のテクノロジーと高いユーザビリティを追求してまいりました。今後は、卜部氏にフルタイムのRubyコミッターとして、国産言語Rubyの改善・開発に注力いただくことを始めとし、当社に限らず様々なWEBサービスを支えるRubyの開発支援を積極的に行ってまいります

    マネーフォワード、フルタイムRubyコミッターを採用~Ruby1.8.6/1.8.7のリリースマネージャである卜部昌平氏が就任~
    yukiasai
    yukiasai 2016/02/17
  • CocoaPodsでライブラリを作って公開する - しめ鯖日記

    初期化 まずは下コマンドでライブラリのベースを作ります。 言語をSwift/Objectiveのどちらか聞かれたりテストを作るか聞かれるので答えていきます。 pod lib create MyLibrary 答え終わると以下のような構成でプロジェクトが開きます。 ライブラリを作る ReplaceMe.swiftのあるフォルダにライブラリを入れていきます。 クラスにpublicを付ける事を忘れずに作業して下さい。 デモプロジェクトで動かす ライブラリを作ったらデモプロジェクトで動かします。 Example for ...フォルダの中にあるプロジェクトにライブラリを使ったコードを実装します。 ライブラリを公開する ライブラリを公開チェックの為に以下のコマンドを打ちます。 pod lib lint そうすると下のように問題点を指摘してくれるのでそれに沿って修正します。 全て修正すると下のように緑

    CocoaPodsでライブラリを作って公開する - しめ鯖日記
    yukiasai
    yukiasai 2016/02/02
  • Swift の enum の要素数取得とループについて

    表題を実現する方法について 次の`enum`を例とする ```swift enum MyColor: Int { case Red case Green case Blue } ``` ##Countの実現方法 `enum`のcountが欲しい時があるが、手法がいくつかあるので上げていく ###ダミーの要素を一番後ろに追加する方法 ダミーの要素`_count`を追加 ```swift enum MyColor: Int { case Red case Green case Blue case _count static let count = _count.rawValue } print(MyColor.count) // 3 ``` ぱっと見良さげだが`switch`した時に`default`を考慮する必要が出てきて面倒 ```swift let color = MyColor.Red

    yukiasai
    yukiasai 2015/12/18
  • Swiftで関数合成 - yukia blog

    最近Haskellを勉強していて、関数合成ってSwiftでも書けそうだな〜と思ったので書いてみました。 合成関数の定義を簡単に説明すると、 (f ○ g)(x) = f(g(x)) こんな感じです。 これをSwiftで書くとこうなります。 func +<T, U, W>(lhs: U -> W, rhs: T -> U) -> T -> W { return { (x: T) -> W in return lhs(rhs(x)) } } どのオペレータが適当なのかわからなかったのでとりあえず(+)で。。。 なんのことはなく、先ほどの式をSwiftに落とし込んだだけです。 関数と関数を引数に取り関数を返す関数ですね。 使い方はこんな感じです。 func add(a: Int)(b: Int) -> Int { return a + b } func multi(a: Int)(b: Int)

    Swiftで関数合成 - yukia blog
    yukiasai
    yukiasai 2015/10/31
  • http://altarf.net/computer/rails/2502

    http://altarf.net/computer/rails/2502
  • Websocket Railsを使って特定のユーザーにメッセージを送る - 亀の速度で走る

    特定のユーザにメッセージを送る 前回のブログ記事でWebsocket Railsを用いて接続が確立したユーザ全員にメッセージを送る実装方法について書きました。今回はFacebookのプライベートメッセージのように特定のユーザにメッセージを送りたい時にどうしたら良いのかを書いていきたいと思います。(この記事では省略していますが、参考サイトに載せているGithubのページのInstallation Guildeに従ってWebsocket Railsのインストールをして下さい。または前回の記事を見て下さい。) 参考サイト 前回同様Websocket Railsを使っていきます。今回も家のサイトとこちらのサイトを参考にしました。 特定のユーザの指定方法 さて、どうやって実装したらいいのかな。と少し調べていたら、家のサイトにこのような事が書いてありました。ふむふむ。UserManagerとやらを

    Websocket Railsを使って特定のユーザーにメッセージを送る - 亀の速度で走る
  • SwiftのOptionalと恋人以上の関係になりたい(その1) - yukia blog

    はじめに SwiftのOptionalについて、こんな認識がありました。 Int? は Int が入るかもしれないしnilが入るかもしれない型 これだけの認識でもSwiftのプログラミングは十分可能だと思います。 Optional BindingやOptional Chainingを使いこなせれば、Optionalと友達以上恋人未満の関係になったと言っていいでしょう。 ただ、それだけでは満足しきれない、もっとOptionalのことを知りたい!恋人以上の関係になりたい!と思うようになってきました。 Optionalの定義 Optionalの定義を確認してみます。(いろいろ省いています。 public enum Optional<Wrapped> { case None case Some(Wrapped) } この時点でOptionalの認識が少し改まります。 Int? は Some(Int

    SwiftのOptionalと恋人以上の関係になりたい(その1) - yukia blog
    yukiasai
    yukiasai 2015/10/09
  • Alamofire+SwiftTaskで、Swift2.0対応のAPIクライアントを実装する - Qiita

    マネーフォワードさんとネタが被りましたね... 僕も今月中旬からAPI通信用クライアントの実装に取り組んでおりまして、こんな感じでええんちゃうかなぁという形ができたので、晒しておきます。 利用ライブラリ Alamofire(通信) ObjectMapper(JSON⇔オブジェクト変換) SwiftTask(メソッドチェーン) API通信でよくあるやつ API通信の戻り値をオブジェクトにしたい。 成功と失敗のハンドラを自動で登録したい。 コールバック地獄はだるいからメソッドチェーンで処理したいし、チェーンした時のクロージャで全く別の型を返却したい。 ヘッダに認証用tokenなんかも入れたい。 こんなもんでしょ、きっと。 通信⇔オブジェクト変換 Alamofireのrequestメソッドの拡張で、AlamofireObjectMapperというライブラリがあります。僕はこれを利用しています。全

    Alamofire+SwiftTaskで、Swift2.0対応のAPIクライアントを実装する - Qiita
    yukiasai
    yukiasai 2015/09/30
  • Swift2.0で作るAPI通信基盤 - Money Forward Developers Blog

    こんにちは。エンジニアの浅井です。 普段はマネーフォワードのiOSアプリ開発を担当しています。 弊社では、全社で使用する共通ライブラリの開発を積極的に行っています。 今回は、先日正式リリースされたSwift2.0で作成中のAPI通信基盤をご紹介します。 APIKitを参考に、下記のライブラリを用いて実装しています。 * Alamofire(HTTP通信) * ObjectMapper(JSONのパース) エントリーの肝 エントリーではSwift2.0で追加された、ProtocolExtensionを利用しています。 プロトコルに実装を定義できるだけでなく、細かく条件指定ができるので、そのプロトコルに準拠したクラスの実装を少なく抑えることができます。 また、typealiasによるジェネリクスを利用することで、タイプセーフな設計になっています。 利用側のコード 兎にも角にもまずは利用側の

    Swift2.0で作るAPI通信基盤 - Money Forward Developers Blog
    yukiasai
    yukiasai 2015/09/29
  • 集中力を高めるノイズミュージック - Money Forward Developers Blog

    こんにちは、クリエイティブ戦略室の大嶽です。 クリエイターやエンジニアの方で、ヘッドフォンで音楽を聞きながら作業することって多いですよね。 オフィスの騒音を音楽で遮断することで、自分の世界に入り込んで集中力を高めるっていう手法ですね。また、リラックス効果もあるので気分転換に聴く方も多いでしょう。 音楽を聴くことで作業効率がアップしたとかミスが減ったなどの報告もネット上ではありますが、反面、何かを考えてまとめる時は邪魔になるというケースもあるようです。 そこで今回は何かを考えるときにも集中して作業するときにも効果が高い(と勝手に思っている)ノイズ・ミュージックというジャンルを紹介したいと思います。 ノイズ・ミュージックとは ノイズ・ミュージックとは、その名の通り只のノイズ、マイクで叫びまくってるものや、サボテンに針金を刺して、そこから発生する電気信号を音に変換したものとか、アナログ音源を何十

    集中力を高めるノイズミュージック - Money Forward Developers Blog
    yukiasai
    yukiasai 2015/09/08
  • ReactiveX - Operators

    Introduction Each language-specific implementation of ReactiveX implements a set of operators. Although there is much overlap between implementations, there are also some operators that are only implemented in certain implementations. Also, each implementation tends to name its operators to resemble those of similar methods that are already familiar from other contexts in that language. Chaining O

    yukiasai
    yukiasai 2015/09/03
  • 【翻訳】あなたが求めていたリアクティブプログラミング入門 - ninjinkun's diary

    original: The introduction to Reactive Programming you've been missing (by @andrestaltz) (translated by @ninjinkun, reviewed by @ma0e) あなたはリアクティブプログラミングと呼ばれる新しい方法が気になっている。 勉強するのは大変で、良い教材がないのでさらに難しい。私が勉強を始めたときは、まずチュートリアルを探した。見つけたのは一握りの実践的なガイドだけ、しかもそれらは表面をなぞっているだけで、リアクティブプログラミングのアーキテクチャ全体像を構築しようとしてはいなかった。ある関数を理解するのに、ライブラリのドキュメントは役に立たないことがある。 これを見て欲しい。 Rx.Observable.prototype.flatMapLatest(selector,

    【翻訳】あなたが求めていたリアクティブプログラミング入門 - ninjinkun's diary
    yukiasai
    yukiasai 2015/09/03
  • ギークアカデミー:先端を走る技を、ギークに学ぶ

    さまざまな分野で活躍するITエンジニアを紹介する ギークアカデミー(GEEK ACADEMY)! インタビューを通して、皆さんが参考にできる "エンジニアとして成長するためのポイント"を探っていきます。

    ギークアカデミー:先端を走る技を、ギークに学ぶ
    yukiasai
    yukiasai 2015/08/24
  • Swift 2.0 で変わったところ「前編」 #cswift

    2015.07.25 に開催した『カジュアル Swift 勉強会』で、Swift 2.0 での変更点をざっくりと紹介してみました。気づいた全部を紹介するつもりでいたんですけど、思いのほか量が多くてひとまずは「前編」という形で、とりわけ目立つ変更点を取り上げてみます。

    Swift 2.0 で変わったところ「前編」 #cswift
  • 機械学習プロフェッショナルシリーズ輪読会 で発表してきました - 圧倒亭グランパのブログ

    勉強会で話してきました。 ml-professional.connpass.com 発表資料はこちらです。 機械学習プロフェッショナルシリーズ輪読会 #5 異常検知と変化検知 Chapter 1 & 2 資料 from at grandpa www.slideshare.net 今回から「異常検知と変化検知」。 持ち時間1時間でしたが、1章がモリモリで普通に時間オーバーしてしまいました。 質問では、数式の指摘を受けて(;^ν^)ぐぬぬ…となる場面も。 しかし、それもみなさんで協力して解こうというスタイルで、いろいろ勉強になりました。 一方的にしゃべる勉強会ではなく、ディスカッションが生まれることや懇親会が非常に盛り上がることなど、とてもおもしろいので、興味がある方は是非ご参加ください。

    機械学習プロフェッショナルシリーズ輪読会 で発表してきました - 圧倒亭グランパのブログ
    yukiasai
    yukiasai 2015/08/22
  • Introduction

    OpenSubdiv is a set of open source libraries that implement high performance subdivision surface (subdiv) evaluation on massively parallel CPU and GPU architectures. This code path is optimized for drawing deforming surfaces with static topology at interactive framerates. OpenSubdiv is an API ready to be integrated into 3rd party digital content creation tools. It is not an application, nor a tool

    yukiasai
    yukiasai 2015/08/20
  • エンジニアドリブンどころじゃなかった!「全員ドリブン」なマネーフォワードの日常。 - 株式会社マネーフォワードの転職・求人情報 | Find Job !

    FINDJOB! 終了のお知らせ 2023年9月29日にFINDJOB!を終了いたしました。 これまでFINDJOB!をご利用いただいた企業様、求職者様、様々なご関係者様。 大変長らくFINDJOB!をご愛顧いただき、誠にありがとうございました。 IT/Web系の仕事や求人がまだ広く普及していない頃にFind Job!をリリースしてから 約26年間、多くの方々に支えていただき、運営を続けてまいりました。 転職成功のお声、採用成功のお声など、嬉しい言葉もたくさんいただきました。 またFINDJOB!経由で入社された方が人事担当になり、 FINDJOB!を通じて、新たな人材に出会うことができたなど、 たくさんのご縁をつくることができたのではないかと思っております。 2023年9月29日をもって、FINDJOB!はその歴史の幕を下ろすこととなりましたが、 今後も、IT/Web業界やクリエイティブ

    エンジニアドリブンどころじゃなかった!「全員ドリブン」なマネーフォワードの日常。 - 株式会社マネーフォワードの転職・求人情報 | Find Job !
    yukiasai
    yukiasai 2015/08/18
  • ユーザファーストの嘘

    ユーザファーストと聞いて、何を思い浮かべるだろうか?よく、ユーザの声をしっかり聞いていないからユーザファーストではないとか、顧客第一ではない、なんて話を聞くけど、それは全くのナンセンスだ。 ユーザは自分のほしいモノはわかっていないし、無責任まず大前提として、ユーザは自分がほしいものは分かっていない。いくらグループインタビューを重ねても、そこからipodは生まれなかっただろうし、Appleもユーザヒアリングはしないことで有名だ。それから、ユーザに「このボタンの位置についてどう思いますか?」と問われれば、「そうですね、もっと右にあったほうがいいと思います」と、意見を言わないと!いう善意から、責任も伴わない思いつきの意見をどんどんいう。だから、ユーザに「どう思うか」と聞くのは愚の骨頂だ。 長期的視点と短期的視点それから、ユーザファーストという時に、それはユーザにとって短期的にいいものか、長期的に

    ユーザファーストの嘘
    yukiasai
    yukiasai 2015/08/11
  • エンジニアはなぜマックが好きなのか? - Money Forward Developers Blog

    エンジニアはなぜマックが好きなのか? マックといってもマクドナルドの事ではない。あるいはスマイル党総裁のマック赤坂氏の事でもない。 そういえば、マック赤坂氏はマクド赤坂氏に改名して大阪市長選に出馬することを決めたらしい。 関西ではマクドナルドの事をマックではなく、マクドと略されているのは有名な話である。 どうも。エンジニアの中出です。 私は40歳の大台に差し迫ったアラフォーエンジニアであり、自他ともに認める中年エンジニアでもあります。 今日は Apple Inc. の Mac をネタにしてみようと思います。 1. 背景 私はこれまでPCといえば、Windowsを使い続けていました。 他に浮気しようと思ったことは一度もなかったし、そもそも現実的ではなかった。 仕事ではWindows 95ぐらいから使い続けていました。 当時はOSそのものの安定性が問題になることが多かったですが、Windows

    エンジニアはなぜマックが好きなのか? - Money Forward Developers Blog