タグ

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

  • Lambda+RDSはアンチパターン - Qiita

    何が起きたのか 作成していたアプリではサーバレス構成にてLambdaからRDS(MySQL)を呼び出していました。 リクエストが増えるとRDSのコネクション数が増加して すぐにDBコネクションエラーになってしまいました。 最大コネクションの上限値 結論から言うとLambdaとRDS(MySQL)は相性が良くないです。 理由はLambdaからRDSのDBコネクションを貼ると リクエスト単位でコネクションを張ってしまうため 仕組み上、同時接続に耐えられません (RDSのコネクション上限数が少ない) さらにVPC設定すると・・・ セキュリティのため、RDSをLambdaからのみアクセスさせるためには LambdaとRDSを両方とも VPC領域に置く必要があるのですが、Lambdaの起動が遅くなる場合があります。 これは、一定時間Lambdaがコールしない場合にスリープ状態になり、 起動する際にE

    Lambda+RDSはアンチパターン - Qiita
  • 「AWS is 何」を3行でまとめてみるよ - Qiita

    すべてのAWSのサービスを 3行以下でまとめました。 AWSが色々ありすぎてわからん! 3行以下で誰かまとめて!!という思いで、AWSを3行で書いてるところがなかったので自分で作りました。 掲載した金額は最小使用時のもの。無料枠や大量購入割引(Volume discount)、あと転送量でかなり変わるので、参考程度に。 以下からのカッコよすぎな見出しは AWSクラウド製品のページ からのそのままの引用です。「 広範かつ奥深いコアクラウドインフラストラクチャサービス」って僕が言ってるわけじゃない! 広範かつ奥深いコアクラウドインフラストラクチャサービス なんのこっちゃ。 よーするに「基サービスですよ」ってことらしい。基サービス多すぎだろ・・・。 い。 コンピューティング AWS is 何 いくら?

    「AWS is 何」を3行でまとめてみるよ - Qiita
  • タッチデバイスでCSSの:activeや:hoverを機能させる。 - Qiita

    demo https://jsfiddle.net/junya_5102/pgu54owz/6/ タッチさせる要素に ontouchstart=""と指定する。 これを指定しないとタッチでは:activeと:hoverは反応しない。

    タッチデバイスでCSSの:activeや:hoverを機能させる。 - Qiita
  • 効率的に安全な Dockerfile を作るには - Qiita

    結論 以下の手順で作るのが効率的です。 ベースにする Docker イメージを決める docker run -it <docker-image> sh でコンテナ内部で作業 1行ずつ、うまくいったらどこかにメモ 失敗したらいったん exit して再度 docker run ファイルの取り込みやポートの外部公開が必要ならオプション付きで docker run 全部うまくいったら Dockerfile にする ネットで見たことはないですが、もし docker build で試行錯誤しながら Dockerfile を作るとしたら、それはさすがに苦行です。 遅い デバッグしにくい!コンテナ爆発しろ!!って気持ちになります。 これが原因で「Docker 使えない 便利じゃない 」と思っていたのならそれは勘違いです。 手順詳説 試しに ip-api.com にリバースプロキシするだけの Nginx

    効率的に安全な Dockerfile を作るには - Qiita
  • フロントエンドエンジニア(mizchi)が暇な時にやること - Qiita

    暇というか日常的にやってること https://news.ycombinator.com/ と http://www.echojs.com/ と http://b.hatena.ne.jp/efcl/ をフィードリーダーに突っ込んでいて、面白そうなのをメモっておく 暇なとき 日頃メモってたライブラリの試し切りをする 面白かったら紹介記事を書く 多少やる気リソースが多めだと新しい言語(最近はRustかElixir)の勉強を進める http://codepen.io/ で面白い動きするやつのコードを探してコード読む とくにCodePenがオススメで、割とゲラゲラ笑いながら読めるやつが多いので楽しい。CodePenのテクニックはそのまま自分の業務に持ち込むと悪目立ちするので控えているが、Webでもこういう演出ができる、と頭の片隅にいれておくことで、いずれ何かに役立ったりする。たとえば昨日読んだ奴

    フロントエンドエンジニア(mizchi)が暇な時にやること - Qiita
  • 初心者を戒めるPHP - Qiita

    この記事は何か 挑発的な文言になってる箇所はあるものの、内容としてはそれなりにまじめに書いたつもり。むしゃむしゃしてやった。いまでは反芻してゐる。 PHPDocは必ず書け あらゆる再利用可能な手続きは、他人が容易に応用できるように型が明示的でなければいけない。メンバー全員が実装コード全てを把握できるものならそれが理想だけれど、残念ながら時間は有限だ。ヘッダだけを読んでメソッドの仕様が理解でき、またはコードを読む助けになるようなコメントが良い。 有名な事実を紹介すると、多くのコードは数か月(早ければ数日!)も経てば、他人が書いたコードに感じられるほど理解できなくなることがしばしばある。もちろん設計の練度にもよらうが、設計判断について注意を要した点などをコメントに残しておくことで、ひいては未来の自分の役に立てることができる。 お前の先輩は「PHPには型がない」などと知ったかぶって意味不明1なこ

    初心者を戒めるPHP - Qiita
    pirosikick
    pirosikick 2016/06/16
    わらった "PHPはテンプレートエンジンじゃない。調子に乗るな"
  • https+アクセストークンを使ってGitHubのアカウントを使い分ける - Qiita

    はじめに GitHubを使っていると、一つのマシンで複数のアカウントを使い分けたい、というケースがあります。 ネット上ではすでにいろんな方法が紹介されていることからも、実際にそういうケースは少なくないのでしょう。 GitHubで複数のアカウントを使う場合のSSHの設定 【メモ】githubの複数アカウントにSSH接続するための設定手順 GitHubの複数アカウントを使い分けるならSSHよりhttpsの方がいいんじゃね?という話 個人的に、HTTPSとアクセストークンを使った方法が一番よいのでは?という結論に落ち着こうとしており、そのための手順があまりなかったので、まとめました。 ちなみに、リポジトリへのアクセスにはSSHとHTTPSがありますが、GitHubとしてはHTTPSの方が推奨されているみたいですね (Which remote URL should I use?) 想定するユースケ

    https+アクセストークンを使ってGitHubのアカウントを使い分ける - Qiita
  • Chromeのヘッドレスブラウザがやってくる。というわけで試してみた。 - Qiita

    注意:この記事は古いです。2016年06月06日に書いた記事です。 2017/04/14 追記: Chrome59から正式にヘッドレスモードが搭載されます。 ヘッドレスモードではPhantomJSなどのようにJavaScriptでヘッドレスブラウザを制御することも可能です。 https://chromium.googlesource.com/chromium/src/+/master/headless/ 2017/06/07 追記: NightmareJS風に操作できるライブラリをリリースしています。 ヘッドレスChromeをもっとも簡単に操作できると思われるNightmareJS風ライブラリ http://qiita.com/devneko/items/3689b46fc2bcdb8121a8 先日、Googleの人が「Headless Chrome is coming so soon」

    Chromeのヘッドレスブラウザがやってくる。というわけで試してみた。 - Qiita
  • Chromeで動画のループ再生しようとしたらコケた話 - Qiita

    もしかしたらその手の方々には常識かもしれないけど、覚書的な意味で。 あらすじ サイトにループ動画素材使いたい Firefoxで見たらちゃんとループしてる Chromeでみたら一回で止まってる jsで無理やりループさせようとした 結論としては 動画置いてたレンタルサーバーのせいだった jsで無理やり #とは html5のvideo要素をjsで制御する際、現在の再生秒数であるところのcurrentTimeというプロパティを使います。 currentTimeに0を入れれば再生時間が0秒目になって事実上のループ……再生終了イベントであるendedも見ればなおよし……のはずが。 ChromeでcurrentTimeが無視される そんなバカな。 currentTimeプロパティ自体はどこの皆さんも使っているもので、Chromeであれば尚更使えないなんていう話はない。しかもFirefoxやIEでは使える

    Chromeで動画のループ再生しようとしたらコケた話 - Qiita
    pirosikick
    pirosikick 2016/06/01
    “partial contentが使えないとcurrentTimeが使えない”
  • webpackのDLLバンドルを使ってビルドを速くする - Qiita

    How to make your Webpack builds 10x faster 「webpackビルドを10倍速くする方法」というスライドを見つけた。 内容を要約すると、こんな感じ。 css-loaderは0.15未満を使う cacheDiretoryはデフォルトで無効だから有効にする HappyPackを使う DLLバンドルを使って、静的コードのバンドルを分ける DLLバンドルは聞いたことがなかったので調べた。 DLLバンドルとは Dll bundles doesn't execute any of your module's code. They only include modules. モジュールをまとめただけのbundleで、scriptタグで読み込んだ時点では含まれるモジュールは実行されず、他のbundleから参照された時に実行される。 <!-- こういうイメージ -->

    webpackのDLLバンドルを使ってビルドを速くする - Qiita
    pirosikick
    pirosikick 2016/05/27
    社内勉強会資料〜
  • はじめてのincremental-dom - Qiita

    ※ これは2016/5/25の記事です。参考にしないでください。 現在、Incremental DOMはAngular Ivyに含まれます。 https://github.com/angular/angular/blob/2b4d5c75486534decef4030d4166806878929e4c/package.json#L80 はじめに google/incremental-domはGoogleが開発しているDOMをレンダリングする為のライブラリです。 DOMを生成し、データの更新時は差分をレンダリングします。 virtualDOMとの違いDOMの生成時に大量にメモリーを消費しないそうです。 const component = data => { elementOpen('div') text(data) elementClose('div') } patch(document.b

    はじめてのincremental-dom - Qiita
  • Hot Module Replacementの設定と仕組みを理解する - Qiita

    Hot Module Replacement (HMR)はwebpackの提供する仕組みで、画面の再描画すること無しにJSの変更をブラウザに適用してくれる開発ツールです。再描画無しにと言うのは、「F5とかリロードボタンを押さなくても自動的に再描画してくれますよ」ということではなく、文字通り変更したモジュールのみを置き換えてくれます。 Reactを導入して開発環境を整えると、当然のようについてくるので使う分には意識する必要もないですが、、 で、これって何なんだっけ?というのを整理しました。 HMRは、Websocket通信と、ソースコードに注入されたいくつかのRuntimeと呼ばれるスクリプトによって実現されます。ソースコードの変更をコンパイラが検知し、WebSocketでブラウザに通知、通知を受け取ったRuntimeはサーバーから変更分のスクリプトを取得してモジュールを置き換えます。 前述

    Hot Module Replacementの設定と仕組みを理解する - Qiita
  • トークンを利用した認証・認可 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
  • 文章中から韻を踏んでいるフレーズの組み合わせを検出する gem を作りました - Qiita

    依存関係 natto が利用できる必要があります。 使い方 Rhymer::Parser.newの引数に文章を渡すと、検査結果が含まれたインスタンスが生成されます。インスタンスのrhymesメソッドを実行すると、韻を踏んでいるフレーズの組み合わせの配列が返されます。 require "rhymer" rhymer = Rhymer::Parser.new("今日はとても良い天気ですね。こんな日は自然に元気になります。") rhymer.rhymes.each do |rhyme| puts [rhyme[0], rhyme[1]].join(" ") end require "rhymer" lyric = <<"LYRIC" 1853年(嘉永6年)、長崎の出島への折衝のみを前提としてきた幕府のこれまでの方針に反して、江戸湾の目と鼻の先である浦賀に黒船で強行上陸したアメリカ合衆国のマシュー

    文章中から韻を踏んでいるフレーズの組み合わせを検出する gem を作りました - Qiita
    pirosikick
    pirosikick 2016/05/23
    交渉は韻が踏みやすいんやなw
  • オブジェクト指向の欠点をカバーする努力 - Qiita

    オブジェクト指向の問題点 インターネッツを良くするポエムというのは、「こういう問題に対して、こういうソリューションでカバーしてきたよ」をみんなでシェアすることだと思うので、ここに挙げられていることの一部に対して、オブジェクト指向界隈が今までこんな工夫をしてきたよとか、僕の目から見えている「技術発展の流れ」について書いてみようと思います。まあ僕も全ジャンルをまんべんなくやっているわけじゃないし、一部想像で補っている部分もあります。他にもあればぜひシェアしてください! 上記のサイトで書かれている内容のうち、 オブジェクトのつながり具合が手続きでしか表現できない/知識表現が手続き側に偏っている 関係性が表現できない ユーザレベルでの部品化再利用に全然なっていない について取り扱います。 オブジェクトのつながり具合が手続きでしか表現できない/知識表現が手続き側に偏っている 元は2項目ですが、内容的

    オブジェクト指向の欠点をカバーする努力 - Qiita
  • スマホアプリ開発時にさくっと叩けるAPIサーバをnginx・Let’s encrypt・JSON Serverで構築する - Qiita

    目的 スマホアプリ開発の初期段階でまだAPIの仕様等がフワっとしているような状況で、さくっと試験用のAPIサーバーを立てて、APIをちょこちょこいじってみながらアプリ開発をしたい。 ローカルマシンにJSON ServerでAPIサーバ立てるのが一番早そうだったけど、どうせならネットワーク上に置いてHTTPSでAPI叩いてみたいよね、ってことで構築してみた。 完成予定図 スマホアプリ開発用PC ↓↑ HTTPS(Let’s encrypt) ↓↑ Nginx(:443) ↓↑ JSON Server(:3000) ※ サーバはEC2使ってますがお好みに合わせてどうぞ 構築手順 1. AWSとドメインの準備 1. 管理コンソール等からEC2インスタンスを立ち上げる 今回はOSは Amazon Linux AMI 2016.03.1 (HVM) を選択 インスタンスタイプはt2.microを選択

    スマホアプリ開発時にさくっと叩けるAPIサーバをnginx・Let’s encrypt・JSON Serverで構築する - Qiita
  • ロシアの天才ハッカーによる【新人エンジニアサバイバルガイド】 - Qiita

    弊社に5年間在籍していたロシアの天才ハッカーが先日退職しました。 ハッキング世界大会優勝の経歴を持ち、テレビ出演の経験もある彼ですが、正直こんなに長く活躍してくれるとは思っていませんでした。彼のようなタレントが入社した場合、得てして日の大企業にありがちな官僚主義に辟易してすぐに退職するか、もしくはマスコットキャラとして落ち着くかのどちらかのケースがほとんどなのですが、彼は最後まで現場の第一線で活躍してくれました。 そんな彼が最後に残していった退職メールがなかなか印象的だったので、その拙訳をここに掲載します(転載について人同意済み。弊社特有の部分は一部省いています。) ああ、なんという長い旅だったろう。この会社で5年間もセキュリティを担当していたよ(諸々の失敗は許してくれ) 俺は他の退職者のように面白いことは書けないが、私のこの退職メールを読んでくれている人、特に新人エンジニアのために、

    ロシアの天才ハッカーによる【新人エンジニアサバイバルガイド】 - Qiita
  • 行政サイトを作る時に気をつけておいた方がいい事 - Qiita

    県や市の公式ホームページ制作の経験から、気をつけておきたい点をメモに残しておきたいと思います。 納品前 納期が3月に集中する 行政サイトの場合、お金は年間予算や国からの特別補助金などから支払われます。つまり基的に年度を跨ぐことが出来ません。(保守にかかる費用は別です)その為、行政の案件に頼っている制作会社は納期が重なり3月が滅茶苦茶忙しくなります。 年度末は余裕を持ったスケジュールを組んでおきましょう。 見積もりは2割増しで ここで言う見積とは入札時の見積もりではありません。行政の案件をいくつかこなして担当者と仲良くなってくると、コンペの上限金額を決めるために事前に見積を頼まれる事があります。「もし○○みたいな案件だったらいくら位でできそう?期間と見積もり貰えると助かるんだけど。」みたいな感じです。サラリーマン金太郎の東北編で出てきたアレです。大事なのはここで割引など一切考えずに、むしろ

    行政サイトを作る時に気をつけておいた方がいい事 - Qiita
    pirosikick
    pirosikick 2016/05/05
    やりたくない
  • Android/iOS同時対応動画をエンコードする心得 - Qiita

    AndroidとiOS両方に対応するならmp4を使う 動画を撮るとき、Androidは.mp4、iOSは.mov (QuickTime)形式で保存されます。 mp4はmovは、様々な形式(コーデック)の動画情報や音声情報を含むことができる「コンテナフォーマット」で、中身の動画や音声の情報の保存方法は別途決められています。AndroidやiOSで動画を撮影した場合、動画コーデックは H.264(別名MPEG-4 AVC) 、音声コーデックはAACで保存されています。 .movはそのままの形式ではAndroidでは再生できませんが、コンテナなので、動画や音声の情報をデコード・エンコードせずにデータをコピーするだけで.mp4に変換できます。iPhoneは.mp4も再生できるので、 .mp4に変換するとAndroid/iOSの両方に対応 できます。 (.mp4は.movをベースに作られています)

    Android/iOS同時対応動画をエンコードする心得 - Qiita
  • 関数型プログラミングはまず考え方から理解しよう

    関数型プログラミングが注目されて久しいです。 そろそろ勉強しておかないとなぁということで調べてみるものの、情報として出てくるのは"高階関数","カリー化","遅延評価","モナド"などの物々しい単語の数々。これらを勉強して理解した気になったものの、プログラムを書こうと思うと全然書けませんでした。 結局、関数型言語を実現する手段を学ぶ前に関数型と言われるパラダイムを理解しないことには書けません。ということでここでは関数型プログラミングの"手法"ではなく、オブジェクト指向と関数型プログラミングを比較しながら考え方の違いを見ていきます。 日の例題 プログラミング課題を設定してオブジェクト指向と関数型で解答してみましょう。 課題: 唐揚げ弁当がいくつかあるとします。それぞれ唐揚げが複数入っています。 この中からx個の唐揚げをつまみいするプログラムを作りましょう。 つまみいはバレないようにする

    関数型プログラミングはまず考え方から理解しよう