タグ

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

  • 原理原則で理解するDocker - Qiita

    はじめに この記事は、オールアバウト Advent Calendar 2016の23日目のエントリーです。 私、@tajima_tasoからは【原理原則で理解するDocker】と題して書かせて頂きます。 Dockerってそもそも何?ってところから、内部実装部分についても触れています。 Dockerとは何か? まず、Dockerとは何なのか?について軽くおさらいしましょう。 今更聞けないという方も、なんとなくイメージが掴めたら嬉しいです。 何故、今Dockerなのか? Docker ソフトウェア開発を行う環境にいる方々の中で、この言葉を耳にする機会が増えてきているのではないでしょうか? 実際の業務において導入まではしていないとしても、何となく盛り上がっている技術用語であることは肌感覚としてあると思います。 実は、Docker実現のベースとなっているLinuxコンテナという技術自体はずっと前か

    原理原則で理解するDocker - Qiita
    Jxck
    Jxck 2016/12/24
  • SELinux を使おう.使ってくれ. - Qiita

    この記事の目的 SELinux って邪魔者ですか? 「トラブルシュートの時に邪魔だから」「トラブルの元だから」とか言う理由で /etc/selinux/config で SELINUX=disable したり setenforce 0 したりしていませんか? SELinux は理解さえすればとても簡単です. 番環境でファイアウォールと WAF の設定をして満足していないで SELinux を使いましょう. 対象 SELinux を初めて触る人向けです. 玄人の方は他へ... 稿の範囲 稿では SELinux を導入しておしまいです.あくまで「みんな,簡単だからね,使おうね!」と言いたいのです. 当は SELinux の効果を示すために Exploit を仕込んだアプリケーションから root を取って不正にファイルに触るところまでやりたいのですが,これまた別の記事にします. 僕の願

    SELinux を使おう.使ってくれ. - Qiita
    Jxck
    Jxck 2016/12/22
  • CSRFトークン インタビューズ - Qiita

    VAddyとCSRFトークン VAddyは脆弱性診断を実行する際に、CSRFトークンを最新のものに更新しながら動作します。そのため「どのパラメータがCSRFトークンか?」を判断するロジックが存在しています。最近あるフレームワーク(後述)について「CSRFトークンを正しく認識できない」というバグを修正したのですが、良い機会なのでメジャーなフレームワークやCMSを中心にCSRFトークンの実装をざっと追ってみました。一覧にしても面白くないので、仮想インタビュー形式にまとめてあります。GitHub上で軽く追ったものが多いので、最新のバージョンでなかったり、解釈が間違っている箇所があるかもしれません。 それでは、どうぞ。 Ruby on Rails 金床(以下、金)「こんにちは。ようこそ。」 RoR「こんにちは」 金「相変わらずシェア高いようですね。」 RoR「はい、おかげさまで。この間はルマン24

    CSRFトークン インタビューズ - Qiita
  • エンジニアを支える確定申告技術 - Qiita

    出典: 国税庁プレスリリース 平成26年以降は工事業者の台頭によりランキング圏外になってはいますが、エンジニアは高額申告もれが多い職業であることは間違いなさそうです。 確定申告の対象者 そもそもどのような方が確定申告の対象になるのでしょうか この辺は経営ハッカーに上手くまとまっていたので転載します。 1)複数所得がある方 2カ所以上から給与所得がある方や、1カ所からの給与所得であっても、給与と退職以外の所得が20万円以上の場合は確定申告が必要になります。 2)所得が2,000万円以上ある方 1カ所からの給与所得の場合でも、年間の収入金額が2,000万円を超える場合は、確定申告が必要です。 高収入なエンジニア副業をされているエンジニアの方は 収入-経費 が20万円を超えれば確定申告の必要があるので、会計ソフトなどで収支の記録をして確定申告に備えておいたほうがいいです。 申告もれがあるとどう

    エンジニアを支える確定申告技術 - Qiita
    Jxck
    Jxck 2016/12/22
  • Yarn(pkg) はなぜ速いのか気になったのでソースコードを読んでみた - Qiita

    $ node -v v6.9.1 $ npm -v v4.0.3 $ yarn -V v0.17.9 $ rm -rf ~/.npm ~/.yarn ~/Library/Caches/Yarn # キャッシュなどを削除 $ time npm install ... npm install 34.90s user 10.77s system 103% cpu 44.206 total $ rm -rf node_modules $ time yarn install ... yarn install 12.26s user 7.28s system 71% cpu 27.494 total 今回、yarnはなぜ速いかを探ってみたいと思います。 公式の説明 速度に関する部分だけ抜き出してみます。 オフラインモード 一度ダウンロードした package はキャッシュされ二度目はダウンロードされな

    Yarn(pkg) はなぜ速いのか気になったのでソースコードを読んでみた - Qiita
    Jxck
    Jxck 2016/12/22
    npm は本当に読みにくい
  • ググったあとワンクリックで期間指定ができるChrome拡張を作った - Qiita

    (2017/02/04追記) 英語のページのみ検索、ローカル言語(日語等)のみ検索の選択機能を追加しました。英語記事を探しやすくなります。 (2017/01/07追記) 選択肢に新たに「3ヶ月」を追加しました。 www.google.com, www.google.co.uk などほぼすべての地域のGoogle検索に対応しました。 不具合を修正しました。 この記事は Recruit Engineers Advent Calendar 2016 の20日目の記事です。 日々の情報収集で役立ちそうなChrome拡張を作ってみたので、今回はそちらの紹介をします。 これは何 Quick Custom GSearch - Chrome ウェブストア Google検索での検索期間の範囲指定、言語指定をワンクリックに行えるようになるChrome拡張です。 使い方 拡張を入れた状態でいつも通りGoogl

    ググったあとワンクリックで期間指定ができるChrome拡張を作った - Qiita
    Jxck
    Jxck 2016/12/22
    基本的に過去 3 ヶ月がちょうどいいので、ブックマークレットでやってる。 `javascript:location.href += '&tbs=qdr:m3'`
  • 実録!!データ構造リファクタリング -- 僕とメッセージ機能の300日戦争 - Qiita

    みなさんもきっとそうだと確信いたしておりますが、プログラマというのは、どういうわけか実装のちょろまかしには頭がまわるもので、今や丁寧なコードを書く人の鏡とまで言われるワタクシも、それはそれは手抜き方法ばかりうかんだものでした。 技術投資のいくつかは、不意ながら技術的負債になりまして、いろいろと世間様にもご迷惑をおかけした次第です。みなさんもきっとそうだと思いますが。 この話は、そんな「誰にでもある」小さな事件のひとつです。1 この記事は CrowdWorks Advent Calendar 21 日目の記事です。 昨日は @tmknom さんの 「アプリケーションアーキテクチャに関するポエム」 でした。 設計に関するトピックは幅広く、かなり広範な知識が求められますよね!早く DDD を読まねばという気分になりました(笑)。 さて、この記事は、著者がここ1年ほど携わった簡単なデータ構造の

    実録!!データ構造リファクタリング -- 僕とメッセージ機能の300日戦争 - Qiita
    Jxck
    Jxck 2016/12/22
    本当に良い話だった。こう言う時絶対に「なんでこんな実装しちゃったんですか」は言っちゃダメ、後から見て上がり前なものはその時は見えない。 こうやって返済できてる時点で上出来だし、本当にお疲れ様でした。
  • 至高のDockerイメージ生成を求めて - Qiita

    稿は良いDockerイメージを良い方法でビルドすることを探求した記録である。 Supership株式会社 Advent Calendar 2016の21日目にあたる。 2019年現在は@inductor氏の改訂版を見たほうが良い。 この記事で論じた望ましいコンテナイメージの姿は2019年でも変わらない。ただし、multi-stage buildのような新しい仕組みが普及したりツールの評価が定まってきたりと、実現に用いるツールの状況が2016年からやや変化している。 良いDockerイメージ 良いDockerイメージとは何だろうか。Dockerの利点は次のようなものだから、それを活かすイメージが良いものであるに違いない。 ビルドしたイメージはどこでも動く 適切にインストールされ、設定されたアプリケーションをそのままどこにでも持っていける。 コンテナ同士が干渉し合うことはないので、任意のイメ

    至高のDockerイメージ生成を求めて - Qiita
    Jxck
    Jxck 2016/12/22
  • 大規模プロダクトにおけるフロントエンドの1年間の変化 - Qiita

    プロダクトに関わるエンジニアは40人近くいて、弊社ではフロントエンド/サーバーサイドといった明確な線引きがないため全員がフロントエンドに触れる機会が有りえます。開発チーム・コード共にそれなりに大規模と言えるのではないでしょうか。 やったこと モジュール間の依存解決 もともとRailsのSprocketsに沿ってjsを書いていたため、classは全て一つのグローバル変数に格納され、全てのjsが結合された巨大なapplication.jsをロードしている状態で、メンテナビリティやパフォーマンスに大きな問題を抱えていました。そこで去年よりWebpackを導入し、各モジュールの依存関係を整理してjsファイルを適切な単位に分割するようにしました。ファイル数が多いため段階的に作業をつづけ、今年ようやく全てのファイルの依存解決が完了することができました。 過渡期はWebpackとSprockets両方か

    大規模プロダクトにおけるフロントエンドの1年間の変化 - Qiita
    Jxck
    Jxck 2016/12/21
  • 大規模Webアプリケーションにおける複雑性とアーキテクチャ設計に関する一考察 - Qiita

    Webアプリケーション開発についての知見を、自分の経験と知識をベースに整理してみようという試みです。 いわゆるサーバサイドにスコープを絞り、フロントエンドは対象外です。筆者は普段、オブジェクト指向言語で書いているので、記事でもその前提(RubyPHPPythonJavaScalaあたりを想定)になっています。 では、編をどうぞ。 ソフトウェア開発は複雑さとの戦い 『人月の神話』では、ソフトウェアの質的な困難性について4つの性質をあげている。その中で最初に出てくるのが「複雑性」である。『新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡』なんか読んでもらえると、ソフトウェアの複雑性と戦うために、人類が生み出してきた発明の数々が説明されている。 では、複雑さとは何か?もう少し掘り下げて考えてみよう。 複雑さの正体 Webアプリケーションが複雑になる

    大規模Webアプリケーションにおける複雑性とアーキテクチャ設計に関する一考察 - Qiita
  • E2Eテスト基盤開発を担当して - Qiita

    freee Engineers Advent Calendar 2016 12月17日担当の @futoase です。 現在、E2Eテスト基盤構築の担当をしています。1 Capybara、SitePrism および Selenium に触れていく中で自分や弊社メンバーから得た知見について記載します。 4点の内容となります。 Capybara + SitePrism Selenium E2Eの目的 E2E基盤構築を担当してみて思ったこと Capybara + SitePrism 同僚の @kompiro が Capybara + SitePrism を使うことを提案、フレームワーク化を行ってくれたのでテストケース作成に利用しています。2 Selenium/Appium Advent Calendar 2016にてSitePrismを利用したPageObjectsパターンを使ったテスト作成につ

    E2Eテスト基盤開発を担当して - Qiita
  • QUIC はデータロス時の処理待ちをどのようにして最小化しているのか? - Qiita

    この記事で伝えたいこと HTTP/2 で HTTP レイヤの Head of Line Blocking 問題が解決した他、Server Push、Prioritization、HPack などの導入によって、HTTP の通信効率を向上させました。 しかし、TCP を使う限り、TCP レイヤの HOL Blocking は依然として残っています。 更なるパフォーマンス向上を目指して、QUIC では UDP を使って通信します。UDP 自体はパケットの欠損検出や再送処理など、TCP では当たり前にある機構が無く、自前で作り上げないといけません。では、QUIC は TCP と同等の機能を実現しながらも、TCP とどこが異なるのかを探っていきます。 ちなみに、QUIC という名前は、Quick UDP Internet Connection の略です。 復習:HOL Blocking とは? ウ

    QUIC はデータロス時の処理待ちをどのようにして最小化しているのか? - Qiita
    Jxck
    Jxck 2016/12/20
  • 複数の作用がセットのAction発行とどう向き合うか - Qiita

    Redux仕事と個人で使い始めて 3・4 週間という経験値なのですが、「唯一の状態である state の唯一の更新手段である Action 発行」が、更新以外の作用を伴うことに頭を悩ませていて、この点についてのお話をさせてもらいたいと思います。 なお、前提とする Redux ミドルウェアや周辺ライブラリは、公式推奨である以下です。 redux-thunk React react-redux Action 発行に伴う 3 つの作用 Redux の Action 発行(= dispatch の実行)は、以下の 3 つの作用をセットで実行する処理だと、自分は考えています。 state の更新をする。 state のコピーをする。1 描画を実行する。つまり React の render 関数を実行する。2 それらの作用は常に全てが必要ではない それぞれは勿論必要な処理ですが、常にセットで必要と

    複数の作用がセットのAction発行とどう向き合うか - Qiita
  • ファイルシステム小噺(仮) - Qiita

    この記事はRecruit Engineers Advent Calendar 2016 の18日目の記事となります。 RyoMa_0923です。 Advent Calendarは人生初参戦なので、ずれてたらごめんなさい。 普段はインフラエンジニアとしてDockerやらなんやらを中心に最近は取り組んでます。 素直になるとDockerとかその周辺ツールのお話をするのが筋だと思いますが、 ひねくれものなのであえてみんながあまり興味をもてなさそうな話をします。 ちなみに業務には役に立たないので注意してください。 ファイルシステムとは ファイルシステム(wikipedia) ここでは上記URLのうち、ディスクファイルシステムについて説明します。 具体的に何を説明する? 今回は、今も昔もLinuxではよく使われているext系のファイルシステムについて ざっくりと説明していきます。 そのうえで極々簡単な

    ファイルシステム小噺(仮) - Qiita
  • Web MIDI APIを扱うためのMIDI基礎知識 - Qiita

    MIDIは1981年に策定され一度も改訂されることなく現代まで続いている長寿規格です。DTMデスクトップミュージック、打ち込み)だけでなくカラオケ店でも日常的に使用されており、(音楽を扱う)舞台で使用されたことをきっかけに舞台照明の操作などに扱われる規格にもなっています。そして、現代ではWeb MIDI APIを通じてブラウザで扱うこともできるようになりました。 照明機器の操作にも使われているということは、音楽のためと思わなくてもよいのです。実際に筆者は、MIDIキーボードをペンタブの側に置いてショートカットの代わりに使っている、というイラストレーターの話を聞いたことがあります。Web MIDI APIを用いて、音楽アプリに限らずとも新しい入力装置を使ったアプリが生まれるかもしれませんね。稿がその一助になれば幸いです。 MIDIとは MIDIはMusical Instrument Di

    Web MIDI APIを扱うためのMIDI基礎知識 - Qiita
    Jxck
    Jxck 2016/12/19
  • ハンドコントローラーでVR日本語入力✏ - Qiita

    VR内で文字を入力する この記事は、Oculus Rift Advent Calendar 2016 の17日目です。 http://qiita.com/advent-calendar/2016/oculus-rift 昨日はおかずさんの「VRコンテンツ開発について雑多に色々描いてみる」でした。 酔った勢いとは思えないまとまり具合でVR開発について具体的な改善案を提示されており、素晴らしいです。 VRのインフラ化を目論むにあたって、文字入力は死活問題です。現在の、ソーシャル機能を中心にいくつものキャズム超えてきた(※個人の見解です)コンピュータシステムにおいて、文字入力は全てのベースとなる機構です。 将来的には当然ながらVRならではの操作系が台頭してくる事が予想されますが、それまでの間はバーチャルディスプレイも併用されていく事になるでしょうし、快適に文字入力ができることの必要性は小さくない

    ハンドコントローラーでVR日本語入力✏ - Qiita
    Jxck
    Jxck 2016/12/19
  • MySQLの標準出力で円グラフを描く - Qiita

    みなさまこんにちは。新卒エンジニアonunuです。 リブセンスアドベントカレンダーその1の2日目を担当いたします。よろしくお願いいたします。 ことの始まり。 上司「数字を出して終わりにしないでグラフにしたりするんだ。周りの人に理解してもらうには大事なことだよ」 ぼく「わかりました」 新卒エンジニアは試されていると思いました。 エンジニアならば黒い画面でグラフを作ってみせよ、 と言われた気がしたのです(言われてない)。 そしてできたのがこちらです。 +-------------------------------------------------------------------------------------+ | 東京・神奈川・大阪・愛知の人口の割合 | +-------------------------------------------------------------

    MySQLの標準出力で円グラフを描く - Qiita
    Jxck
    Jxck 2016/12/19
    職人芸
  • docker-composeでDBの起動完了を待ってからWebアプリを実行する - Qiita

    はじめに docker-composeで複数のコンテナを管理するとき、ほぼWebアプリとDBを一緒に使います。 大抵はWebアプリ側にdepends_onでDBのコンテナを指定して起動順序を制御しますが、あくまで起動順序だけなのでDBの起動完了前にWebアプリがDBにアクセスしてしまい起動失敗する事があります。 せっかくdocker-composeで1つにまとめて管理しているのに便利さが半減してしまうとモヤモヤしていたら、公式ではWebアプリ側でチェックせよと解説していました。 depends_on/condition 2021/07/21追記 depends_onで指定したサービスのhealthcheckが通ってから起動できるconditionが追加されました。これを使えばチェック用スクリプトを使わずにすみます。詳しくはDocker Compose の depends_on の使い方まと

    docker-composeでDBの起動完了を待ってからWebアプリを実行する - Qiita
  • Rails でストアドプロシージャーを使う - Qiita

    当記事では、みんな大好きストアドプロシージャーを Rails で使ってみて、理解を深めてみます API ファースト開発を使った開発を想定して、ストアドプロシージャーを Rails プロジェクトに組み込んでみましょう ストアドプロシージャーとは RDBMS にだいたいついてる、関数を作る機能です 当記事では PostgreSQL を使います API ファースト開発とは アプリケーション側からは RDB へ直接クエリーを発行しません 代わりに機能ごとに用意されたストアドプロシージャーを実行して、返ってきた結果を使います(副作用を持つ関数もあります 開発の初期段階ではテーブル設計を行わず、必要な機能のインプットとアウトプットが定義されたストアドプロシージャーのモックを使ってアプリケーションを開発します ある程度アプリケーションができてきたら、モックになっているストアドプロシージャーから逆算してテ

    Rails でストアドプロシージャーを使う - Qiita
    Jxck
    Jxck 2016/12/19
  • DeepLearning研究 2016年のまとめ - Qiita

    DeepLearning Advent Calendar 2016の17日目の記事です。 はじめに はじめまして。 Liaroという会社でエンジニアをしている@eve_ykと申します。 今年もあと僅かとなりました。 ここらで、今年のDeepLearningの主要な成果を振り返ってみましょう。 この記事は、2016年に発表されたDeepLearning関係の研究を広く浅くまとめたものです。今年のDeepLearningの研究の進歩を俯瞰するのに役立てば幸いです。 それぞれの内容について、その要点や感想なんかを簡単にまとめられたらと思います。 特に重要だと思った研究には★マークをつけておきます。 非常に長くなってしまったため、興味のある分野だけ読んでいただければと思います。 言い訳とお願い 見つけたものはコードへのリンクも示すので、プログラミングに関係ある記事ということで… 分野的にかなり偏っ

    DeepLearning研究 2016年のまとめ - Qiita