サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 17
qiita.com/mpyw
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
【2021/10/15 追記】現在の自分の思想としてはこのアーキテクチャを推奨しておりません! Laravel Advent Calendar 2017 5日目の記事になります。 昨日の @mpyw さんの記事に引き続き,本日は @mpyw が担当させていただきます。 前提知識 Gate および Policy という認可のための仕組みがある 認可 5.5 Laravel Laravel5.1.11で追加されたGateを試してみる(その1) - Qiita Route Model Binding という URL から判断して暗黙的に Eloquent モデルのインスタンスをコントローラおよびポリシーのメソッドに DI する仕組みがある ルーティング 5.5 Laravel Laravelのルーティングチートシート - Qiita Route::apiResource() メソッドを使うと R
はじめに Qiita芸人とか巷で言われますが Qiita の Advent Calendar は初参加です。お手柔らかにお願いします。 Laravel Advent Calendar 2017 4日目の記事になります。 3日目の記事は, @namaozi さんの Laravel5.5でお手軽にフィルタ&検索付きメモアプリを作るチュートリアル でした。クエリスコープを使ってコントローラをシンプルに保てるのはLaravelのいいところですね!このチュートリアルには登場しませんでしたが,今回の私のエントリはページネーションのお話になります。パフォーマンスチューニングされた複雑なページネーションを書こうとするとコントローラが煩雑になりがちですが,この記事で紹介する手法を使えばとてもシンプルに記述することができます。 ページネーションといえば,Webアプリケーションに頻繁に実装が求められる機能ですね
テンプレ コンパイルに時間がかかるので実用性はほとんどありませんが,実はブラウザ上でコンパイルもできます! <script defer src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.21.0/babel.min.js"></script> <script defer src="https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.9.1/polyfill.min.js"></script> <script type="text/babel"> /* ここにコードを書く */ </script> <script defer src="https://cdnjs.cloudflare.com/ajax/libs/react/15.4.1/react.min.
目的 /var/www/html からアプリケーションのソースを読み取る /var/app/current -> /var/www/html にシンボリックリンクを貼って現在のバージョンを動かしている /var/app/ondeck で次のバージョンのビルドを行う 最終的に /var/app/ondeck で /var/app/current を上書きしたい Elastic Beanstalk において,なんとか1つの環境だけで Blue-Green デプロイができないかな,と試行錯誤した記録です。 手順 前提 /var/app/ondeck で既にビルドが終わっている。 cpおよびmvがGNU版である。 コマンド ln -sf /var/app/ondeck /var/www/new_html && mv -Tf /var/www/new_html /var/www/html sleep
import { delay } from 'redux-saga' export const fetchRandomUser = async () => { await delay((0.3 + Math.random()) * 1000) if (Math.random() < 0.2) { const faces = ['xD', ':D', ':('] throw new Error(`503 Service Unavailable ${faces[Math.floor(Math.random() * faces.length)]}`) } const users = [ { name: 'John' }, { name: 'Mary' }, { name: 'Bob' }, { name: 'Cathy' }, { name: 'Mike' }, ] return users[M
まえがき 、。 と ,. を一発で切り替えられるAppleScript。全国の理系大学生Macerに需要あるんじゃないかな?と思って書いてみました。ただAppleScriptは今まで全く書いたことが無い者なので、改良点などありましたら是非ご報告ください。 本編 Yosemite標準のJapaneseIM用です。 ソースコード tell application "System Preferences" set current pane to pane "com.apple.preference.keyboard" reveal anchor "InputSources" of pane "com.apple.preference.keyboard" end tell tell application "System Events" if not UI elements enabled the
影付き吹き出しの作り方を毎回調べている気がするのでメモっておく。 内側にも要素を設ける方法 概要 一番無難な方法です。特に事情が無ければこれを選択してください。 サイズゼロ要素のborderを太くする方法だと影つきのものに対応できないので,transformのrotate()とskew()を活用する方法を使います。 z-indexを使うことで,前後関係を定義しています。 ひし形の内側部分がテキストと被らないように,四角形の疑似要素を上から被せています。テキストはさらにその上に来るようにします。 長所 位置の微調整をしやすい 倍率によらず表示が安定している 基本的にアニメーションを併用できる 短所 HTMLがやや冗長 実装 data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+Cgo8bWV0YSBjaGFyc2V0PSJVVEYtO
【追記】 もうこれ古いから参考にしないでください https://t.co/mXtcc73Orf — もし Laravel が流行しなくなってこられてきてたとしたら、絶対に捨てられてこられてたと思うか (@mpyw) January 26, 2021 Redux にはその昔 connect()() とかいうクソ API と, Redux-Saga とかいう宗教がありました という考古学です — もし Laravel が流行しなくなってこられてきてたとしたら、絶対に捨てられてこられてたと思うか (@mpyw) January 26, 2021 読者対象 Tutorial: Intro To React - React Example: Todo List · Redux 「チュートリアルそれぞれ一周した!Reactは何とか理解できたが,Reduxがさっぱりわかんねぇ!」 ぐらいの人向け。自分
導入 PHPで配列を結合するための方法は幾らかありますが、それぞれ微妙に挙動が異なるので、ここでは違いが分かりやすいようにまとめてみます。
動機 Guzzleの行き過ぎた抽象化があまり好みではないので,cURLとジェネレータでシンプルに気持ちよく非同期HTTPリクエストが書ける mpyw/co を書いた ↓ それをベースに FriendsOfPHP/Goutte そっくりのインタフェースを備えた,非同期スクレイピングクライアント mpyw/coutte を書いてみた ↓ Coutteのテスト書きたいけど,SymfonyのBrowserKitのソースコード読んでも@param arrayとか雑な型説明しか無くて,どんな構造があり得るのかわかりにくかった ↓ 実際にサーバ立ててテストしたいけど,普通のビルトインサーバだと同時リクエストさばけないしHTTPSの場合のテストができない ↓ これだけのためにApacheとかNginxに依存したくない,composer.jsonに書いておけばそれだけで解決する世界を手に入れたい ↓ php
コンセプト 実際に動かせる,日本語を使ったコードを例示する スガキヤのラーメンはうまい Promiseって何? ラーメンができたときに鳴るスガキヤの呼び出しベルです. ラーメンのお会計をする 呼び出しベルを受け取る この呼び出しベルは 客に出来上がったラーメンを渡す約束 (Promise) そのものを表す この約束があってはじめて客は**その後で (then) ラーメンを受け取る**という予定を立てることができる **約束の後に予定を生やす**というイメージ この後,ラーメンが準備できしだい,以下のイベントが実行される 店は客に出来上がったラーメンを渡す 客はラーメンを受け取る いろいろなスガキヤと客 上でも書いたとおり Promise は**「呼び出しベル」または「客に出来上がったラーメンを渡す約束」** then は**「約束した内容であるラーメンが準備できたその後で」** という日本
これは何? リクエストパラメータ・セッションに関するまとめ とっても簡単なCSRF対策 PHPによる簡単なログイン認証いろいろ セキュアな掲示板を最小構成から作る いろいろセッションが絡む記事を書いてきましたが,この記事で紹介するものが以下のすべてを行える完成形です. 不正なセッションIDは無視してsession_startによるエラー発生を防ぐ セッションの失効までの期限延長を行う (任意) セッションの失効より短いスパンでセッションIDの再生成を行う (任意) CSRFトークンの検証を行う (ここから更に改善するとすればオブジェクト指向で書くぐらいですが,シンプルにしたかったので敢えて避けました) 関数定義 <?php // CSRFトークン生成に使うハッシュアルゴリズム const CSRF_TOKEN_HASHALGO = 'sha256'; // セッションIDの更新時刻に使う
この記事を読む前に この記事に悪意はありません.単に「公式のサンプルコードとしてこれは如何なものか…」と感じたので,初心者が困惑しないように適当に手直ししてみたまでです. もちろん自分も汚いコードを存分に書いてきましたし,そもそもコードの美しさは個人の主観に左右されるところはあります.…が,それでもちょっとこれは…,という感じだったので,お許し下さい. コード比較 ぐるナビのサンプル 問題のコードはこちらに掲載されています.こちらはターミナルへの出力を想定しています. ぐるなび Web Service - レストラン検索API <?php /***************************************************************************************** ぐるなびWebサービスのレストラン検索APIで緯度経度検索を実行しパース
<?php /** * Basic認証を要求するページの先頭で使う関数 * 初回時または失敗時にはヘッダを送信してexitする * * @return string ログインしたユーザ名 */ function require_basic_auth() { // 事前に生成したユーザごとのパスワードハッシュの配列 $hashes = [ 'ユーザ名' => '$2y$10$TThG3fsMJegLJHzVQbz8IeHhvpgBg7P5j6gjQWEUOrKKCtsA9L87G', ]; if ( !isset($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) || !password_verify( $_SERVER['PHP_AUTH_PW'], isset($hashes[$_SERVER['PHP_AUTH_USER']]) ?
ポイント mpyw-yattemita/excel-csv-compatibility-check 上記リポジトリで互換性を確認した結果,一般的には,以下の2つのいずれかの選択肢をとるべきであることが分かりました。 Shift_JISでCSV形式にして拡張子csvで保存 UTF-16(LE)でTSV形式にして拡張子csvで保存 この記事では,UTF-16(LE)を取り扱うことを前提とします。 注意点 Unicodeを用いる場合,文字セットに応じたBOMが必要である。 UTF-8なら 0xEF 0xBB 0xBF UTF-16(LE) なら 0xFE 0xFF UTF-16(BE) なら 0xFF 0xFE 「UTF-16(LE)」と「UTF-16LE」は別物なので注意。「UTF-16LE」にはBOMが付かない。 Shift_JISのほうが文字の守備範囲が狭く,絵文字やラテン文字・ハングル文
※「許可」は実質、ほとんどのブラウザでGETに変更される模様です。 具体例 掲示板への投稿が終わって遷移させるときは… 303 See Other を使いましょう。過去には 302 Moved Temporarily (302 Found の以前の名称) が使われていましたが、現在では迷わずこれ1択です。 メンテナンス中にお知らせページに飛ばしたいときは… 302 Found または 307 Temporary Redirect を使いましょう。「POSTのままお知らせページに飛ばす」ようにしても特に意味が無さそうなので、302 Found のほうがナチュラルと言えるかもしれません。 【追記】 もしURLを変更せずにそのページで即503 Service Unavailableで返せるような設計になっていれば、そうしたほうが良いでしょう。 サイトを移転したときは… 301 Moved Per
時代変遷 JavaScript では JavaScriptで非同期処理の時代変遷と言えば,こんな感じでやってきたと思います. (例) 1秒後に+1した値をコールバック引数に渡す関数を使って,以下の2つの流れを同時に処理し,両方終わった段階で「All done !!」と表示することにします. 1→2→3 4→5→6 callback (旧石器時代) function plusOneLater(a, callback) { setTimeout(function () { callback(a + 1); }, 1000); } var active = 2; plusOneLater(0, function (x) { console.log(x); plusOneLater(x, function (y) { console.log(y); plusOneLater(y, function
はじめに PHPからシェルコマンドを利用する際、&をつけるだけでは並列実行にならない場合があるのでメモしておきます。 exec shell_exec systemは同じ特徴を持つものとして考えて、execのみを用いて検証します。 popen proc_openは同じ特徴を持つものとして考えて、popenのみを用いて検証します。 >&2 >/dev/nullは同じ特徴を持つものとして考えて、>&2のみを用いて検証します。 今回はOSX環境を用います。Linux環境でもおそらく同様ですが、Windows環境では大きく結果が変わることが予想されるので、環境を用意出来る方は検証していただけると助かります。 実験 以下に組み合わせ条件を示します。for文の中で3,4回程度繰り返し実行し、かかった合計時間で並列実行されたかを判定します。 execを使うか?popenを使うか? &をつけるか?つけないか
次のページ
このページを最初にブックマークしてみませんか?
『@mpywのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く