タグ

ブックマーク / qiita.com (561)

  • LocalBroadcastManagerによるサービスとの同期通信 - Qiita

    同プロセス内でのActivityとService間のローカル通信に便利な LocalBroadcastManagerというクラスがサポートライブラリにあります。 このクラスを使うとAIDLを利用せずにActivityとServiceの同期通信が簡単に行えます。 AIDLを使うまでもないような連携をしたい場合に便利だと思います。 LocalBroadcastManager#sendBroadcastSync(Intent) 同期通信するには LocalBroadcastManager#sendBroadcastSync(Intent) メソッドを使います。 sendBroadcast(Intent)と基的には同じですが、このメソッドを使うと呼び出し元のスレッドをブロックし 直ちにレシーバーにIntentを投げます。 このメソッドを使い、受け取り側のレシーバーでも同じように sendBroa

    LocalBroadcastManagerによるサービスとの同期通信 - Qiita
  • Android はじめてのFragment

    この記事はとある勉強会で身内のために作成したもので、Fragmentをまだあまり使ったことの無い方が、どうしてFragmentを使うのかと、どこから始めればいいのかをまとめたものになります。 Fragment(フラグメント)とは? Fragmentとは、簡単にいうと、コンテンツとライフサイクルを持ったビューです。 プログラミングでいうライフサイクルとは、インスタンスが作成されてから、それが捨てられるまでの一連の流れのことをいいます。 Androidでは、例としてActivity(アクティビティ)だとインスタンスが作成される際にonCreateメソッドが呼ばれ、破棄される際にonDestroyメソッドが呼ばれ、他にも画面の状態によって、onResume・onStart・onPause・onStopなどのメソッドが呼ばれます。 このように、ライフサイクルに応じて呼び出されるメソッドを持っている

    Android はじめてのFragment
  • dev.toと阿部寛のホームページについてちゃんと計測させてくれ - Qiita

    Twitter見てたら、以下のツイートを見た。 数時間後、dev.toと阿部寛のホームページどっちが速いですか?というブログがTLに現れた。 GoogleのPageSpeed Insightsで測って阿部寛のホームページの方が早かったという結論付けてよいのかという疑問が浮かび、webpagetest.orgで計測することにした。 設定 阿部寛のホームページに関しては、Tokyoリージョンにあるものとする。 そして、dev.toはNY発らしいので、サーバーの設定をNYにして測定する。 The platform was created in 2016. The twitter account, @ThePraticalWeb 評価結果 Webpagetest - 阿部寛のホームページ Webpagetest - dev.to

    dev.toと阿部寛のホームページについてちゃんと計測させてくれ - Qiita
    gologo13
    gologo13 2017/11/17
  • Android の AlarmManager を改めて整理してみる - Qiita

    AlarmManager といえば、Android において文字通りアラームやリマインダを実装する際に用いたり、或いはバックグラウンドで定期的に行いたい処理のスケジューリングに用いたり(こちらは JobScheduler に取って代わられた感じですが)、割りと使用する機会が多いものです。 同時に、Android歴史において、バージョンアップに伴って挙動が変更になったりと、割りと罠も多い存在だったりします。 挙動が変更になるたびに「変更への対応方法」を記した記事が出回るので助かるのですが、「今からAndroidアプリの開発を始めます!」という人にとってはそれらを全部拾い集めるのも大変でしょうし、ここらで AlarmManager の変化の歴史と共にざっくりまとめてみたいと思います。 そもそも登録内容が永続化されない罠 AlarmManager を使い始めて最初に面らう点。 AlarmMa

    Android の AlarmManager を改めて整理してみる - Qiita
  • 構造の複雑さとVuex書き分け - Qiita

    Vue.js Advent Calendar 2016 14日目です。 Vue2 + Vuex2の組み合わせはVueを正しくfluxに導き、より巨大なアーキテクチャを管理できるようになった。 逆に言うとVueの気軽さが失われてしまったのでは、という印象を持つ方もいらっしゃるのでは。 しばらく使ってみたら肩の力の抜き方が分かってきたので、構造の複雑さ別に書き方をまとめてみる。 このポストは

    構造の複雑さとVuex書き分け - Qiita
  • とりあえずド素人が読むべきブロックチェーン入門論文・書籍・サイト - Qiita

    どうも。よくブロックチェーン興味あるけどよくわからん、という声を某所から聞くので、僭越ながら自分が勉強するために使っている参考文献を紹介します。 今後自分が新しく読むたびに追加していく予定です。 色々と追加していって、だんだん初心者向けじゃなくなっている気がしますが、各通貨内の小見出しが、上から下に行くに従って内容が難しくなるように並べてあります。 Mastering Bitcoin (書籍) Mastering Bitcoin Mastering Bitcoin(翻訳版) https://bitcoinbook.info/translations-of-mastering-bitcoin 名著中の名著ですね。主にビットコインのブロックチェーンに関する一通りの説明が乗っています。業界では読んでいることが常識と呼ばれるくらいに一般的な書籍となっています。 全部目を通しておいて損はないと思われ

    とりあえずド素人が読むべきブロックチェーン入門論文・書籍・サイト - Qiita
  • JavaScriptフレームワーク選定の議論 - Qiita

    相談内容 既存の管理ツールを新しく作り直すために新しいJSフレームワーク/言語使いたいのですが、何を選んだらよいでしょうか? ここで選んだものは今後新しく作る時にも使用していく予定のため、学習コストよりメンテナンスしやすいものを選びたいと考えています。 利用者は社内外で特定の権限を持った人のみであるため、サーバサイドレンダリングはしない予定です。 言語は型があるものを利用したいのですが、TypeScriptとFlowのどちらがよろしいでしょうか? 時間に余裕があれば、テストフレームワークやビルドツールについてもお聞きしたいです。 現在のページ/チーム jQueryなどで書かれている部分が多いですが、変更を加えることが難しくメンテナンスコストが高いです。 サーバサイドをやってる人が片手間で書くJavaScriptといった状況です。 今回新規で数ページを追加する必要があるため、何を利用すれば良

    JavaScriptフレームワーク選定の議論 - Qiita
  • ES2015(ES6) 入門 - Qiita

    はじめに 今更ですが、ES2015(ES6)で追加された機能や構文に関する備忘録です。 「JSは書けるけどES2015(ES6)はわからないっす...!」といった人達向けの記事です。 入門記事のためイテレータやジェネレータ等のわかりづらかったり、 説明が長くなりそうな機能や構文は割愛しております。 ES2015(ES6)とは ECMASCriptの6th Editionのこと。ECMAScript 6th editionの6を取ってES6と呼ばれていたが、 2015年に標準化されたため正式名称はES2015になった。 正式名称がES2015ならES6という名称を使うのは間違いなのか どちらの名称でも問題はない。 ES6の名称の方がエンジニアコミュニティに中では浸透しているらしく、ES6と記載されていることが多い。 詳細は以下を参考。 ES6 or ES2015 ? 〜WEB+DB PRES

    ES2015(ES6) 入門 - Qiita
    gologo13
    gologo13 2017/11/08
    コンパクトでいい
  • AtomでRailsを爆速開発する環境を作ってみた - Qiita

    経緯 せっかくATOMに乗り換えたし、リアルタイムで更新を反映したいし、なんなら同じ画面でそれ確認したいし、ターミナルも同じ画面で触れるようにしたいし、ショートカット充実させたいしってことで、あわよくば、できるんじゃないかなーと思って調べてたら作れたので共有。いわゆる、「ぼくのかんがえたさいきょうのRails開発環境」ってやつです。 Mac OS 10.10.5 Atom 1.5.3 ※ Win機でこれから話す環境が作れるかの確認はとっていないです。 画面図を確認してみる ①画面左がプロジェクトディレクトリをツリー構造にしたTreeView ②その右にエディタを表示 ③さらに右にウェブビューを置いています。 ④そして下のほうにはターミナルをおいております。 これが爆速開発を可能にする基スタイルであります。 環境構築していこう 1. Packageをぶっこむ 主に使うパッケージはこちらにな

    AtomでRailsを爆速開発する環境を作ってみた - Qiita
  • AtomのVue.js関係プラグインまとめ - Qiita

    AtomのVue.js関係のプラグインをまとめてみました。 language-vue-component vue用のシンタックスハイライトが追加される https://atom.io/packages/language-vue-component vue-autocomplete vue componet用の入力の自動補完 https://atom.io/packages/vue-autocomplete vue-snippets vue用のスニペットが追加される https://atom.io/packages/vue-snippets vue-hyperclick vue componetから定義元へジャンプできる *hyperclickとjs-hyperclickとlanguage-vue-componentがインストールされている必要がある https://atom.io/pack

    AtomのVue.js関係プラグインまとめ - Qiita
  • コンテンツキャッシュとVaryヘッダとnginx - Qiita

    Varyヘッダは前段のキャッシュサーバに対して、指定したヘッダの内容ごとにキャッシュを分ける必要があることを伝えるためのものです。例えばサーバがVary: Accept-Encodingをレスポンスヘッダに付加しておくと、キャッシュサーバはAccept-Encodingヘッダの内容に応じたキャッシュを保持します。 こうすることでクライアントのAccept-Encodingヘッダの内容に応じたキャッシュデータをキャッシュサーバは返すことができるというわけです。 nginxにおけるgzip圧縮とVaryヘッダ さて、題です。上記のような事情からかApacheのmod_deflateやh2oなんかはコンテンツのgzip圧縮を有効にすると、自動的にVary: Accept-Encodingをレスポンスヘッダに付加します。一方我らがnginxは設定ファイルにgzip_vary on;と書かないとV

    コンテンツキャッシュとVaryヘッダとnginx - Qiita
  • [翻訳]サイト信頼性エンジニアリング (SRE) とは何か? - Qiita

    稿は以下で公開されている Ben Treynor 氏と Niall Murphy 氏のインタビュー記事の翻訳です。 https://landing.google.com/sre/interview/ben-treynor.html 免責事項/Disclaimer 稿は 非公式 の翻訳記事です。インタビュアーの Niall Murphy 氏 (@niallm) に翻訳を公開することの許可は取っています。稿の内容に関して Niall Murphy 氏と Google 社は一切の責任を負いません。 Japanese version of the Ben Treynor Sloss interview; thanks @t2y_en 4:33 PM - 27 Jan 2017 誤訳などありましたら私宛に編集リクエストを送って頂けると助かります。 補足事項 文中に英文で引用しているところは、

    [翻訳]サイト信頼性エンジニアリング (SRE) とは何か? - Qiita
  • GitHub APIから学ぶ次世代のAPI実装方式GraphQL - Qiita

    最近公開されたGitHubAPIは、GraphQLという形式に対応しました。今後はこちらが主流になっていくようで、既存のREST APIからGraphQLへのマイグレーションガイドも提供されています。 今回は、このGraphQLについて、実際にGitHubAPIを叩きながらその仕組みを解説していきたいと思います。 GraphQLとは 歴史 GraphQLは、Facebookの中で2012年ごろから使われ始めたそうです。その後2015年のReact.js Confで紹介されたところ話題となり、同年"technical preview"のステータスでオープンソースとして公開されました。その後仕様が詰められ、2016年9月に晴れて"preview"を脱し公式実装として公開されました。これと同じタイミングで、GitHubからGraphQLバージョンのAPIが公開されています。 このあたりの経緯

    GitHub APIから学ぶ次世代のAPI実装方式GraphQL - Qiita
  • Github API が予想以上にいい感じな件 - Qiita

    いまとあるアプリケーションの Web API を設計しているのだが、思った以上にいろいろたいへん。 当たり前だが、APIをただ使うのに比べると10倍以上考えなければならないことがある。 そこである勉強会で教えてもらったのは、「Github API を真似すればいいんじゃね?」という話。調べてみると、すごくシンプルで使いやすい印象。リンクがふんだんにつかわれていて、ハイパーメディアっぽいし。 GitHub API v3 GitHub API が数ある Web API のなかでどのようなポジションにあるのかは寡聞にして知らない。だけど、かなりイケテル部類なのではないか?なにせ、天下の GitHub である。世界のあらゆる優秀なITエンジニアたちの目に毎日触れているのである。おかしな設計の API なんて怖くて晒せないはずだ。ということは、GitHub API をパクって参考にして、Web AP

    Github API が予想以上にいい感じな件 - Qiita
  • rails generate migrationコマンドまとめ - Qiita

    # マイグレーションファイル作成コマンド $ rails generate migration クラス名 # モデル作成 $ rails generate model モデル名 クラス名は何でもOKだけど「アクション+テーブル名」とかが慣例っぽいです。分かりやすければ良いかな。これで /db/migrate/タイムスタンプ_クラス名.rb というファイルが作れる。ここに、スキーマの変更点を記載すればOK。 モデルの新規作成はmodel モデル名。命名規則はモデル名とテーブル名の規約を参照。 generateは g と略すことができるので、ぜひ略そう。 テーブルを作る

    rails generate migrationコマンドまとめ - Qiita
  • kubernetes : kubectlコマンド一覧 - Qiita

    よく使うkubernetesのkubectlコマンド一覧 1) podを作成 kubectl create --save-config -f [Pod定義ファイル] または kubectl apply -f [Pod定義ファイル] とりあえずapplyにしておくのがベター。 applyの場合は、前回実行時とのyaml設定の差分を抽出して、 その差分を反映するらしく、createたけで作成すると差分抽出の ための履歴情報がないため、createだけの後のapplyではエラーとなる。 ただし、create --save-configとしておけばcreateでもOK。 2) rs(Replica Set)を作成 kubectl create --save-config -f [rs定義ファイル] or kubectl apply -f [rs定義ファイル] rsを作成すると、複数のpodを一括管

    kubernetes : kubectlコマンド一覧 - Qiita
    gologo13
    gologo13 2017/10/18
  • Kubernetesのポッドが起動しない原因と対策 - Qiita

    Kubernetesの導入を検討するにあたって、エラーの状況確認から解決に至るまでのオペレーションは押さえておくべき事柄だ。まだ導入に至っていない場合はこういう問題が発生するのかと雑に感じてもらい、導入している場合は問題を解決する際の参考にしてもらえればと思う。 当エントリでは、自分が遭遇した失敗のケースについて原因と解決方法を列挙する。尚、経験ベースなので同じエラーがでても場合によっては別の原因や解決方法があるかもしれない。また、記載したログや設定ファイルのリソース名や値などは適当にマスキングしているので適宜読み替えてほしい。 どのようなタイミングでポッドが起動しなくなるか Kubernetesはポッドが落ちた際に自動的にポッドを再起動するなどのマネジメントを行ってくれる。ただし、ポッドを初めて作る際や、構成を変えたポッドやレプリケーションコントローラをローリングアップデートする際に、誤

    Kubernetesのポッドが起動しない原因と対策 - Qiita
    gologo13
    gologo13 2017/10/18
  • SQL | 分かりにくい JOIN / INNER JOIN / OUTER JOIN / LEFT JOIN / RIGHT JOIN の違い - Qiita

    SQL | 分かりにくい JOIN / INNER JOIN / OUTER JOIN / LEFT JOIN / RIGHT JOIN の違いSQL初心者 SQLJOIN って。 用語がたくさんあって分かりにくいですね。 しかし覚えれば良いのは、実は次の三つだけ です。(当です) JOIN RIGHT JOIN LEFT JOIN これ以外のことは 考えなくて大丈夫 です。 なぜなら、あとはすべて この三つの別名 に過ぎないからです。 分類 INNER JOIN はなんと、1種類だけです。 (驚きましたか?) OUTER JOIN は2種類あります。 そして LEFT と RIGHT に分かれます。 JOIN とは 「内部結合」です。 「結合できなかった行」は返しません。 当の名前は INNER JOIN といいます。 でもそのことは、今は話さなくても良いでしょう。 JOIN

    SQL | 分かりにくい JOIN / INNER JOIN / OUTER JOIN / LEFT JOIN / RIGHT JOIN の違い - Qiita
  • コードレビューの極意。それは「自分のことは棚に上げる」こと!! - Qiita

    はじめに:コードを良くするためなら遠慮は不要 昨日Twitterに投稿した内容が思った以上に拡散されていたので、タイムラインに流れてしまわないようにQiitaにも書いておきます。 内容は上に書いてあるとおりです。 コードレビューはコードの問題点を指摘し、そのコードを良くすることが第一の目的です。 そのため、少しでもおかしいと思った部分は遠慮せずにどんどんツッコむ必要があります。 しかし、レビューする側が「これ、自分もあまりできてないんだよなあ」「お前もできてないじゃん!って言われたら返す言葉もないし・・・」などと思って遠慮してしまうと、コードを改善できるせっかくのチャンスが失われてしまいます。 「自分ができているかどうか」と「そのコードを改善すること」は、それぞれ別の問題です。 なので、レビューする人は自分のことを棚に上げてでも、コードの問題点を指摘する必要があります。 また、レビューされ

    コードレビューの極意。それは「自分のことは棚に上げる」こと!! - Qiita
  • ぼくのかんがえたさいきょうのAPI管理(JWT) - Qiita

    環境 サーバからAPIを叩いてjsonを取ってくるWEBシステム フロントはJavaScript,jQuery,Riotで組まれている。 認証サーバとAPIサーバが同一(マシンもIPもシステムも) 問題点 JWTにjsonはbase64でエンコードされたものであり、暗号化はされていない。 実装によるがLocalStorageに値を入れる事が多いが、LocalStorageはJSから自由に読み込む事が可能なためXSSにより任意のJSが実行された場合は容易にAccess Tokenを盗む事ができる。 ※改ざんされないだけであり、盗まれるたものを利用される恐れはある。 (セッションハイジャック) 解決案 XSS,CSRF対策がしてあるのは大前提 Access TokenをCookieに格納して"HTTP Only"と"Secure"フラグを付ける。 Access Tokenやセッショントークンは

    ぼくのかんがえたさいきょうのAPI管理(JWT) - Qiita
    gologo13
    gologo13 2017/07/10
    面白い