タグ

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

  • ObjC, Swiftが混在している環境で使える小技など - Qiita

    ex-mixi Advent Calendar 2017 17日目の記事になります。 株式会社ミクシィには2009年に新卒で入社し、2014年の2月に転職しました。 同期は私含めて10人でしたが、転職したり、起業したり、ミクシィに出戻ったり、海外で生活してまた日に帰ってきていたりとそれぞれ元気にやっているようで何よりです。 私の近況としては転職後、子供が生まれて現在3歳です。来年の頭にもう1人生まれる予定です。 子供を育てるのは大変ですが、日々の成長が著しく人間ってスゲー!と感じる日々を送っています。 つい先日も出張で3日ほど家を空けていたのですが帰宅後の翌朝に子供と話すと、最後に話した時よりも流暢にお話出来る様になっていて感動しました。 現職ではiOSアプリの開発やiOSアプリ向けのCI環境のメンテナンスなどをしています。 残念なことに他の記事の様なエモいこと1が思いつかなかったのでO

    ObjC, Swiftが混在している環境で使える小技など - Qiita
  • jq コマンドを使う日常のご紹介 - Qiita

    jq コマンドとは http://stedolan.github.io/jq/ JSONから簡単に値を抜き出したり、集計したり、整形して表示したりできるJSON用のgrepとかawkみたいなコマンドです。 WebサービスがJSONを吐いたり、AWS CLIが JSON を吐いたりする現代社会で大変便利なコマンドです。 マニュアル だいたいここ読めばOK. http://stedolan.github.io/jq/manual/ あ、これで、終わってしまう。だけど気にせず進めます。 簡単な例 まず、空気をつかみましょう。 以下jqコマンドの記法を見ていきます。JSON { "hoge": "value" } があった場合、 . がルート {} を表します。.hoge で "value" を表現します。だいたいこんな感じです。 ただの整形 しばらく下記のJSONを例に進めます。itemsには配

    jq コマンドを使う日常のご紹介 - Qiita
    NetPenguin
    NetPenguin 2017/12/20
    JSON の文字列を入力として柔軟な grep や集計ができるコマンド jq
  • Webアプリケーションフレームワーク導入時に考慮すべき22の観点 - Qiita

    記事では、 チームによる持続的に変更可能なWebアプリケーションの開発を目標に、フレームワーク導入時に考慮すべき22の観点を紹介する。 フレームワークによって特徴は異なるが、番導入にあたって、考慮すべきポイントはあまり変わらないので、極力フレームワーク1に依存しすぎないよう配慮する。また、話をシンプルにするため、REST APIを提供するアプリケーションを題材とする。 前提 ソフトウェアのエントロピー ソフトウェアがエントロピー増大の法則を避けられないことを、体感している開発者は多いだろう2。普通にアプリケーション開発を続けると、開発スピードは鈍化し、品質は低下してバグが増え、開発者からは技術的負債への怨嗟の声が聞かれるようになる。エントロピー増大というフォースは極めて強力で、意思を持って立ち向かわなければ、容易にダークサイドに堕ちてしまう。 関心事の分離 大規模Webアプリケーション

    Webアプリケーションフレームワーク導入時に考慮すべき22の観点 - Qiita
    NetPenguin
    NetPenguin 2017/12/20
    いろいろな記事へのリンクが豊富. 対象範囲も広い
  • Macに別れを告げて、クラウド中心の開発生活を始めるまで - Qiita

    昨年あたりから、Macやめたい病を患っていたのですが、2度の故障を経て、重たい腰を上げました。別にWindows使いたいわけもなく「ローカルが煩わしい」だけなので、Windowsアプリは一切インストールしていません。で、どうやって暮らしてるの? というお話です。 TL;DR このあたり↓を組み合わせていけば、クラウド生活可能: GCP (or AWS) Codeanywhere (or Koding or Cloud9) VPCネットワーク + VPN (IPsec+L2TP) + DNS Figmaほか、Webサービス各種 追記・この記事を書いていたら、AWS Cloud9が発表されました。選択肢が増えて何よりです。 はじめに 稿は、筆者が「Mac断ち」あるいは「ローカルマシンから解脱(げだつ)」する過程で見えてきた、ベスト(かも)プラクティス集に近いものです。 よく使うテキストエディ

    Macに別れを告げて、クラウド中心の開発生活を始めるまで - Qiita
  • Rubyのtrueとfalseの話 - Qiita

    この記事は、技術同人誌としてまとめるはずだった原稿をほぼそのまま転載しています。諸事情により向こうかなり長い間同人誌即売会に売り手として参加することが難しくなったためです。 長いですが、お楽しみいただければ幸いです。 まえがき このは、Rubyコミッタである卜部昌平に、そのである私、卜部一恵がRubyのtrueとfalseについて突っ込んで聞いてみた話です。文は両者の対話形式で進んでいきます。 私は昌平と同じ大学同じ研究室に所属していたのでプログラミングについての基礎は一応ありますが、エンジニアとして職を得たことはありません。つまり、プログラミング初級者です。このはそのくらいのレベル感のだと思います。 私自身が初級者なりにRubyを使っていて、if文が思った通りに動かない、そんなときに抱いた疑問からこのが生まれました。 同じような疑問を抱いている方の一助になれば幸いです。 は

    Rubyのtrueとfalseの話 - Qiita
    NetPenguin
    NetPenguin 2017/09/28
    Boolean型がないのか…… あと、nil==falseが真にならないのは、まあたしかにnilはfalseと同じではないので(同じなのだったらnilというものは不要だしね)おかしくはないけど、真偽値型への暗黙の変換が発生しないのだなと。
  • nginxのupstreamコンテキストで有償のresolveオプションを使わずに動的にDNS解決する - Qiita

    TL;DR nginxからリバプロ先のバックエンドがELBの場合は、IPアドレスがキャッシュされないようにDNS名を動的に解決しないといけない。 serverコンテキストならset変数使うハックで回避可能だけど、この技はupstreamコンテキストで使えない。 nginxのupstreamコンテキストでresolveオプション使おうと思ったら有償版の商用機能だった罠。 upstreamコンテキストで必要な負荷分散しつつ、Unixドメインソケットを1段挟んで、serverコンテキストでset変数するハックと組み合わせると動的にDNS解決できた。 経緯 nginxをリバースプロキシとして使っていて、バックエンドにELBみたいな構成の場合、DNS名を起動時に名前解決してIPアドレスをキャッシュしてしまうので、IPアドレスが変わると繋がらなくなるというのはよくあるハマりポイントみたいです。 で、調

    nginxのupstreamコンテキストで有償のresolveオプションを使わずに動的にDNS解決する - Qiita
  • fluentdを導入時にまず知っておいたほうがよさそうなこと(インストール、監視、HA構成、チューニングなど) - Qiita

    fluentdを導入時にまず知っておいたほうがよさそうなこと(インストール、監視、HA構成、チューニングなど)CentOSFluentdElasticsearchtd-agent fluentdを使う時にまず知っておいたほうがよさそうなこと はじめに 朝からElasticsearchへのデータの投げ込み方を考えていました。 データベースやメッセージキューなどにデータを投げ込んでおいて、ニアリアルなバッチでElasticsearchに投げ込むよりも、fluentdを使う方が圧倒的に簡単で信頼性が高いものができますね。自分で作りこむのがバカらしくなりますね。 ということで、fluentd利用時に気を付けておきたいことについて調べてみました。内容は公式ドキュメントの内容をベースに自身で調べたことを追記しています。公式ドキュメントへのリンクも貼ってありますので適宜そちらをご覧いただければと。 環境

    fluentdを導入時にまず知っておいたほうがよさそうなこと(インストール、監視、HA構成、チューニングなど) - Qiita
    NetPenguin
    NetPenguin 2017/06/16
    設定内容など。一度ローカルのtd-agentに送って、キューイングさせるとか、そういう話も。
  • OAuth 2.0 + OpenID Connect のフルスクラッチ実装者が知見を語る

    はじめに この文書では、OAuth 2.0 + OpenID Connect サーバーをゼロから一人で実装した開発者(私)が、得られた知見について書いていきます。基的には「実装時に考慮すべき点」を延々と述べることになります。 そのため、この文書は、「素早く OAuth 2.0 + OpenID Connect サーバーを立てる方法」を探している方が読む類のものではありません。そのような情報をお求めの方は、「Authlete を使って超高速で OAuth 2.0 & Web API サーバーを立てる」を参照してください。そちらには、「何もない状態から認可サーバーとリソースサーバーを立て、アクセストークンの発行を受けて Web API をたたいて結果を得る」という作業を、所要時間 5 ~ 10 分でおこなう方法が紹介されています。 文書のバイアスについて 私は、OAuth 2.0 + Ope

    OAuth 2.0 + OpenID Connect のフルスクラッチ実装者が知見を語る
  • コマンド入力一撃で端末を大量に分割してタスクを瞬殺するtmux-xpanes - Qiita

    この記事の要点 コマンド一撃でtmuxのウィンドウを大量に分割してコマンドの同時実行を助けるxpanes(イクスペインズ)というコマンドを作りました。一斉に複数のホストにpingを送ったり、sshでログインして同時操作したり、一斉に複数のファイルをtail -fしたりするのに使えます。 操作ログの保存機能、標準入力を受け取ってコマンドを作成する機能などなど、機能も充実していて便利です。tmuxを知らない方でも単純な例だけであれば覚えることは少ないので、ぜひお試しを。 下記のアニメを見ていただければ、どんな感じのものを作成したのかお分かりいただけると思います。 Github: https://github.com/greymd/tmux-xpanes 背景 tmuxを使っている方は、どのような用途でtmuxを役立てることが多いでしょうか?開発の効率を上げるため1、あるいは複数のウィンドウ2や

    コマンド入力一撃で端末を大量に分割してタスクを瞬殺するtmux-xpanes - Qiita
  • Lua 5.1 言語仕様メモ - Qiita

    Lua 5.1 リファレンスマニュアル の第2章と Programming in Lua プログラミング言語Lua公式解説書 の気になった部分のメモです。 間違いや誤解があるかもしれないので、正確な情報はリンク先か原文を参照することをお勧めいたします。 書籍の方は通販で手に入れるのが難しいようなので、リアル書店で見つけた場合は入手しておくとよいかもしません。 -- メモ 値と型 Lua は動的型付け 変数は型を持たない 値が型を持つ 型定義の構文はない 全ての値がファーストクラス いかなる値も変数に格納できる 他の関数に引数として与えられる 全ての値は関数の戻り値にできる 基型8種 nil nil値の型 というか、この型の値は nil しかない 役に立つ値がない、ということを表す テーブル要素の削除や、グローバル変数の削除にも使われる ただの Null値 という感じではない ブーリアン

    Lua 5.1 言語仕様メモ - Qiita
  • うまくメソッド名を付けるための参考情報 - Qiita

    クラス名編をつくりました あるメソッドを定義しようとするとき、そのメソッドを使う人達が名前からどんなことをするか理解できるようにするには、メソッドの内容に応じて適切な情報量の命名が求められます。 この記事では、メソッド名に用いることでどのような情報が提供できるかを見ていきたいと思います。 真偽値を返すメソッド 場所 単語 意味 例

    うまくメソッド名を付けるための参考情報 - Qiita
  • ぜんぶTIME_WAITのせいだ! - Qiita

    課題 突然キャンペーンとかの高トラフィックが来る!とか言われると色々困ることはあるものの、今のご時世クラウドだからスペック上げときゃなんとかなるでしょ。ってとりあえずCPUとかメモリあげて見たものの、キャンペーンが始まったら意外と早くブラウザからつながらない!!とか言われたりする。 CPUもメモリもそんなに負荷は特に高くもない。調べてみたらTIME_WAITが大量にあった。 とりあえず何とかしたい TIME_WAIT数をコマンドで確認 $ netstat -anp|grep TIME_WAIT __(snip)__ tcp 0 0 192.168.1.1:80 192.97.67.192:56305 TIME_WAIT - tcp 0 0 192.168.1.1:80 192.63.64.145:65274 TIME_WAIT - tcp 0 0 192.168.1.1:80 192.39

    ぜんぶTIME_WAITのせいだ! - Qiita
  • いまさら聞けないLinuxとメモリの基礎&vmstatの詳しい使い方 - Qiita

    さくらインターネット Advent Calendar最終日は、硬派にLinuxのメモリに関する基礎知識についてみてみたいと思います。 最近はサーバーを意識せずプログラミングできるようになり、メモリの空き容量について意識することも少なくなりましたが、いざ低レイヤーに触れなければいけないシチュエーションになった際に、OSを目の前に呆然とする人が多いようです。 基的にLinux のパフォーマンスについて、メモリをたくさんつめばいいとか、スワップさせないほうが良い とか、このあたりは良く知られたことだと思います。 ただ、なんとなく ps コマンドや free コマンド などの結果を見るだけでなく、もう少しメモリのことについて掘り下げてみてみたいと思います。 メモリとキャッシュ Linux におけるメモリの状態を大きく分けると「使用中のメモリ」「キャッシュ」「空きメモリ」「スワップ」の 4 つに分

    いまさら聞けないLinuxとメモリの基礎&vmstatの詳しい使い方 - Qiita
    NetPenguin
    NetPenguin 2016/12/28
    なるほど…… > “…、上記のとおり書き込みは遅延対応が行えることから HDD 動作を必ずしも待たなくて良いのに対し、読み込みはキャッシュに存在しなければ HDD へのアクセスが発生するため、…”
  • TCPの状態遷移 - Qiita

    TCPの状態一覧 LISTEN(聴取) TCPモジュールはリモートホストからのコネクション要求を待っている。パッシブオープンの後で入る状態と同じ。 SYN-SENT(SYN送信済み) TCPモジュールは自分のコネクション要求の送信を終え、応答確認と対応するコネクション要求を待っている。 SYN-RECEIVED(SYN受信済み) TCPモジュールは同期(SYN)セグメントを受信し、対応する同期(SYN/ACK)セグメントを送って、コネクション応答確認を待っている。 ESTABLISHED(確立済み) コネクションが開かれ、データ転送が行える通常の状態になっている。受信されたデータは全てアプリケーションプロセスに渡せる。 FIN-WAIT-1(FIN待機1) TCPモジュールはリモートホストからのコネクション終了要求か、すでに送った終了要求の応答確認を待っている。 FIN-WAIT-2(FI

    TCPの状態遷移 - Qiita
  • DDDで設計するならCQRSの利用を検討すべき - Qiita

    タイトルに書かれていることで全てなのですが、DDDとCQRSの併用について強調している日語の情報が少ないので、軽くまとめておきます。 CQRS+DDD CQRS(コマンドクエリ責務分離)とは、サーバの機能を「コマンド」(副作用あり)と「クエリ」(副作用なし)で完全に分けちゃおう、という考え方です。そもそも「コマンド」と「クエリ」ではあらゆる要件が異なります。 一貫性: 「コマンド」は整合性のある処理が必要、「クエリ」はあまり気にする必要なし ストレージ: 「コマンド」側は正規化してデータを保存したい、「クエリ」側は非正規な方が効率的 スケーラビリティ: 「コマンド」は全体の負荷の中で占める割合が少ない、「クエリ」は負荷が大きい なので分けちゃうわけですが、 コマンド側 複雑なビジネスロジックが絡むので、ドメイン駆動が活躍 クエリ側 複雑なビジネスロジックがないので、ドメイン層はスキップ

    DDDで設計するならCQRSの利用を検討すべき - Qiita
  • 不安とストレスから解放される見積りとスケジュール方法 - Qiita

    エンジニア組織を強くするためのを出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 はじめに 何かはじめてのことをする場合、人はとても「不安」を感じます。人は未来を考えることができる生き物です。その特異な能力ゆえに、未来に起こるかもしれないよくないことを考えると「不安」を感じてしまうのです。 仕事プロジェクトなどは、「間に合わなかったらどうしよう」とか「この仕事はちゃんと終えられるのだろうか。」など、未来のことを

    不安とストレスから解放される見積りとスケジュール方法 - Qiita
    NetPenguin
    NetPenguin 2016/09/09
    スケジュール管理について。
  • 今のうちに知っておきたい、かゆい所に手が届くJava9の新機能7選 - Qiita

    サイバー・バズの@kashira2339です。 Java9の正式公開が迫っていますね!(何度か延期されていますが。。。) サイバー・バズでは、Javaを使ったプロダクトがいくつか開発されています。 なので、社員一同Java9へのアップデートにウキウキしています! 今回は先取りして、 Java8でムズムズしていた部分を解決するJava9の新機能の数々を 同じくJava9の新機能であるJShellを使って試していきたいと思います。 今回はMac OSXでの実践です。 ことはじめ 1. JDK9のインストール 手順 図

    今のうちに知っておきたい、かゆい所に手が届くJava9の新機能7選 - Qiita
    NetPenguin
    NetPenguin 2016/09/09
    Immutableコレクション生成APIとOptional周りの改善が特にうれしい。Jigsawは欲しかった機能ではあるけど、実際のところどのくらい嬉しいかは実案件でつかってみてから印象がかわるかも。
  • トークンを利用した認証・認可 API を実装するとき Authorization: Bearer ヘッダを使っていいのか調べた - Qiita

    トークンを利用した認証・認可 API を実装するとき Authorization: Bearer ヘッダを使っていいのか調べたAPIOAuthWeb TL;DR HTTP でトークンを利用した認証・認可をする手法として RFC 6750 がある OAuth に限らず、トークンを利用して認証・認可する機構の一部として Authorization: Bearer ヘッダを使うことができる 使い方について詳しくはこの記事の下のほうに書いた 要求 トークンを利用した認証・認可機構を持つ API を作りたい クライアントがトークンを HTTP リクエストに含めて送信し、サーバはトークンを検証してリソースへのアクセスを許可したい Authorization: Bearer トークン ヘッダでトークンを送る API あるよね、ああいうやつ 疑問 Authorization: Bearer ヘッダは OA

    トークンを利用した認証・認可 API を実装するとき Authorization: Bearer ヘッダを使っていいのか調べた - Qiita
  • Spring Security 4.1 主な変更点 - Qiita

    今回はリリースから約1ヶ月経過したSpring Security 4.1の主な変更点を紹介します。「Spring 4.3の変更点」と同様に、公式リファレンスの「What’s New in Spring Security 4.1」で紹介されている内容を、サンプルコードを交えて具体的に説明していきます。(逆にいうと、「What’s New in Spring Security 4.1」にのっていない変更点は紹介しないので、あしからず・・・ ) そもそもSpring Securityって・・・という方は、「TERASOLUNA Server Framework (5.x)のガイドライン」を読もう!!Spring Secuirty 4.0ベースでのSpring Securityの基的な使い方、スタートアップ用のチュートリアル、具体的なセキュリティ要件を充たすための実装サンプルが提供されており、体

    Spring Security 4.1 主な変更点 - Qiita
    NetPenguin
    NetPenguin 2016/08/20
    非常にわかりやすく網羅してくれている
  • 綺麗なAPI速習会 - Qiita

    Wantedly Engineer blogに速習会資料を閲覧向けに再編しました! ぜひご覧いただけると幸いです! 記事は、綺麗なAPI速習会@Wantedlyの資料として作成されたものです。 同時にこちらのコードも参照してください。 マイクロサービス 流行りのマイクロサービス、何がいいのか 各々自由な言語やArchitectureでサービスを立てられる 障害の影響が部分的 変化に強い 個別デプロイ etc... マイクロサービス化をすすめるにあたり、やりとりは全てAPIで行う 内部のAPIであっても外部に公開できるようなクオリティのAPIを作成し、それを元にサービスを作っていくことが重要 APIGatewayとBFF API Gateway Pattern 公式サイトより 「見た目はモノリシック、実装はマイクロサービス」 一箇所見に行けば全てのAPIを見つけられる 細かい権限管理も可

    綺麗なAPI速習会 - Qiita