ブックマーク / qiita.com/awakia (22)

  • 実践! OverlayFS - Qiita

    先日、OverlayFSについて 調べたので、今回は実際に使ってみて挙動を確かめてみた。 OverlayFSの基礎 ドキュメントには色々書いているが、Overlayfsの基的な考え方は以下の通り Readonlyな下の層と、Writableな上の層を重ね合わせ1つのファイルシステムに見せる このとき、ディレクトリは重ね合わされ、ファイルは上から見ていく コンフリクトしていたらファイルだと上が優先され、ディレクトリだとマージされる 下(readonly)にしかないファイルを編集すると上にコピーが作成される 実験環境 最新のCoreOSはOverlayFSがマージされたKernel 3.18が入っているので、これのvagrantを使う $ git clone https://github.com/coreos/coreos-vagrant $ cd coreos-vagrant $ vagr

    実践! OverlayFS - Qiita
    daiki_17
    daiki_17 2018/07/13
  • GoのChannelを使いこなせるようになるための手引 - Qiita

    Go使いたくなる理由の一つに、マルチスレッドプログラミング的なものを高速な言語で安全に実装したいというのがある。Goにおいてそれを支えるのが、自前で実装した軽量スレッドといえるgoルーチンと、mutexなどのロックの代わりに使えるChannelという概念だ。 実際に実装するときに、Goルーチンは難しくないが、Channelを使うのは割と知識と経験が必要なのでここでは、Channelについてすこし詳しく書いてみる。 Message Passing まずは理論から。 Goのチャネルなどのロックを使わない方法の並行処理はMessage Passingと呼ばれている。 以下の英語Wikipediaにあるように数学的な理論にもなっているしっかりした枠組み。 ErlangのActor Modelなどもこの仲間。GoのチャネルとActor Modelは、実は、同等の概念で表現方法が違うだけらしい。 (

    GoのChannelを使いこなせるようになるための手引 - Qiita
    daiki_17
    daiki_17 2017/04/04
  • プログラマが知っておくべき、メモリ/ディスク/ネットワークの速度まとめ - Qiita

    注: 無線ネットワークは干渉などによりこの数値より遅くなる状況も十分ありえます。 ポイント メモリからの読み込みとディスクからの読み込みはランダムアクセスで1000倍程度違う とは言え、最近はディスクも結構速い きちんと繋がれた有線ネットワークからの読み込みは、ディスクより速い つまり、ディスクから読むより、同じデータセンターのマシンのメモリから読んだほうが速い モバイルネットワークだと100キロバイトのデータでも1秒以上かかることがある メモリからの読込速度の遅さは、CPUのクロック数も10G/s程度なのと、来はL1/L2キャッシュなどがあることを考えると通常意識しなくて良い 何故この参考値をまとめたか プログラミングをする際、どのくらいの時間でどのくらいのサイズ感の処理が出来るのかを考えられることが、ある一定規模以上のサービスを開発するときは必須条件になってくると思います。 なにより

    プログラマが知っておくべき、メモリ/ディスク/ネットワークの速度まとめ - Qiita
    daiki_17
    daiki_17 2016/07/06
  • ElasticSearchとKibana - Qiita

    ElasticSearchとは Elasticsearchは、割と設定とかが簡単で使いやすい全文検索エンジンで、内部でJava実装のLuceneを利用している。 http://www.elasticsearch.org/overview/elasticsearch Kibana連携の際は、単に検索というより、可視化したいデータを高速にフィルタリングして集計する用途で使われていると思ったほうが良い感じ。 ElasticSearchのインストール Kibanaとは ElasticSearch社が提供している、ログデータの可視化ツール。Apatchなどのシステムログを用いる例ばっかりWeb上で見つかるが、別に検索のクエリログやWebサイトの行動ログだってちゃんと入れて設定すれば使える。 Kibanaのインストール ElasticSearchのプラグインとしてインストール (現在はkibana3と

    ElasticSearchとKibana - Qiita
    daiki_17
    daiki_17 2016/04/08
  • Commit Hash から、該当 Pull Request を見つける方法 - Qiita

    git blameなどを使用して、変更を加えたcommit sha hashだけわかった時、git show daced1d3のようにすれば、そのコミットの変更内容を見れます。ですが、当は内容よりその変更を加えたPull Requestを知りたいことありますよね? そんなコミットからプルリクエストを探したい時に使えるgit aliasコマンドを紹介します。 git showpr Pull Requestをマージしているコミットログを見つけます。 show pull request => showpr としてますが、名前は好きにつけてください。 .gitconfigのalias設定 [alias] showpr = !"f() { git log --merges --oneline --reverse --ancestry-path $1...master | grep 'Merge p

    Commit Hash から、該当 Pull Request を見つける方法 - Qiita
    daiki_17
    daiki_17 2015/12/19
  • Ruby力を一段アップするために読んだほうが良い公式ドキュメント集 - Qiita

    インスタンス化に関係する ::new, #new, #allocate と継承に関係する #superclass, #inhereted しか定義されていない。 その他のメソッドはすべてスーパークラスであるModuleに定義されている。Classはインスタンス化できるModuleと考えれば良い。 SuperClassの関係 [1] pry(main)> Class.superclass => Module [2] pry(main)> Module.superclass => Object [3] pry(main)> Object.superclass => BasicObject [4] pry(main)> BasicObject.superclass => nil [5] pry(main)> nil.superclass NoMethodError: undefined meth

    Ruby力を一段アップするために読んだほうが良い公式ドキュメント集 - Qiita
    daiki_17
    daiki_17 2015/08/06
  • Githubさん,ごめんなさい!複数リポジトリを一つにまとめる方法 - Qiita

    複数のリポジトリがあった時に、それをまとめた親レポジトリを作り、各レポジトリをサブディレクトリとしてまとめてしまう方法。 ファイルとして保存するだけじゃなく、ちゃんとコミットHistoryも保存される。一つにまとめたものを後で切り出すこともできる。 これでリポジトリ数の削減が可能になるので、GithubのPrivateリポジトリ数の上限などにお悩みの人は是非お試しを。現在、頻繁に使っているものをまとめてしまうのはおすすめしないが、古い使われてないものを歴史ごとアーカイブするのには持ってこいだと思う。 以下では、 $ACCOUNT = githubのアカウント名 $REPO = サブディレクトリに移したいレポジトリ名 $ARCHIVE = 複数リポジトリをまとめておくアーカイブ用親リポジトリの名前 とする。 複数リポジトリをまとめたアーカイブ用gitリポジトリをローカルに作成 mkdir $

    Githubさん,ごめんなさい!複数リポジトリを一つにまとめる方法 - Qiita
    daiki_17
    daiki_17 2015/08/06
  • GitでMerge CommitをRevertする方法 - Qiita

    何個もCommitがあるような一つのPull Requestを全てRevertしたいようなときに使えます。 そもそもRevertとは あるコミットを打ち消すような、全く逆のコミットを作ることです。 追加した部分を削除して、削除した部分を追加して、変更した部分を変更前の状態にするコミットを作成します。 取り消したいコミットがあるのだけれど、既にリモートにコミットしてしまって、git reset, git rebase -i, git reflogなどを使っての取り消しが不可能なときに使います。 通常のRevert 普通のcommitなら、revertは

    GitでMerge CommitをRevertする方法 - Qiita
    daiki_17
    daiki_17 2015/07/27
  • gitのpush.defaultに関するノウハウ - Qiita

    gitのpush.defaultの設定に関して、他人のを設定してあげることもあり、毎回迷うのでまとめました。 push.defaultは、今まではmatchingというのがデフォルトでしたが、Git2.0からsimpleっていうのがデフォルトになります。なので、何らかの設定をしないと、以下の様な警告が出たりします。 warning: push.default is unset; its implicit value is changing in Git 2.0 from 'matching' to 'simple'. To squelch this message and maintain the current behavior after the default changes, use: git config --global push.default matching To squ

    gitのpush.defaultに関するノウハウ - Qiita
    daiki_17
    daiki_17 2015/07/09
  • 開発フロー研修 @ Wantedly - Qiita

    Githubでの開発 - Issue, Commit, Pull Request, Mention, Code Reviewに関する基的なルール ゴール 「 チーム で 長期にわたって 生産性を上げる 」 前提 みんながサービス・プロダクトについて自主的に考える組織 エンジニア全員がそれぞれオーナーシップを持ってよりプロダクトを良くすることを考える いわゆるPM職の不在 = コードは書かずに、マネージだけする人がいない これは組織による。(e.g. 外注やディレクター職の存在) けれど、Wantedlyは、多少変化しつつも、より良いサービスを生み出すために、役割の程度の差はあれ全員がプロダクトについて考え責任を持ったほうが良いと考えている。 理想型 図:「青と黄色」のチーム構成が従来の縦割り+統括チーム、「緑(金)色」のところが目指すべきマイクロサービスチーム マイクロサービスチームは、

    開発フロー研修 @ Wantedly - Qiita
    daiki_17
    daiki_17 2015/04/10
  • Githubで空白を無視してdiffを見る - Qiita

    インデントを変えた時のDiffってめっちゃ見にくいですよね。インデントを変えただけなのか、実は内容も変わっているのかGithub上で判断したい! そんな時はURLパラメーターに

    Githubで空白を無視してdiffを見る - Qiita
    daiki_17
    daiki_17 2015/04/09
    “w=”
  • GitHubで自分が関係しているIssueを見逃さないようにするためのページ一覧 - Qiita

    世の中には、いろんなツールがあるけれど、ここではデフォルトでGitHubが用意してくれているページを駆使して、自分が関係しているIssueに気づかない問題を解決する方法を紹介する。 Notificationの活用 まずは、通知を意味あるものにしたうえで、毎日見に行くという習慣付けが大事。 ショートカットとしてはg+nでいける。 運用にあたっては、まず、今までのNotificationを全てクリアして、必要なものだけがNotifyされるようにWatch設定をちゃんとする。 実際、Notificationが多すぎて役に立たなくなっている人は全てUnwatchすることから始めてもいいかもしれない。 そうするとNotificationが結構役に立つようになる。 Watchしてるものの中で、自分が関係しているものだけを見たい場合は、Participatingタブを選べば良い。 なお、全てUnwatc

    GitHubで自分が関係しているIssueを見逃さないようにするためのページ一覧 - Qiita
    daiki_17
    daiki_17 2015/04/04
  • 12 Factor App - モダンなサービス運営に必要な12のインフラ的要素 - Qiita

    皆さんは、The Tweleve-Factor Appをご存知だろうか? これはHerokuの中の人が書いた、Webアプリケーションを使いやすい形でスケーラブルにするための方法論である。簡単にいえばコンテナで動かしたいアプリケーションが守っておくとよいレシピ集であると言える。 http://12factor.net/ (日語訳) 今回これを取り上げた背景としては、実はDockerコンテナをメインにした番でのインフラ運用を考えた時に、アプリケーションがこの12の要素を満たしていることが重要だと最近ひしひし感じているから。 実際、自分が働いているところが運営しているサービス Wantedlyは、もともとずっとHerokuで運営していて、最近AWSに移行し、現在Dockerコンテナの上で動いている。この移行を約1ヶ月半で実現できた大きな要因として、Herokuの上に乗っていたことで知らず知ら

    12 Factor App - モダンなサービス運営に必要な12のインフラ的要素 - Qiita
    daiki_17
    daiki_17 2015/01/13
  • Chromeの検索エンジンの設定を使いこなしていろんなとこから瞬間検索 - Qiita

    以下の動画はChromeの検索エンジン設定を使って Google英語版で検索する (g->スペース->検索クエリ) 英辞郎Web版で単語を引く (alc->スペース->検索クエリ) ことをデモしてます。 他にも Wikipediaの記事 Dictionary.comのシソーラス Pythonのドキュメント などなど 検索っぽいことが提供されているものならなんでも使えます。 やり方 Chromeの設定を開く 検索エンジンの管理を開く その他の検索エンジンに使いたいものを設定する。 コツはキーワードの部分を打ちやすい数文字にしておくことです。 ここでは以下のように設定してます。 検索エンジン名 キーワード URL

    Chromeの検索エンジンの設定を使いこなしていろんなとこから瞬間検索 - Qiita
    daiki_17
    daiki_17 2014/12/10
  • Wantedlyで行っている開発者用Macの設定方法(主にインターン用) - Qiita

    Wantedlyでは、開発PCは基的にはMacで統一しており、社員全員にMacbook AirかMacbook Proを支給している。 インターンも最近人数が多いのである程度の数のMacを用意しておいて、それを使いまわすという運用を行うようになってきている。 Wantedlyでは、新しいMacを買ってから行う設定をある程度自動化しているので、今回はこの流れを公開しようと思う。 来はこの作業を行った後、プロジェクトごと(Web/iOS/Android等)のセットアップを行うという流れになる。ここも特にWeb用の設定は結構自動化されている。 Macの初回セットアップ 日語でセットアップ iCloudなどEmailが必要なものは登録しないでスキップ 起動後、Xcodeダウンロードまで Dockにデフォルトで存在しているものを消す 好みの問題だがほぼすべて消してOK 最終的に以下の2つぐらい

    Wantedlyで行っている開発者用Macの設定方法(主にインターン用) - Qiita
    daiki_17
    daiki_17 2014/09/03
  • 2つのブランチの分岐点をみつけるgit show-branch --merge-base - Qiita

    Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    2つのブランチの分岐点をみつけるgit show-branch --merge-base - Qiita
    daiki_17
    daiki_17 2014/05/30
  • VCR/WebMock/RSpecで外部と通信を行うテストを書く - Qiita

    group :test do gem 'vcr' gem 'webmock', ">= 1.8.0", "< 1.12" end RSpec.configure do |config| # some other codes… # VCR.configure do |c| c.cassette_library_dir = 'spec/vcr_cassettes' c.hook_into :webmock end # SpecのDescriptionを元にVCRのファイル名を生成する config.around(:each, :vcr) do |example| name = example.metadata[:full_description].split(/\s+/, 2).join("/").underscore.gsub(/[^\w\/]+/, "_") options = examp

    VCR/WebMock/RSpecで外部と通信を行うテストを書く - Qiita
    daiki_17
    daiki_17 2014/05/30
  • PhantomCSSでViewの回帰テスト - Qiita

    https://github.com/Huddle/PhantomCSS (画像は家より) PhantomCSSJavaScriptでViewの回帰テストができるフレームワーク。上の画像のように異なっている部分をピンク色で表示してくれる。 今回、OSはMacを想定しているが、Windowsとかでも使えるみたい。 準備 使用するためにはPhantomJSとCasperJSが必要なのでインストール。

    PhantomCSSでViewの回帰テスト - Qiita
    daiki_17
    daiki_17 2014/05/30
  • Wantedlyエンジニア新人研修(コーディング) - Qiita

    概要 AIZU ONLINE JUDGEを使用。 ICPC国内予選の問題(Volume 11)の3番目まではどの年の問題でも最低限解けるようにするのが目標。 他にも、"Course"タブに使うアルゴリズムごとに別れた問題があるのでそれをやってもいいかも。 ICPC国内予選の3問目までと言うのは、特に難しいアルゴリズムの問題が出るわけではないので、バグを生みにくいくてサクッと書ける綺麗なコード設計をする良い練習になる。 具体的には以下の様な特徴がある。 1問目はやるだけの問題。if文、ループ、配列を使った基的な操作ができればいいものが多い。 2問目は少し複雑な実装問題で、データをどう持つかなどの設計力が問われる。 3問目は大抵、再帰構造が書けるかどうかが問われる問題が出る システムに慣れる ユーザー登録 まずはRegistration。自分はAffiliationにカンマを入れたら登録でき

    Wantedlyエンジニア新人研修(コーディング) - Qiita
    daiki_17
    daiki_17 2014/05/30
  • Rubyはじめての人がRails開発に参加するときに最初に知っておくべきこと - Qiita

    ※この内容はRailsで書かれたWantedlyプロジェクトに参加することを想定していて、一部Railsのデフォルトでない機能の解説もありますが、使っているgemもメジャーなもので割と汎用的な内容になっていると思うので、是非参考にしてみてください。 URLを見ればだいたいどこを変更すればいいかわかると言うこと Ruby on RailsはMVC(Model View Controller)にもとづいて設計されていて、ディレクトリ構造的にもapp/以下に綺麗に分かれている。 MVCって何?って人は、ググってみてほしいが、割と宗教論争になりかけているので、モデルはDBの各テーブルに関連していて、ビューはHTMLの部分に近くて、コントローラーはビュー用にモデルを引っ張ってくるつなぎ役だと思ってれば大体合っている。これ以上は深く考えずにコードを読んだほうが良いと思う。 Router でもコード的

    Rubyはじめての人がRails開発に参加するときに最初に知っておくべきこと - Qiita
    daiki_17
    daiki_17 2014/05/15