タグ

2017年11月2日のブックマーク (13件)

  • App Extensions - Swiftサラリーマン

    iOS8から実装された新しい機能です。機能の一つとしては、画像やWebの共有ボタンを押した時に画面の下からビヨーンと表示されて、メッセージ、メール、Twitter等と 簡単に連携できる様になったりします。それ以外にも、別アプリを起動させたり、アプリ間でドキュメントを共有したりと、様々な事が行えます 以下のような機能があります。 Share:写真、動画、ウェブサイト等を共有できる機能 Today:ウェジェットの「今日」に表示する機能。配送情報、最新ニュース等の通知に。 Photo Editing:自分でカスタマイズしたフィルターをカメラ機能に反映 Custom Keyboard:カスタムキーボードの作成。(ただし文字補完はユーザ頼み) File Provider:他のアプリからもアクセス可能な保存スペースの拡張 Actions:アクションシートにカスタムボタンを追加。翻訳させたり、Wish

    App Extensions - Swiftサラリーマン
    nilab
    nilab 2017/11/02
    App Extensions - Swiftサラリーマン
  • iOSアプリ間でのデータ連携まとめ - Qiita

    特定のURLスキーム(mail:等)を指定して、該当するアプリケーションを開く。受け渡しできるのはURL文字列のみ。

    iOSアプリ間でのデータ連携まとめ - Qiita
    nilab
    nilab 2017/11/02
    iOSアプリ間でのデータ連携まとめ - Qiita
  • Go での非同期処理 その3 - Qiita

    Go での非同期処理の時に、非同期処理をキャンセルしたいときはどうしたらいいだろう? Context and Cancellation of goroutines のサンプルがとても素晴らしかったので、自分なりに変更して書いてみる。 go routine のキャンセル Go routine のキャンセルは、Package contextを使うと大変便利。デッドラインとか、タイムアウトとか、非同期のキャンセル系をうまく扱うためのものらしい。 早速単純なサンプルを書いてみた。 package main import ( "context" "fmt" "sync" "time" ) var ( wg sync.WaitGroup ) func work(ctx context.Context) error { defer wg.Done() for { select { case <-time

    Go での非同期処理 その3 - Qiita
    nilab
    nilab 2017/11/02
    Go での非同期処理 その3 - Qiita
  • iOS9からiPadのキーボードの高さを計算する方法が微妙に変わってた - Qiita

    @objc private func keyboardDidShow(_ sender: NSNotification) { if let dic: Dictionary = sender.userInfo { if let value = dic[UIKeyboardFrameEndUserInfoKey] as? NSValue { print("height=\(value.cgRectValue.height)") } } } iOS8辺りまではこんな感じでCGRectのheight値をそのまま信じてもオッケーでしたが、iOS9からは外部キーボードを使ったときに、ショートカットバー(?)が出るようになったせいか、上記のものだと誤った高さになってしまいます。

    iOS9からiPadのキーボードの高さを計算する方法が微妙に変わってた - Qiita
    nilab
    nilab 2017/11/02
    UIKeyboardFrameEndUserInfoKey 「画面の高さからCGRect.minYを引いた値を使うのが良さそう」「height = UIScreen.main.bounds.height - value.cgRectValue.minY」
  • Foodcritic - A lint tool for your Chef cookbooks

    About Foodcritic Foodcritic is a helpful lint tool you can use to check your Chef cookbooks for common problems. It comes with 112 built-in rules that identify problems ranging from simple style inconsistencies to difficult to diagnose issues that will hurt in production. Various nice people in the Chef community have also written extra rules for foodcritic that you can install and run. Or write y

    nilab
    nilab 2017/11/02
    Foodcritic - A lint tool for your Chef cookbooks
  • [Go] ゴルーチン・チャネル ザックリ説明用

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    [Go] ゴルーチン・チャネル ザックリ説明用
    nilab
    nilab 2017/11/02
    _[Go] ゴルーチン・チャネル ザックリ説明用 · GitHub
  • chanの使い方パターンメモ。

    chan使用パターンを記録するよ! chanは強力な仕掛けなんだけど、 道を踏み外すと道半ばで刺さる。 なので良かったパターンをメモっとく。 chanを扱う役割は5つある。 makeする役(maker) writeする役(writer) readする役(reader) closeする役(closer) 破棄する役(GC) これらを踏まえて抑えるべきポイントは read,write,closeは時間的にmakeからGCまでの間にしか存在してはいけない。 readerとwriterは基別のgoroutineであること。 closeはreaderに終了を通知するためのもの。 readerを終了させる最善の手はclose。 基writerとcloserは一蓮托生。 そうでなければcloseは使うべきでない。 chanは同期のための仕組みで、Mutexなどを併用するのは使い方がおかしい。 cha

    nilab
    nilab 2017/11/02
    chanの使い方パターンメモ。 - GolangRdyJp
  • Go言語で非同期処理の結果を受け取る - Qiita

    Go言語にはgoroutineというものがあり、複数のタスクを並行(Concurrent)に実行したい場合に役立ちます。 またGo言語では、ライブラリなどのAPIは基的に同期版を提供し、非同期で処理したい場合は呼び出し側がgoroutineで非同期化するのが一般的です。 そこで、goroutineを使って関数を呼び出し、その結果を得るための実装方法について、自分なりに考えてみたので、ここにまとめておきます。 戻り値がない 戻り値がなく、処理が終わっていればよい場合: // boolでもよいが空struct done := make(chan struct{}, 0) go func() { // 何か処理をする close(done) }() // chanがcloseされるまでブロックする <-done 値の受け渡しがない場合はシンプルです。 Tips: 空structについて 値の受

    Go言語で非同期処理の結果を受け取る - Qiita
    nilab
    nilab 2017/11/02
    Go言語で非同期処理の結果を受け取る - Qiita
  • Go言語チュートリアル(part10) - golang.jp

    Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 チュートリアルの翻訳、10回目です。 前回までの訳はチュートリアル[日語訳]にまとめてありますのでごらんください。 素数 やっと、プロセスと平行通信プログラミングのところまで到達しました。 これは重要なセクションであり、このトピックにはある程度の知識が必要です。 「素数の篩(ふるい)」と呼ばれる古くから存在する素数を取得するプログラムがあります。 (エラトステネスの篩はここで扱うアルゴリズムより効率的ではありますが、このセクションでは並列性を重要視しています) このアルゴリズムでは、まず2以上の自然数を順番に並べて数列を作成します。そこから素数をひとつづ取り出し、その素数の倍数すべてを

    nilab
    nilab 2017/11/02
    Go言語チュートリアル(part10) - golang.jp
  • 実践Go言語(part12) - golang.jp

    Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 実践Go言語(Effective Go)の翻訳、12回目です。 前回までの訳は実践Go言語[日語訳]にまとめてあります。 並列性 通信による共有 並列プログラミングは大きなトピックではありますが、ここではGo言語の仕様の中で特徴的な部分だけを取り上げます。 一般的な環境における並列プログラミングは、共有変数にアクセスするためには適切な実装が厳密に求められるため扱いにくいものでした。Go言語では、共有変数をチャネル上で引き回し、実行中の異なるスレッドからは実際に同時アクセスさせないという今までとは異なる手法を推奨しています。あるタイミングで値にアクセスできるゴルーチンはひとつだけなので、

    nilab
    nilab 2017/11/02
    実践Go言語(part12) - golang.jp
  • Goでコルーチンを再現する方法

    質問の "コルーチン" がコルーチンが一般に表す概念である ユーザ (プログラマ) が yield を明示的に呼ぶことである時点で処理を中断して他の処理にコントロールを移行する仕組み 逆にユーザが明示しない限りは処理が切り替わることはない, non-preemptiveな並行処理の仕組み のことを指すのであれば、goroutine はユーザが処理の切り替わりのタイミングや次に実行されるべき処理を明示的に指定することはできないので"コルーチン"ではないですし、コルーチンを実現するには現在の処理の実行状態(スタックとかコードの実行位置など)をどこかに保存する仕組みが必要なのでそのような仕組みが処理系に用意されていなければユーザがライブラリをいくら工夫しても実装できないので、Go では"コルーチン"は実現できないというのが答えかと思います。 もし質問のコルーチンの意図が、「関数の実行を途中で中断

    Goでコルーチンを再現する方法
    nilab
    nilab 2017/11/02
    go - Goでコルーチンを再現する方法 - スタック・オーバーフロー
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    nilab
    nilab 2017/11/02
    お気楽 Go 言語プログラミング入門
  • Go 言語の goroutine と channel についての考察 - Qiita

    channel を使うと、オペレータ <- を使って goroutine 間で値の送受信ができます。channel にはどういう型の値を扱うのか、キューをいくつ設けるかを指定することができます。マルチスレッドプログラミングの難点である排他制御や同期化を、簡単な構文で容易に実現できます。 goroutine とスレッド まずはスレッドとの違いについて考えてみましょう。FAQ に Why goroutines instead of threads? という質問がありますが、要約すると「OS のシステムスレッドよりも小さなメモリ使用量で済む」と書いてあるように見えます。実際、スレッドのデフォルトスタックサイズは Windows だと 1 MB、Linux だと 2 MB なので、数キロバイトで済む goroutine に比べると、10 KB だとしても 100 〜 200 倍の違いがあります。

    Go 言語の goroutine と channel についての考察 - Qiita
    nilab
    nilab 2017/11/02
    Go 言語の goroutine と channel についての考察 - Qiita