タグ

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

  • カーディナリティについてまとめてみた - Qiita

    カーディナリティとは テーブルにカラムがあるとして、カラムに格納されているデータの種類がどのくらいあるのか(カラムの値の種類の絶対値)を、カーディナリティという。 具体例 カーディナリティが低い場合 例えば性別なら、男と女の二種類である。 カラムのデータの種類が、テーブルのレコード数に比べて二種類と少ない。このことを カーディナリティが低い という。 カーディナリティが高い場合 一方顧客番号ならたくさんの種類(番号)が存在することになる。 カラムのデータの種類が、テーブルのレコード数に比べて多い場合、 カーディナリティが高い という。 カーディナリティを踏まえたインデックスの張り方 基的に、 カーディナリティの高い列に作成する 必要がある。 はじめに、カーディナリティは カラムの値の種類の絶対値と書いたが、先程の例で言うと性別のカーディナリティは2になる。他にも例えば1年間の日付なら1〜

    カーディナリティについてまとめてみた - Qiita
  • コマンド一つでMysqlを速くする - Qiita

    稼働中のシステムであっても下記のコマンドを実行するだけで再起動等必要はないので、非常にお手軽に出来る。 デフォルトではinnodb_flush_log_at_trx_commit = 1 になっているはず。 1に設定するとトランザクション単位でログを出力するが 2 を指定すると1秒間に1回ログファイルに出力するようになる。 そのため、マスターDBが落ちて別スレーブに切り替わる仕組みを導入していても1秒の間に発生したトランザクションは完全にもとに戻す事が出来ない。 マスターDBの死 = サービス停止 みたいに冗長構成を持たせていないのならばこの設定にしても問題はなさそう。 mysqlslapでベンチマークを測ってみた。 テストの内容としては20クライアントから計10万回のINSERT文を実行するという内容で 結果として約3倍近く速くなっている。 innodb_flush_log_at_trx

    コマンド一つでMysqlを速くする - Qiita
  • nginxのパラメータチューニングとh2o - Qiita

    (追記:タイトルが少々煽り気味な気がしたので微妙に変更しました。) h2oとnginxの性能比較 nginxよりも速いとされるh2oですが、実際に自分でもローカルでベンチマークを取ってみました。環境は以下の通りです。 EC2のc4.8xlargeインスタンス gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-16) Linux ip-172-31-13-40 3.14.35-28.38.amzn1.x86_64 #1 SMP Wed Mar 11 22:50:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux nginx-1.8.0 h2o-1.2.1-alpha1 wrk(ベンチマーク) ベンチマークコマンド 実行するベンチマークコマンドは以下になります。なお、オプションはできるだけRequest/secが大きくなるように調

    nginxのパラメータチューニングとh2o - Qiita
  • 3分で試す h2o - Qiita

    h2o の詳しいことや、その内部構造やら 多分他の日の誰かが書いてくれると思いますので、私はユーザ目線でまったり触ってみる系のエントリを書きます。 h2o を一般的なリバースプロキシ、静的ファイル配信サーバとして使いたい これをお読みの方の多くは Nginx や Apache を使っているかなと思います。 h2o を使ってみようかなと考えるとき、まず考える用途はこれを置き換えることでしょう。 よくあるユースケースとして “静的ファイルを h2o でホストし、アプリケーションをバックエンドの app サーバに投げる” という設定をやってみます。 h2o をすぐ試したい h2o の性能を余す所なく体験するには、オーバーヘッドのない環境でビルドして動かすのが一番ですが、まずは運用に乗るかどうか設定や取り回しを検証するのをやりたいと思うのは当然の所かと思います。 そんなわけで、 h2o をすぐお使

    3分で試す h2o - Qiita
    karahiyo
    karahiyo 2015/09/26
  • NginxでリバースプロキシをKeepAliveしたときの性能検証 - Qiita

    Nginx + Luaを用いた、ハイパフォーマンスで動的なプロキシサーバを考察中です。 そのための施策の一つとして 上流サーバへのアクセスをKeepAliveする という方法がありますが その際、プロキシサーバにどの程度性能に変化があるのかを調査してみました。 リバースプロキシのkeepalive設定 前提条件として Nginx > 1.1.4 が必要。 upstreamに keepalive というattributeがあるのでそれを設定します。 それと同時に、プロキシヘッダーにHTTP/1.1設定などを行いましょう。 ちなみにproxy_passだけだとkeepaliveできないようです。upstream必須。 あと、もちろんバックエンドサーバ側もkeepalive設定しておきます。 upstream http_backend { server oreore.micro.service;

    NginxでリバースプロキシをKeepAliveしたときの性能検証 - Qiita
  • URLスキーム・独自ディープリンク実装に代わる、Universal Links(iOS 9で導入)でより良いUXを実現 - Qiita

    URLスキーム・独自ディープリンク実装に代わる、Universal Links(iOS 9で導入)でより良いUXを実現iPhoneWWDCsearchapiiOS9UniversalLinks iOS 9で、Universal Linksという仕組みが導入されます。 WWDC資料: Seamless Linking to Your App - WWDC 2015 - Videos - Apple Developer これまでのURLスキーム・独自ディープリンク実装と機能的に似ていますが、それがAPIとして公式にサポートされ、より良いUXが提供出来るようになる模様です。 Search API(特にWeb Markup API)と同時にiOS 9対応に向けてWeb側で是非対応検討しておいた方が良い事項だと思っています: searchapi - iOS 9の「Search API Best Pr

    URLスキーム・独自ディープリンク実装に代わる、Universal Links(iOS 9で導入)でより良いUXを実現 - Qiita
  • [まとめ] gcp ja night #29 - Qiita

    日時: 2014-12:12 19:00~22:20 場所: FreakOut イベントURL: http://gcpja.connpass.com/event/9647/ togetter: http://togetter.com/li/756806 スライドは見つけ次第、追記予定 トレタのBigQuery / Google Apps Script活用術 Apps Script 最も簡単に動かせる Server Side Javascript 無料 DB, bq にもアクセスできる たかはしさん slack ボット、勤怠管理、おはよう・お疲れさまとつぶやくだけ Google Spreadsheet に記録 Google Apps Script で記述 公開されてる、https://github.com/masuidrive/miyamoto BigQuery の利用状況(前職) MySQ

    [まとめ] gcp ja night #29 - Qiita
  • iOS9 ATS問題 - Qiita

    iOS9で問題になりそうなATSをまとめました。 ご指摘事項あれば是非コメントをいただきたいです。特にAFNetworkingまわり・・。 AFNetwotking部分は下に記載していますが、iOS8向けのビルドでiOS9端末でも発生したので要注意です。 2015/09/21追記 iOS9GM以降は(もうreleaseされちゃいましたが・・)AFNetworkingでの証明書判定がiOS8とおなじになりました。。。 2016/07/27追記 toshi0383さん 修正依頼ありがとうございます。 1年間間違っていることに気が付きませんでした。。修正ありがとうございます。 App Transport Security App Transport Security (ATS) enforces best practices in the secure connections between a

    iOS9 ATS問題 - Qiita
  • ansibleでshellやcommandを使う時の注意点 - Qiita

    shell shellはリモートノードのシェル(/bin/sh)を通して実行される。 次の文字を使用できる。 $HOME, "<", ">", "|", "&" command commandは次の文字を使用できない。 $HOME, "<", ">", "|", "&" 環境変数の読み込み ansibleではtask毎にシェルを起動して実行している(みたい。) つまり前のtaskで次のように環境変数を読み込み、次のtaskで利用する…ということができない。

    ansibleでshellやcommandを使う時の注意点 - Qiita
  • 「RaptorはどのようにしてUnicornの4倍、Puma, Torqueboxの2倍の速度を達成したのか」を読んでまとめてみた - Qiita

    Help us understand the problem. What is going on with this article? 「RaptorはどのようにしてUnicornの4倍、Puma, Torqueboxの2倍の速度を達成したのか」を読んでまとめてみました。 原文はこちらです。紹介については許可を貰っています。 How we've made Raptor up to 4x faster than Unicorn, up to 2x faster than Puma, Torquebox とても読みやすい英語ですので是非原文も読んでみてください。 How Ruby app servers work Rackアプリケーションの構成についての紹介と、コネクションをどのように扱うのかについて。 prefork/threadingやBlocking I/OおよびEvent I/Oの組み

    「RaptorはどのようにしてUnicornの4倍、Puma, Torqueboxの2倍の速度を達成したのか」を読んでまとめてみた - Qiita
  • githubの特定ブランチへのgit push --forceをprotectしてエンジニアの精神崩壊を防ぐ( ꒪﹃ ꒪)ブクブク - Qiita

    githubの特定ブランチへのgit push --forceをprotectしてエンジニアの精神崩壊を防ぐ( ꒪﹃ ꒪)ブクブクGitGitHub Protected branches and required status checks もうお済みですか!? 9月4日のことですがgithubより以下の機能がリリースされています。 特定ブランチへのforce pushを無効する 特定ブランチへのマージ時にステータスチェックを必須にする(CIと連携している場合は、テストが通るまでマージできないようにできる) これを実施することで、ある日新人が謎の空のコミットをmasterブランチにforce pushして来たり、ある日途中からJOINした人がpull reqもせずにdevelopブランチに謎コミットをforce pushして来たり、ある日とあるOSSで間違えて一ヶ月前のローカルレポジト

    githubの特定ブランチへのgit push --forceをprotectしてエンジニアの精神崩壊を防ぐ( ꒪﹃ ꒪)ブクブク - Qiita
  • プログラミングスタイルガイドのスタイルガイド - Qiita

    文書は、プログラミング言語向けのスタイルガイドに向けたスタイルガイドである。 文書へのフィードバックはQiita上のコメントにて受け付ける。 構造 対象を明確にする そのスタイルガイドがどのような状況のどのような対象に向けたスタイルガイドであるか規定すること。 状況や対象は広すぎてはならない。 理由: 対象はスタイルガイド記述者には自明かもしれないが、似て非なる言語に誤用されたり、特定分野のアプリケーション向けスタイルガイドが他分野のアプリケーションを理不尽に拘束したりすることがある。これを防ぐべきである。 良い例: 「文書はRuby on Railsアプリケーション向けのスタイルガイドである」 「スタイルガイドはX社におけるRubyプロジェクトに適用すべきスタイルを規定する」 悪い例: (何も書かない) 「文書はX社におけるすべての開発に適用される ... 述語メソッドや述語関

    プログラミングスタイルガイドのスタイルガイド - Qiita
  • Bootstrap4の主な更新点 - Qiita

    こうして見てみると、一段階上のサイズが追加されたというよりも、xs と sm の間が細かくなったという感じですね。 flexboxのサポート $enable-flex: true;を設定することでflexbox Layoutが使用されるようになります。これにより、tableやfloatを使っていた様々なハックが改善されるとのこと。ただし、IE9はflexbox Layoutをサポートしておらず、IE10でも古い仕様にしか対応していないため、デフォルトではこのオプションはfalseになっています。 well, thumbnail, panel を廃止、card に統一 コンポーネントの well, thumbnail, panelがなくなり、cardに統一されました。 CSSリセットを Reboot というモジュールに統一 CSSリセットには、Bootstrap3ではNormalize.cs

    Bootstrap4の主な更新点 - Qiita
  • Scala 代数的データ型 超入門 - Qiita

    代数的データ型の基的な使い方を説明します。 この記事はわりとScalaの基的なところを前提としていると思います。 練習の解答例は別記事に掲載します。 以下の3つを合わせて代数的データ型と呼びます。 列挙型 直積型 直和型 これらを1つずつ見ていきます。 列挙型 種類を区別するための型です。他言語のenumに相当します。 Enumerationを利用して書くことも出来ますし、case classを利用して代数的データ型を表現することも出来ます。列挙型については、Enumerationを利用した方法で話を進めたいと思います。 Enumerationを使った例

    Scala 代数的データ型 超入門 - Qiita
  • PAMとLDAP認証 2013年5月の適当なメモ - Qiita

    LDAP認証自体については別に新しい話ではありませんので、知っている人は適当にお付き合いください。……読む必要ねぇって言ってんの! 環境: Ubuntu 13.04 + libpam-ldapd (0.8.10-4) LDAP認証というのは、ローカルで普通に用いる認証の代わりにLDAP上の情報を使って認証をする、というそれだけの話です。 言い換えると、ローカルの認証をLDAPが「乗っ取り」ます。作業としては、通常のLinuxの認証のどこをどう「乗っ取る」かを理解して、対応する設定ファイルを書けば良いわけです。 例えば以下のような解説が仕組みを理解する上で有効です。まず、読みましょう。 openLDAP 構築(27) - アカウント管理(1) openLDAP 構築(28) - アカウント管理(2) で、ま、私の理解をもとにざっくり言うと、/etc/passwd, /etc/shadows,

    PAMとLDAP認証 2013年5月の適当なメモ - Qiita
  • CentOS 6.5 OpenSSLでオレオレ認証局 - Qiita

    sed -i "s/365/3650/g" /etc/pki/tls/openssl.cnf sed -i "s/365/3650/g" /etc/pki/tls/misc/CA sed -i "s/1095/3650/g" /etc/pki/tls/misc/CA CA certificate filename (or enter to create) Making CA certificate ... Generating a 2048 bit RSA private key .............................................................................................................................................................

    CentOS 6.5 OpenSSLでオレオレ認証局 - Qiita
  • CentOS 6.5 で OpenLDAP(7)OpenLDAPをSSL対応にする - Qiita

    前提条件 CentOS 6.5 OpenSSLでオレオレ認証局 - Qiita 上記にて、CA認証局と署名済みのサーバー証明書を作成しておくこと 来であれば、OpenLDAPはSSL通信のみの許可にすべきであるが、なぜかOpenLDAPサーバー上のクライアントからはSSLで通信できなかった そのため、SSL無しの通信も許可し、ローカルのみSSL無し、ローカル以外はSSL通信のみ、というような iptables を設定することにする サーバー側処理 証明書のコピー mkdir -p /etc/openldap/ssl cp -a /etc/pki/CA/cacert.pem /etc/openldap/ssl/. cp -a /etc/pki/ssl/server.key /etc/openldap/ssl/. cp -a /etc/pki/ssl/server.crt /etc/open

    CentOS 6.5 で OpenLDAP(7)OpenLDAPをSSL対応にする - Qiita
  • 誰も教えてくれなかったMySQLの障害解析方法 - Qiita

    それほどDBに詳しくないアプリエンジニアが何かトラブった時にすぐさま行動して問題把握できるようになる情報を列挙しておきます。 開発時、障害時の対処療法やちょっとした定期監視方法などを対象にしています。 抜的な対策などはインフラエンジニアさんにお任せしたほうがいいと思います。 DBはいろんな意味でこわいんでできれば触りたくないです>< 事前確認 MySQLサーバーのシステム設定値を確認しておく 以下のようにサーバーのシステム設定値を確認できます。 mysql> SHOW GLOBAL VARIABLES; # ワイルドカード(%)を用いた絞り込み mysql> SHOW GLOBAL VARIABLES LIKE 'performance_schema%'

    誰も教えてくれなかったMySQLの障害解析方法 - Qiita
  • mackerel-plugin-fluentd-monitor を作った - Qiita

    mackerel-plugin-fluentd-monitorを作りました。 背景 Fluentdのoutputプラグインはバッファを持っており、inputから受け取ったデータを保持しています。このデータは設定された間隔や量に達することなどで送信されます。 設定がよくなかったり、あるいはoutput先への送信が失敗したりすると、このバッファはどんどん溜まることになります。 そこで、バッファの状態をモニタリングできると便利です。 使い方 Build GitHubからソースを取得し、go buildしてください。 現時点ではリポジトリにはリリース用のバイナリは用意していません。 Fluentd monitor_agentを有効にします。

    mackerel-plugin-fluentd-monitor を作った - Qiita
  • Go言語の型とreflect

    最近型ではまることがたびたびあったのでまとめてみました。 主に下記についてまとめています。 型とインターフェース 代入のルール 型の変換 型アサーション reflectパッケージの使い方 インターフェースの実装などについては触れていません。 型とインターフェース 名前を持つ型と名前を持たない型 型には名前のある型(named types)とない型(unnamed types)がある。 代入の可否など名前の有無で動作に違いのあるケースがある。 ざっくりいえば、英数字で表されているものが名前のある型、括弧やアスタリスクなどの記号を使って表されている型が名前のない型 名前のある型 下記のようにtypeを使って宣言されている型は名前のある型。

    Go言語の型とreflect