サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Switch 2
qiita.com/niisan-tokyo
こんにちはみなさん 最近はAIの話がそこらかしこで聞こえます。 何というかこう、バズワードっぽい感じがしますし、まあ、PHPerには関係ないよね、なんて思っていたわけですが。 CTO: やるよ ワイ: え? CTO: ウチもAIやるよう って感じで、我々もAIの波に乗らないとダメみたいです。 そんなわけで、今回はPHPerでもAIの波に乗るために、openai clientを導入して遊んで検証をしてみようと思います。 そもそもAIの波に乗るとは × AIを作る ○ AIを利用する AIの波に乗ると言っても、AIを作るわけではないです。作るには圧倒的に自分の知識が足りませんし、あったとしてOpen AIが提供している大規模言語モデルに勝てるようなものを作るのはちょっと現実的ではないです。 そもそも、そんな苦労をしなくても、Open AIが有用なAPIを提供しているわけですから、これを利用する
こんにちはみなさん Laravelは割と自由に書かせてくれるので、今作っている分を実装するには楽なんですが、全体として実装が微妙にブレることがあるので、後々変な不整合が出そうで怖くなります。 CakePHPはそのあたりをルールによって縛っていて、よりコード量が少なくなるほど彼らの提供する正しい実装になるようになっています。 まあ、何が言いたいかって言うと、自分の実装をあまり信用していないので、ある程度自動生成してもらえれば、やりやすいんじゃないかなぁって思った次第。 そんなわけで、Laravelで大事なコマンドである make:model に注目していきます。 三行で Laravel artisan コマンドの make:model でモデルを自動生成 make:model のオプションで必要なファイルのガワを作れる モデルの名前空間を変えたい場合はコマンド自作して上書き make:mod
<?php $data = [ 'A' => ['A1', 'A2', 'A3'], 'B' => ['B1', 'B2', 'B3'], 'C' => ['C1', 'C2', 'C3'] ]; ?> <html> <header> <meta charset="utf-8"> <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous"> </header> <body> <div id="app"> <div class="row
皆さんこんにちは PHP7.4でpreloadが来るっていうので、ワクテカしているわけですが、実際どれくらい早くなるのかしらって思いまして、ちょうど色々検証していたので、Laravelでも軽くやっちゃおうぜって思ったので、やってみます。 あと4日ですね!! 三行で preloadが来るよ preloadで読み込み済みの状態を作れるよ Laravelに導入すると、結構早くなるよ Preload PHP7.4でopcacheにpreloadという機能が入ります。これの概要は opcacheの設定にpreloadを実行するヘルパーファイルを指定できる webサーバを起動するとopcacheがヘルパーファイルを実行する ヘルパーファイル内でキャッシュ化したものは、通常のアクセスにおいて、すでに読み込まれたものとしてみなされる そう、読み込み済みですよ! 簡単に読み込み済みの効果を見るために、以下の
それWebって全然流行らんですね! こんにちはみなさん。 ミーティングとかで「ブラウザで録画とかできますよw」とフライング気味に言ってしまったのだけど、ほんとうにできんのか?と不安になったので、調べた結果、できるみたいです。 以前にWeb上でカメラを使って文字を撮影して、OCRに書けるという機構を実験しましたが、今回はビデオを録画しちゃいましょう。 TL;DR Gistのコードをindex.htmlにでもコピって、php -SやXamppやDocker使ってlocalhostでアクセスすればすぐ使えるし、httpsでアクセスできればlocalhostである必要もないです。 https://gist.github.com/niisan-tokyo/080d224ea2635a953d2c9955d8d59b2a startボタンを押すと録画を開始し、stopボタンを押すと録画を終了します。
[ Laravel ] 自前で用意する、サービスワーカーを使ったNotificationのプッシュ通知PHPLaravelServiceWorker こんにちはみなさん ブログとか記事サイトとか、はてはPWAとか、Webアプリを利用する際に、プッシュ通知を許可するかどうか、みたいなダイアログが出てきて、巷ではこれをブロックするのがバッドノウハウとして浸透していたりします。 とはいえ、プッシュ通知を使ってPCなりスマホなりに通知を送れたほうが、メールで通知したりするより、カジュアルで済むように思います。 また、プッシュ通知が鬱陶しいと忌避する気持ちもありますが、では自分が実装したらどういうふうに作れるのか、知らないままでいるというのも気持ちの悪い話です。 そんなわけで、プッシュ通知の良し悪しはともかく、とりあえずプッシュ通知の仕組みを習得するために、自前でプッシュ通知の仕組みを作っていきまし
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に配置したコ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
社内向けの講演のために作ったスライドですが、わざわざGoogle プレゼンテーションにするまでもなかったし、特段秘密の情報もなかったので、Qiitaスライドの方に作りました 多分ちょいちょい追記します 対象 まだコンテナ開発していない人 コンテナ開発がうまくいかない人 既存プロジェクトをコンテナ化したい人 お品書き コンテナの概念のおさらい コンテナでの開発 docker のネットワーク docker-compose を使った開発の効率化 コンテナの概念のおさらい #VM と コンテナ https://qiita.com/niisan-tokyo/items/88a53a1b4aa7ad60723e コンテナの目的 ある前提となる状態のもとで、特定のコマンド(のみ)を実行したときの動作をシミュレートすること サーバの中のプロセス $ ps -A PID TTY TIME CMD 1 ? 0
こんにちは、皆さん PHP勉強会の第126回にて、タグ付けデプロイの話をしたのですが、十分に思想的な背景を説明できていなかったので、この場で説明をしようかと思います。 前提 勉強会で話した内容などについては、以下にまとめておきます。 タグ付けとは git tag を使って特定のコミットに対して目印をつける行為を指しています。 タグとリリース git tag自体はただ目印をつけるだけですが、その目印に意味を付加することができます。 GitHubを常用している方なら、すでにご存知かと思いますが、GitHubではリリースの概念があり、それは特定のコミットに対し、リリース用のタグ、例えばバージョン番号 ( vx.x.x )をつけることでなされます。 GitHubのプロジェクト内でreleaseを選択すると、リリースリストとしてのタグの一覧や、タグ付けのUIにアクセスすることができます。 これは同じ
皆さんこんにちは Webサービスを運用していると、時に大量のアクセスが降ってくる場合があります。 これの理由は、攻撃目的だったり何らかのトレンドだったりしますが、なんにせよ大量のアクセスが発生した場合、Webサーバには大きな負荷が発生します。 クラウド環境であれば、まあ、オートスケールで対応するというのがよく言われるプラクティスではありますが、必ずしもオートスケールができる環境ではなかったり、スケールの時間がかかったり、スケールしまくって費用がかかったりします。 DDoSのように集中攻撃が来た場合は、スケーリングでは賄えず、サーバダウンまであります。 そこで、Nginxのngx_http_limit_req_module というモジュールを使うことで、アクセス流量を規制することができるようなので、こいつの使い方を見ていきましょう。 TL;DR Nginxでrate limitを設定すると、
こんにちはみなさん。 本記事はKerasアドベントカレンダーの6日目となります。 他の方と比べてしょうもない記事ですが、がんばります。 時系列予測とか時系列解析をするのに、機械学習界隈で一般的な手法はRNN ( リカレントニューラルネットワーク ) だと思うのですが、これの理論て結構難しくて、特にLSTMなんて、私は未だによくわからないし、コードを見てもちんぷんかんぷんです。 そんなの知らなくてもとりあえず動けば問題ないっちゃ問題ないんですが、やっぱりある程度自分が動きを理解できているもののほうが、安心して使えるというものです。 というわけで、一次元畳み込みを使って時系列解析をするという話が出てきているので、kerasを使ってその使い心地を調べてみました。 一次元畳み込み 畳み込み( Convolution ) を使ったニューラルネットワーク ( CNN ) は、今や機械学習の代名詞のよう
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? こんにちはみなさん サービスを更新するとき、ときには現時点でのデータベースのデータ構造に手を入れる必要が出てくるかもしれませんが、そんなときは必ずバックアップをとっておくものです。 随分前であれば、mysqldumpとかを使って生のダンプファイルを取っておいて、復旧時はそのダンプファイルを入れ直すというふうにやっていたと思うのですが、AWSのRDSではスナップショットを定期的に、もしくは能動的に取得することができ、このスナップショットからDBを復元するという手段があるので、それを頼りにする場合があるでしょう。 私の場合は、コンテナ運用時
それWebでできるよ! こんにちは皆さん スマホのカメラを使って写真を撮ると、なんと文字列が返ってくる。 そんなアプリがあるような気がするのですが、現在ではブラウザでもカメラにアクセスできるので、わざわざアプリにする必要もなく ( OSの差異にあまり煩わされることなく ) Webアプリで簡単に作ることができるのではなかろうか、と考えました。 考えたらやるしか無いでしょう。 休日を利用して、ちゃっちゃか作ってみました。 あ、いつものようにPHP使いますね TL;DR 今回の見所は以下のとおりです。 HTML + JavaScriptでカメラを取る tesseract-ocrをインストールしたコンテナを作る PHPでOCRする 何がやりたいのか 掲示板とかで無線wifiのssidとか貼ってあるとき、いちいち手打ちするの面倒なんで、カメラで取ってそのままはっつけられるようになったら嬉しいのになぁ
こんにちはみなさん サーバサイドの実装やっていると、クライアントには一見すると容易いのに、サーバ側では困難な状況が発生している、ということがあります。 ファイルアップロードなんてまさにそれで、PHPだとアップロードしたファイルの分だけメモリを確保しよるので、下手に動画ファイルなんてあげられると、送信途中でメモリを使い尽くしてリクエストが落ちるなんて事態になります。 HD画質の長時間動画なんて送信された日には、数GBのメモリを使うので、使用するインスタンスのサイズもそれ相応に大きくしなければならなかったりして、費用効率もあまり良くないように思います。 というわけで、やり方を幾つか探ったところ、JavaScriptを使ってクライアントから直にS3へアップロードする技があったので、そいつを実現してみましょう。ミニマム実装なので、ダサい感じですが、例示するものとしては問題ないでしょう。 TL;DR
こんにちは皆さん。 いきなりですが、このエントリーは、JavascriptのフロントのReactとは別物です。 私はPHPerなんですが、最近はnode.jsの話題ばかりだしています。 やはり、やすいサーバで効率よくアプリを動かそうとすると、非同期処理を使ったWEBサーバって魅力的に思うのですよ。 DBアクセスがひどいと、通信に時間とられるので。 では、PHPにノンブロッキングI/Oとか、非同期処理に対応した仕組みはないのかといえば、あるのです。 React ApacheとNginx そもそも前回の結果はちょっと八百長臭いところがあります。 PHPの処理は普通にusleep関数使っていましたが、javascriptの方はsetTimeout使って、非同期処理化していました。 そもそもPHPは通常、非同期処理をしないので、仕方ないといえば仕方ないですが、既にこの辺りで差をつけられています。
皆さんこんにちは 最近Laravel触っててEloquentめっちゃ使いやすいやん!とか、composerも名前空間もないけど、Active Recordの仕組みが良くできているYii Framework1.1 をベースにしておきながら、Active Recordをガン無視する暴挙に出た生ゴミに出会ったりとかしました。 そんな感じで、新旧のいいものとそれを使いこなせずに醜悪なゴミにしている事例を間近に見ているので、イライラを原動力にORMって何がいいんだっけってところを見直してみようかと思います。 オブジェクト関係マッピング (ORM: Object-relational mapping) 原語も訳語も違和感しかないのですが、ここで言う「関係」とは、別にモノ同士のつながりとかではなく、単純に「リレーショナルデータベース」のことを指しているようです。 Wikipediaにある説明は案の定よく
こんにちはみなさん Elasticsearchって、AWSのサービスじゃなかったんです。 そんな感想を持っているのが私だけじゃなかったので、少しうれしくなりつつ、業務でアクセスログやアプリログの格納先として使用することになりました。 そもそも、AWSにはElasticsearchのホスティングサービス( ESS )というのができているし、イマドキだとログはMongoDBに入れるよりもElasticsearchに入れたほうが、後々扱いやすくなるっぽいです。 急にバックグラウンドでdockerを動かすと突然落ちたりするところに不安をいだきつつ、今回はハンズオン形式でログをElasticsearchに突っ込んで、kibanaで見物するところまで見てみましょう。 事前準備 前提として、以下の環境で行います docker: 1.12.2 docker-compose: 1.8.1 Mac 10.11
(´・ω・`) またテストの話してる こんにちはみなさん PHPのテストの話はこれでもかってくらいしてきましたが、ふとPHPを離れると、どれほどテストをしているというのか。 ちょっと前にJavaScriptにオートロードを入れるという俺得な実装をした際にmochaを使ったのですが、本当に基本的な使い方だけで、その深淵が難しそうで手を出せていませんでした。 ところが、@re-fortが言うに「今時のテストはAVAでするんだよ!」ってことらしいので、ちょいと使ってみようと思った次第です AVA https://github.com/avajs/ava ロゴが宇宙っぽくてイカしていますが、mochaみたいなテストフレームワークの一種ですね。 Koajsのissueとかで、mochaからAVAにしようぜって話が出ていました。 starの数も9800あまりと上々の様子です。 売りとしては何よりも「早
Laravelのマニュアルにない?小技: Eloquentのboot時にtraitのbootを別に走らせるPHPtraitLaravel こんにちはみなさん Laravelを半年以上使い続けてきたのですが、不気味なほどよくできているというか、「こんなんできないかなぁ」とか思うと、大体Laravelで完結できちゃったりします。 一方で、マニュアルを漁っても出てこない機能とかあって、結局ソース読んだりLaracastを見に行ったりするわけです。 そんなわけで今回は、いろんな使いみちがありそうなのに、マニュアルに見当たらなかった、Eloquentに関する小技を紹介します。 (SoftDelete眺めてたら見つけました)
皆さんこんにちは 以前にコンテナの何がいいのかを説明する資料を作りました。 「やっぱりコンテナ運用しか無いな」 「コンテナを使わざるを得ない」 「とりあえずdocker入れとけばいいや」 という声が聞こえてきそうです(幻聴) 一方で、コンテナで運用するとなると、新たなる監視体制が必要となります。 例えば、Dockerのコンテナが突然停止した場合、その状況を検知し、新しくコンテナを立ち上げる必要があります。 また、そもそもコンテナが乗っている環境をスケールする必要が出たりして、その場合は新しくスケールされた環境でもコンテナを立ち上げなければならないし、その設定をサーバに書かなければならないけど、そうなると結局コンテナが乗っているサーバがブラックボックス化したりするわけで、なんとかうまく回そうとすると、それなりに気を配ることが多くなってきます。 最近はlaradockを使用する開発者が増えてき
何がしたいのか 最近はDockerを導入したサービスがガンガン出てきている一方、現場でのDocker導入に足踏みをしているところもあると思います。 今回はDockerを導入するために、「コンテナを利用するとこんなに便利!!」という主張を展開することで、現場でのDocker導入の推進をしたいと思います! まあ、スライドモードを使いたかったんですよ TL;DR コンテナと仮想環境は別物だよ コンテナでの運用するといいことがたくさんあるよ どんな環境でも同じように動かせる デプロイ・ロールバックが簡単 システムが簡単に把握できる あいのり環境もいける コンテナとは コンテナ ≒ VM ?? Docker導入しようって言うとこんな話を聞くことがある コンテナってVMみたいなもんでしょ? VMの上にまたVM作るの? AMI使ってるから、わざわざコンテナにする必要がない コンテナ != VM VMとコ
皆さん、こんにちは 最近のJavaScriptのフロントサイドのフレームワークもしくはアーキテクチャは、AngularとReactJSが主流となっているように感じますが、一方で、vue.jsやriot.jsのような大企業がバックにないようなフレームワークにも光が当たってきています。 個人的にはどれがいいというよりは、作成するアプリの性質に応じて使い分けるのがいいんじゃないかなぁと思いますが、弊社内ではAngular, ReactJS, vue.jsを推す人はいるのですが、riot.jsを推す人がいなかったので、じゃあ私がやっちゃおうということでやりました。 TODOアプリとかはすでに公式サイトにあるので、ここではAPIをテストするためのツール作成を通して、riot.jsの挙動を調べてみましょう。 ちなみに今回のはriot 3.0を使っているのでそれ以前のバージョンを使っている場合は、動かな
みなさんこんにちは ここ一年でdockerを使った開発を進めた結果、ついには「デプロイもコンテナイメージでやったらええやん!」みたいに思い、そうするとAWSでECSというサービスがあるじゃあないですかとなって、実際に環境構築を試みたわけです。 謳い文句には「一瞬でできる!」とか「容易に」とか書かれていますが、やっぱり実際にはなれるまで時間がかかるわけです。 web上に転がっている情報は、どういうわけかaws cliの情報ばかりなので、超初心者であり普通のコンソール使おうとしている私にとっては、まあ、解読が難しいわけです。 そうしていると、変なノウハウが溜まっていくわけで、せっかくなのでこっちの方に書きなぐってしまおうと考えたわけです。 というわけでほぼ自分用のECSのQ&Aを作りました。 ただのバッドノウハウになっている可能性もありますが。 概念編 AWSの日本語って、単純に訳したかのよう
皆さんこんにちは ちょっとしたアプリケーションを作っていると、キーワードやフリーワードを利用した検索が必要になったりします。 でも、そのときにLIKE検索なんてやっていると、全データを走査する可能性があり、あまり気分の良いものではありません。 そこで、適当な全文検索エンジンを使ってインデックスを張っておきたいなと思うわけですが...MySQLの場合、5.6まではデフォルトで(InnoDBに)日本語全文検索エンジンを入れていなかったりと、少々ハードルが高かったのです。 今回はMySQL5.7でデフォルトでNgramが搭載されているようなので、Laravelで全文検索を実装してみましょう。 例によって今回もLaradockを使用して即席環境を構築しています。 MySQLに全文検索が来た! 大昔のtritton, ちょい昔のgroongaのように、外部のプラグインを導入することなく、裸のMySQ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? こんにちは皆さん CIっていい響きですよね! 継続的インテグレーション、なんて日本語に訳すとなんのことだかわからないところもおしゃれです。 現在ポピュラーなCIサービスといえば、github連携のTravis CIじゃないかと思います。 ここは自分もおしゃれ開発の仲間入りしたい!とばかりに、Travis CIを使ってみたのですが、昔普通にphp環境で組んだことがあったので、今回はdockerを使ってしまおうと思い至ったのです。 ...まあ、オシャレで優雅に見える開発も、水面下で泥臭い検証実験を繰り返しているものです。 そんなわけで、Tr
こんにちはみなさん 以前に@remore に「ミドルウェアってなんなんすかね?」って聞いたら、「ミドルウェアほど幅広く使われる言葉はそうないよね」と応えてきました。 一番初めに私が聞いたミドルウェアの意味は、アプリケーションが動くための周辺機構・・・DBとかキャッシュとかを表していましたが、最近ミドルウェアと聞くと、アプリケーションに於いてリクエストからアプリの実処理に行く間に割り込む中間処理とかフィルタリングとかを意味しているようです。 随分前に、以下のような絵を書いて、自分でミドルウェアについて納得したものです。 今回は、この絵を利用してミドルウェアの動作を再確認しつつ、Laravelのミドルウェアで使える小技を幾つか紹介してみましょう。 自分の持っているLaravelが5.2なので、今回もLaravel5.2を使います。 TL;DR Laravelのミドルウェアは処理の前後に割り込ん
Koaの勉強をしたいのだけれど、こいつはES2015を前提にしているので、そこで入ってきた機能を一旦おさらいしようと思い、前にやってた宣言やarrow関数の続きみたいな感じで、クラスとメソッドの新しい書き方について見ようかなと思いました メソッド 新しいメソッドの書き方 ES2015だと、メソッドの書き方も新しく追加されているようです。この前のarrow関数含め、メソッドの定義方法には3種類あることになります。 'use strict' let obj = { test1: function(x) {return typeof x}, test2: x => typeof x, test3(x) {return typeof x} }; console.log(obj.test1(1));//number console.log(obj.test2(2));//number console
こんにちはみなさん 偉い人は言いました Whenever you are tempted to type something into a print statement or a debugger expression, write it as a test instead. 何かを print 文やデバッガの式に書きたくなったときは、 代わりにその内容をテストに書くようにするんだ。 -- Martin Fowler さて、これはPHPUnitのマニュアルサイトに、突如として書かれている文言です。 Martinさんといえば、アジャイルソフトウェア宣言をした偉人の一人です。 テストコードを書くとなると、なかなか敷居高いもので、特に既存システムがゴミだったりすると、導入など夢のまた夢ということもママあります。 一方で、echoとかvar_dumpとか使って、こっそり内部動作を覗いて、コードが
次のページ
このページを最初にブックマークしてみませんか?
『@niisan-tokyoのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く