タグ

ブックマーク / qiita.com/niisan-tokyo (21)

  • RDSでDBをスナップショットから復元する - Qiita

    こんにちはみなさん サービスを更新するとき、ときには現時点でのデータベースのデータ構造に手を入れる必要が出てくるかもしれませんが、そんなときは必ずバックアップをとっておくものです。 随分前であれば、mysqldumpとかを使って生のダンプファイルを取っておいて、復旧時はそのダンプファイルを入れ直すというふうにやっていたと思うのですが、AWSのRDSではスナップショットを定期的に、もしくは能動的に取得することができ、このスナップショットからDBを復元するという手段があるので、それを頼りにする場合があるでしょう。 私の場合は、コンテナ運用時にはそもそもRDSへ直接アクセスする手段を封じていますので、スナップショットによる復元以外には (セキュリティグループの設定を変えたりしない限り) 方法がありません。 そんなわけで、RDSでスナップショットからDBを復元するときに、引っかかりそうになった部分

    RDSでDBをスナップショットから復元する - Qiita
  • コンテナ運用しているLaravel アプリケーションで CloudFront で プライベートコンテンツを配信するための private key をどう扱うか

    Route::middleware('auth')->group(function () { Route::get('contents/{name}', function ($name) { $content = Storage::get($name); return response($content, 200); }); }); しかしながら、これはわざわざシステムの内部を通って、ゴリッとデータをぶん投げているわけですから、なんとなく気持ちが悪いように思います。 なにより、動画や画像など、重たいファイルをシステム内から大量に配信すると、速度が非常に気がかりとなりますので、基的にはCDNのようなキャッシュを使ってシステムを介さずに配信したいところです。 CloudFrontを使った配信 プライベートコンテンツ配信の流れ AWSの提供するCDNであるCloudFrontはS3に配置したコ

    コンテナ運用しているLaravel アプリケーションで CloudFront で プライベートコンテンツを配信するための private key をどう扱うか
  • コンテナ開発の始め方 - Qiita

    社内向けの講演のために作ったスライドですが、わざわざGoogle プレゼンテーションにするまでもなかったし、特段秘密の情報もなかったので、Qiitaスライドの方に作りました 多分ちょいちょい追記します 対象 まだコンテナ開発していない人 コンテナ開発がうまくいかない人 既存プロジェクトをコンテナ化したい人 お品書き コンテナの概念のおさらい コンテナでの開発 docker のネットワーク docker-compose を使った開発の効率化 コンテナの概念のおさらい VM と コンテナ コンテナの目的 ある前提となる状態のもとで、特定のコマンド(のみ)を実行したときの動作をシミュレートすること サーバの中のプロセス $ ps -A PID TTY TIME CMD 1 ? 00:00:00 init 2 ? 00:00:00 kthreadd 3 ? 00:00:04 ksoftirqd/0

    コンテナ開発の始め方 - Qiita
  • 時系列予測を一次元畳み込みを使って解く with Keras - Qiita

    こんにちはみなさん。 記事はKerasアドベントカレンダーの6日目となります。 他の方と比べてしょうもない記事ですが、がんばります。 時系列予測とか時系列解析をするのに、機械学習界隈で一般的な手法はRNN ( リカレントニューラルネットワーク ) だと思うのですが、これの理論て結構難しくて、特にLSTMなんて、私は未だによくわからないし、コードを見てもちんぷんかんぷんです。 そんなの知らなくてもとりあえず動けば問題ないっちゃ問題ないんですが、やっぱりある程度自分が動きを理解できているもののほうが、安心して使えるというものです。 というわけで、一次元畳み込みを使って時系列解析をするという話が出てきているので、kerasを使ってその使い心地を調べてみました。 畳み込み( Convolution ) を使ったニューラルネットワーク ( CNN ) は、今や機械学習の代名詞のようなものですが、C

    時系列予測を一次元畳み込みを使って解く with Keras - Qiita
  • ES6の新機能: 「let」「const」宣言を調べてみた - Qiita

    JavaScript はES6によっていろいろと機能が充実することになっているのですが、classとかgeneratorとかがよく取り上げられていると思っ立てたので、てっきりこれだけだと思ったのですよ。 まさか他にも機能があるとは。。。 というわけで、あまり話題に登っていないように見える新機能。。。というか新宣言について調べてみました まさかの記事書きで年越すとは・・・ 宣言が追加されてた! JSの宣言文といえば、「var」しかなかったのですが、なんとES6にて、「let」「const」が追加されていたようです。 いまのところ、'use strict'を使わないと動きませんでした。 let ・・・ 「再宣言」が不可 まずは「let」宣言です。 こいつは端的にいうと、「再宣言ができない」宣言です。 簡単な例を以下に示しています。 'use strict' var spam = 12;// 当

    ES6の新機能: 「let」「const」宣言を調べてみた - Qiita
  • [それWeb] HTMLでデバイスのカメラから写真をとり、PHPでOCRにかけて文字列を返す - Qiita

    それWebでできるよ! こんにちは皆さん スマホのカメラを使って写真を撮ると、なんと文字列が返ってくる。 そんなアプリがあるような気がするのですが、現在ではブラウザでもカメラにアクセスできるので、わざわざアプリにする必要もなく ( OSの差異にあまり煩わされることなく ) Webアプリで簡単に作ることができるのではなかろうか、と考えました。 考えたらやるしか無いでしょう。 休日を利用して、ちゃっちゃか作ってみました。 あ、いつものようにPHP使いますね TL;DR 今回の見所は以下のとおりです。 HTML + JavaScriptでカメラを取る tesseract-ocrをインストールしたコンテナを作る PHPでOCRする 何がやりたいのか 掲示板とかで無線wifiのssidとか貼ってあるとき、いちいち手打ちするの面倒なんで、カメラで取ってそのままはっつけられるようになったら嬉しいのになぁ

    [それWeb] HTMLでデバイスのカメラから写真をとり、PHPでOCRにかけて文字列を返す - Qiita
  • Laravelのマニュアルにない?小技: Eloquentのboot時にtraitのbootを別に走らせる - Qiita

    Laravelのマニュアルにない?小技: Eloquentのboot時にtraitのbootを別に走らせるPHPtraitLaravel こんにちはみなさん Laravelを半年以上使い続けてきたのですが、不気味なほどよくできているというか、「こんなんできないかなぁ」とか思うと、大体Laravelで完結できちゃったりします。 一方で、マニュアルを漁っても出てこない機能とかあって、結局ソース読んだりLaracastを見に行ったりするわけです。 そんなわけで今回は、いろんな使いみちがありそうなのに、マニュアルに見当たらなかった、Eloquentに関する小技を紹介します。 (SoftDelete眺めてたら見つけました)

    Laravelのマニュアルにない?小技: Eloquentのboot時にtraitのbootを別に走らせる - Qiita
  • PHPアプリでファイルをクライアントからAWS S3に直接JavaScriptで送付する方法 - Qiita

    こんにちはみなさん サーバサイドの実装やっていると、クライアントには一見すると容易いのに、サーバ側では困難な状況が発生している、ということがあります。 ファイルアップロードなんてまさにそれで、PHPだとアップロードしたファイルの分だけメモリを確保しよるので、下手に動画ファイルなんてあげられると、送信途中でメモリを使い尽くしてリクエストが落ちるなんて事態になります。 HD画質の長時間動画なんて送信された日には、数GBのメモリを使うので、使用するインスタンスのサイズもそれ相応に大きくしなければならなかったりして、費用効率もあまり良くないように思います。 というわけで、やり方を幾つか探ったところ、JavaScriptを使ってクライアントから直にS3へアップロードする技があったので、そいつを実現してみましょう。ミニマム実装なので、ダサい感じですが、例示するものとしては問題ないでしょう。 TL;DR

    PHPアプリでファイルをクライアントからAWS S3に直接JavaScriptで送付する方法 - Qiita
  • Apacheログをfluentdで読み出してelasticsearchに転送する流れをdockerでシミュレートするハンズオン - Qiita

    Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5 User www-data Group www-data HostnameLookups Off LogLevel warn LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_core_module modules/mod_authn_core.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_user_module modules/m

    Apacheログをfluentdで読み出してelasticsearchに転送する流れをdockerでシミュレートするハンズオン - Qiita
  • Travis CIでDockerを利用したらハマったしょうもない日記 - Qiita

    こんにちは皆さん CIっていい響きですよね! 継続的インテグレーション、なんて日語に訳すとなんのことだかわからないところもおしゃれです。 現在ポピュラーなCIサービスといえば、github連携のTravis CIじゃないかと思います。 ここは自分もおしゃれ開発の仲間入りしたい!とばかりに、Travis CIを使ってみたのですが、昔普通にphp環境で組んだことがあったので、今回はdockerを使ってしまおうと思い至ったのです。 ...まあ、オシャレで優雅に見える開発も、水面下で泥臭い検証実験を繰り返しているものです。 そんなわけで、Travis CI連携して、微妙にハマったところを徒然に記していきます。 CI (継続的インテグレーション: continuous integration) そもそも、継続的インテグレーションって何でしょうね。 我々の業界では、基的には以下の意味で使用されてい

    Travis CIでDockerを利用したらハマったしょうもない日記 - Qiita
  • Docker導入のための、コンテナの利点を解説した説得資料 - Qiita

    何がしたいのか 最近はDockerを導入したサービスがガンガン出てきている一方、現場でのDocker導入に足踏みをしているところもあると思います。 今回はDockerを導入するために、「コンテナを利用するとこんなに便利!!」という主張を展開することで、現場でのDocker導入の推進をしたいと思います! まあ、スライドモードを使いたかったんですよ TL;DR コンテナと仮想環境は別物だよ コンテナでの運用するといいことがたくさんあるよ どんな環境でも同じように動かせる デプロイ・ロールバックが簡単 システムが簡単に把握できる あいのり環境もいける コンテナとは コンテナ ≒ VM ?? Docker導入しようって言うとこんな話を聞くことがある コンテナってVMみたいなもんでしょ? VMの上にまたVM作るの? AMI使ってるから、わざわざコンテナにする必要がない コンテナ != VM VMとコ

    Docker導入のための、コンテナの利点を解説した説得資料 - Qiita
  • [riot 習作]riotでAPIテストツールを作ってみよう - Qiita

    皆さん、こんにちは 最近のJavaScriptのフロントサイドのフレームワークもしくはアーキテクチャは、AngularReactJSが主流となっているように感じますが、一方で、vue.jsやriot.jsのような大企業がバックにないようなフレームワークにも光が当たってきています。 個人的にはどれがいいというよりは、作成するアプリの性質に応じて使い分けるのがいいんじゃないかなぁと思いますが、弊社内ではAngular, ReactJS, vue.jsを推す人はいるのですが、riot.jsを推す人がいなかったので、じゃあ私がやっちゃおうということでやりました。 TODOアプリとかはすでに公式サイトにあるので、ここではAPIをテストするためのツール作成を通して、riot.jsの挙動を調べてみましょう。 ちなみに今回のはriot 3.0を使っているのでそれ以前のバージョンを使っている場合は、動かな

    [riot 習作]riotでAPIテストツールを作ってみよう - Qiita
  • Docker machine のメモリを増やす方法 - Qiita

    こんにちはみなさん 今回はしょうもないことでふらふらと調べまわった挙句、 それほど困るものでもなかった問題に遭遇したので、 とりあえず備忘録として挙げたものです Docker Toolbox 今回はいろいろ面倒になったので、Docker Toolboxでdocker環境をオールインワンで突っ込んでいます Docker Toolbox は docker を動かすために十分な環境を用意するためのインストーラです。 これを使用すると、windowsだろうがmacだろうが、ネイティブのコマンドライン上でdockerコマンドを使えるようになります 一昔前のboot2dockerですな インストールが完了すると「Docker Quickstart Terminal」というアイコンが出てきて、これを起動すると、dockerを動かすための環境をセットアップして、動作環境を整備した状態にしてくれます Doc

    Docker machine のメモリを増やす方法 - Qiita
  • Laravel + MySQL5.7 で日本語全文検索をする方法とちょっとした注意点 - Qiita

    皆さんこんにちは ちょっとしたアプリケーションを作っていると、キーワードやフリーワードを利用した検索が必要になったりします。 でも、そのときにLIKE検索なんてやっていると、全データを走査する可能性があり、あまり気分の良いものではありません。 そこで、適当な全文検索エンジンを使ってインデックスを張っておきたいなと思うわけですが...MySQLの場合、5.6まではデフォルトで(InnoDBに)日語全文検索エンジンを入れていなかったりと、少々ハードルが高かったのです。 今回はMySQL5.7でデフォルトでNgramが搭載されているようなので、Laravelで全文検索を実装してみましょう。 例によって今回もLaradockを使用して即席環境を構築しています。 MySQLに全文検索が来た! 大昔のtritton, ちょい昔のgroongaのように、外部のプラグインを導入することなく、裸のMySQ

    Laravel + MySQL5.7 で日本語全文検索をする方法とちょっとした注意点 - Qiita
  • Laravelのミドルウェアの実施順検証と小技 - Qiita

    こんにちはみなさん 以前に@remore に「ミドルウェアってなんなんすかね?」って聞いたら、「ミドルウェアほど幅広く使われる言葉はそうないよね」と応えてきました。 一番初めに私が聞いたミドルウェアの意味は、アプリケーションが動くための周辺機構・・・DBとかキャッシュとかを表していましたが、最近ミドルウェアと聞くと、アプリケーションに於いてリクエストからアプリの実処理に行く間に割り込む中間処理とかフィルタリングとかを意味しているようです。 随分前に、以下のような絵を書いて、自分でミドルウェアについて納得したものです。 今回は、この絵を利用してミドルウェアの動作を再確認しつつ、Laravelのミドルウェアで使える小技を幾つか紹介してみましょう。 自分の持っているLaravelが5.2なので、今回もLaravel5.2を使います。 TL;DR Laravelのミドルウェアは処理の前後に割り込ん

    Laravelのミドルウェアの実施順検証と小技 - Qiita
  • Laravelでテストコードを書くためのチュートリアル - Qiita

    こんにちは皆さん 以前にPHPerもテストコード書こうぜ!みたいな記事を書いたわけですが、いざテスト書こうとするといろんな問題に突き当たります。 特に大きな問題は可読性だったりしますが、この可読性の問題を大幅に解決してくれたのが、Laravelのテストでした。 Laravelのユニットテスト テストの「可読性」問題 テストの可読性は大きな課題です。 というのも、テストというのは仕様と実装があっていることを確かめるものであるため、テストの可読性が低い<=>テストが何の仕様を確認しているかわからない状態では、そのテストの存在意義に疑問符がつくでしょう。もちろん、そんな状態では仕様変更が発生しても、どの箇所のテストを直せばわからなくなり、「結果としてテストコードが邪魔」になるというジレンマを生み出してしまいます。 また、可読性が低いということは、書きにくいということと同義ですので、「テストを書く

    Laravelでテストコードを書くためのチュートリアル - Qiita
  • Laravel使った開発にLaradockを使うというのはどうだろう - Qiita

    こんにちは皆さん dockercon やばかったですね docker swarm モードの導入が個人的に一番衝撃的でした。 kubernetesみたいな外部ツール使わなければならなかったことが、docker engineでできてしまうという便利感がやばすぎです そんなわけで、最近Docker使った開発に染まりきってきたところで、Dockerを使用したLaravel開発環境があるというので、早速導入してみたわけです。 最近やたらと人気の出てきたフレームワークです。 私はcodeigniterとかphalconとかは使っていたのですが、あまりlaravelを業務で使うことはありませんでした。 しかし、composerやオートローダを使用した自由な開発ができるフレームワークだし、人気もあるのでさわってみたいなぁとは思っていたのです。 Homestead? Homesteadはlaravel開発用

    Laravel使った開発にLaradockを使うというのはどうだろう - Qiita
  • PHP開発でComposerを使わないなんてありえない!基礎編 - Qiita

    久方ぶりにPHPのレガシーなシステムを触りましたが、なんというか。。。 名前空間とcomposerが無いだけで、こうも大変になるのかと思いましたね というわけで、もはやデファクトスタンダードとなったcomposerを使用した開発について、その有り難みを噛み締めつつ、まとめていきたいと思います composer composerは依存性管理ツール composerは依存性管理ツールです。。。ってナンノコッチャですが、例えば以下の状況を考えてみましょう 便利そうなライブラリAを使用したいのだが、このライブラリは更に別のライブラリB, Cを必要としている。さらに、ライブラリBはライブラリD, Eを。。。 そう、ライブラリの依存性地獄です。 使用したいのはAなのに、そのために必要なライブラリがボコボコ必要になる こんなのは日常茶飯事です。 でもcomposerがあればどうでしょう。 ライブラリAが

    PHP開発でComposerを使わないなんてありえない!基礎編 - Qiita
  • PHPでもジェネレータを使って、非同期処理を同期処理の文法で書ける - Qiita

    こんにちは皆さん。 PHPは基的に同期処理の言語構造を指定ます。 非同期処理の構造を入れるには、Reactのような別機構を導入する必要があります。 で、非同期処理を入れたらやりたくなるのが、非同期処理を同期処理っぽく書くことです。 以前に、JavaScriptのジェネレータを使うことで、非同期処理を同期処理っぽく書くことができると紹介しました。 で、PHPはどうかというと、既にジェネレータがPHP5.5で追加済みです。 そうです、PHPでも非同期処理を同期処理の文法で書くことができます。 ...まあ、PHPで非同期処理を書くこと自体が、かなり冒険的なんですがね..。

    PHPでもジェネレータを使って、非同期処理を同期処理の文法で書ける - Qiita
  • KoaでWeb開発: Koaの検証を通じてミドルウェアの概念を理解する - Qiita

    はじめに 動機 やっすいサーバでしかしパフォーマンスは出て、しかも大量のリクエストが来ても大丈夫なサービスを立ち上げたい。。。 そんなわがまま放題な欲求を満たすためにはやはりnode.jsで動作するアプリケーションがいいんじゃないのか、と思ったのです。 しかし、非同期とか超苦手だし・・・と思っていたところに、このKoaというフレームワークが来たわけです。 これまで、何回にもわたって、ES2015の話題を出してきたのは、ひとえにこいつを使うためでした。 ミドルウェア? しかし、Koaの説明の中で、頻繁に「ミドルウェア」というキーワードが出てきます。 自分のこれまでの認識だと、「DB」とか「Apache」とかのを表しているのかと思いましたが、どうも違いそうだと。。。 で、検索してもミドルウェアという言葉の意味がわかっている前提で述べられているものばかり。。。 こいつを自分の中で理解できないかぎ

    KoaでWeb開発: Koaの検証を通じてミドルウェアの概念を理解する - Qiita